📄 adv_query_builder.smarty
字号:
{literal}<style>fieldset { border: 1px dotted #999; }legend { border: 1px dotted #999;}.metadatadate { width: 80px; font-size;12px }.datediff { width: 30px}.filesize { width: 60px }</style><script>var meta_workflows = {/literal}{$metainfo.workflow_str}{literal};var meta_fieldsets = {/literal}{$metainfo.fieldset_str}{literal};var meta_fields = {/literal}{$metainfo.fields_str}{literal};var meta_users = {/literal}{$metainfo.users_str}{literal};var meta_mimetypes = {/literal}{$metainfo.mimetypes_str}{literal};var meta_documenttypes = {/literal}{$metainfo.documenttypes_str}{literal};var criteria = [ {fields: 0, visible: 0}];function selectorChange(groupid){ var fields = $('fields' + groupid); var workflows = $('workflows' + groupid); var fieldsets = $('fieldsets' + groupid); var selector = $('selector' + groupid); switch(selector.selectedIndex) { case 0: fields.selectedIndex=0; break; case 1: fieldsets.selectedIndex=0; break; case 2: workflows.selectedIndex=0; break; } workflows.style.display = (selector.selectedIndex == 2)?'block':'none'; fieldsets.style.display = (selector.selectedIndex == 1)?'block':'none'; fields.style.display = (selector.selectedIndex == 0)?'block':'none'; var wlist = $('workflow_states' + groupid); wlist.selectedIndex = 0; $('workflow_states_wrapper' + groupid).style.display = 'none'; var fslist = $('fieldset_fields' + groupid); fslist.selectedIndex = 0; $('fieldset_fields_wrapper' + groupid).style.display = 'none';}function fieldChange(groupid){ fields = $('fields' + groupid); fid = fields.selectedIndex - 1; if (fid<0) return; name = meta_fields[fid].name; alias = meta_fields[fid].alias; type = meta_fields[fid].type; addField(groupid, name, alias, type);}function delField(groupid, fid){ el = $('field' + groupid + '_' + fid); el.innerHTML = ''; if (--criteria[groupid].visible == 0) { $('criteria_nofields' + groupid).style.display = 'block'; }}function createUserList(groupid, fid){ var html = "<table><tr><td width=\"140\">"; html += "<SELECT style=\"width: 140px \" id=\"field" + groupid + "_" + fid + "op\">"; html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; html += "</SELECT>" html += "<td>" html += "<SELECT id=\"field" + groupid + "_" + fid + "start\">"; for(i=0;i<meta_users.length;i++) { html += "<option value=\"" + meta_users[i].name + "\">" + meta_users[i].name; } html += "</SELECT>"; html += "<td width=\"100%\"> "; html += "</table>"; return html;}function createDocTypes(groupid, fid){ var html = "<table><tr><td width=\"140\">"; html += "<SELECT style=\"width: 140px \" id=\"field" + groupid + "_" + fid + "op\">"; html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; html += "</SELECT>" html += "<td>" html += "<SELECT id=\"field" + groupid + "_" + fid + "start\">"; for(i=0;i<meta_documenttypes.length;i++) { html += "<option value=\"" + meta_documenttypes[i].name + "\">" + meta_documenttypes[i].name; } html += "</SELECT>"; html += "<td width=\"100%\"> "; html += "</table>"; return html;}function createMimeTypes(groupid, fid){ var html = "<table><tr><td width=\"140\">"; html += "<SELECT style=\"width: 140px \" id=\"field" + groupid + "_" + fid + "op\">"; html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; html += "</SELECT>" html += "<td>" html += "<SELECT id=\"field" + groupid + "_" + fid + "start\">"; for(i=0;i<meta_mimetypes.length;i++) { html += "<option value=\"" + meta_mimetypes[i] + "\">" + meta_mimetypes[i]; } html += "</SELECT>"; html += "<td width=\"100%\"> "; html += "</table>"; return html;}function onBetweenOpChange(groupid, fid){ var op = document.getElementById('field' + groupid + '_' + fid + 'op'); var end = document.getElementById('field' + groupid + '_' + fid + 'end'); var range1 = document.getElementById('field' + groupid + '_' + fid + 'range1'); var range2 = document.getElementById('field' + groupid + '_' + fid + 'range2'); switch (op.value) { case 'between': case 'not between': range2.style.visibility = range1.style.visibility = 'visible'; break; default: range2.style.visibility = range1.style.visibility = 'hidden'; break; }}function initDate(groupid, fid){ var startname = "field"+ groupid + '_' + fid +"start"; var endname = "field"+ groupid + '_' + fid +"end"; var now = new Date(); var yesterday = now.getTime() - 60 * 60 * 24 * 1000; var df = new Ext.form.DateField({format : "Y-m-d", fieldClass: 'metadatadate', name: startname, value: new Date(yesterday)}); var df2 = new Ext.form.DateField({format : "Y-m-d", fieldClass: 'metadatadate', name: endname, value: now}); df.render(startname); df2.render(endname);}function createRange(groupid, fid, type){ var html = "<table><tr><td width=\"140\">"; html += "<SELECT style=\"width: 140px\" id=\"field" + groupid + "_" + fid + "op\" onchange=\"onBetweenOpChange("+ groupid + "," + fid +")\">"; switch(type) { case 'DATE': html += "<option value=\"\>\">{/literal}{i18n}after{/i18n}{literal}"; html += "<option value=\"between\">{/literal}{i18n}between{/i18n}{literal}"; html += "<option value=\"<\">{/literal}{i18n}before{/i18n}{literal}"; html += "<option value=\"is\">{/literal}{i18n}on{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}not on{/i18n}{literal}"; break; default: html += "<option value=\"is\">="; html += "<option value=\"is not\">!="; html += "<option value=\"\>\">\>"; html += "<option value=\"\>=\">\>="; html += "<option value=\"\<\">\<"; html += "<option value=\"\<=\">\<="; html += "<option value=\"between\">{/literal}{i18n}between{/i18n}{literal}"; break; } html += "</SELECT>"; html += "<td valign=top width=\"100\"><div id=\"field"+ groupid + '_' + fid +"start\"></div>"; html += "<td valign=top width=\"50\" id=\"field"+ groupid + '_' + fid+"range1\" style=\"visibility: hidden\"> and "; html += "<td valign=top width=\"100\" id=\"field"+ groupid + '_' + fid+"range2\" style=\"visibility: hidden\">"; html += "<div id=\"field"+ groupid + '_' + fid + "end\"></div>"; html += "<td width=\"100%\"> "; html += "</table>"; return html;}function createDate(groupid, fid){ return createRange(groupid, fid, 'DATE');}function initInt(groupid, fid){ var startname = "field"+ groupid + '_' + fid +"start"; var endname = "field"+ groupid + '_' + fid +"end"; var nf = new Ext.form.NumberField( {allowNegative: false, decimalPrecision : 0, name: startname}); nf.render(startname); var nf2 = new Ext.form.NumberField( {allowNegative: false, decimalPrecision : 0, name: endname}); nf2.render(endname);}function createInt(groupid, fid){ return createRange(groupid, fid, 'INT');}function createFloat(groupid, fid){ return createRange(groupid, fid, 'FLOAT');}function getElByName(groupid, name){ form = $('form' + groupid) for(var i=0;i<form.elements.length;i++) { if (form.elements[i].name == name) { return form.elements[i]; } } var item = $(name); if (item != null) { return item; } return null;}function onDateDiffChange(groupid, fid){ var prefix = 'field' + groupid + '_' + fid; var period=1; switch($(prefix + 'period').selectedIndex) { case 1: period = 30; break; case 2: period = 365; break; } $(prefix + 'start').value = parseInt(getElByName(groupid, prefix + 'input').value) * period;}function initDateDiff(groupid, fid){ var startname = "field"+ groupid + '_' + fid +"input"; var nf = new Ext.form.NumberField( {allowNegative: false, fieldClass: 'datediff', decimalPrecision : 0, name: startname, value: "1"}); nf.render(startname); nf.on('change', function(){ onDateDiffChange(groupid, fid); });}function initFilesize(groupid, fid){ var startname = "field"+ groupid + '_' + fid +"input"; var nf = new Ext.form.NumberField( {allowNegative: false, fieldClass: 'filesize', decimalPrecision : 0, name: startname, value: "0"}); nf.render(startname); nf.on('change', function(){ onFilesizeChange(groupid, fid); });}function onFilesizeChange(groupid, fid){ var prefix = 'field' + groupid + '_' + fid; var factor=1; switch($(prefix + 'factor').selectedIndex) { case 1: factor = 1024; break; case 2: factor = 1024*1024; break; case 3: factor = 1024*1024*1024; break; } $(prefix + 'start').value = parseInt(getElByName(groupid, prefix + 'input').value) * factor;}function createFilesize(groupid, fid){ var html = "<table><tr><td width=\"140\""; html += "<SELECT style=\"width: 140px\" id=\"field" + groupid + "_" + fid + "op\">"; html += "<option value=\"\<\">\<"; html += "<option value=\"\<=\">\<="; html += "<option value=\"\>\">\>"; html += "<option value=\"\>=\">\>="; html += "<option value=\"=\">="; html += "<option value=\"!=\">!="; html += "</SELECT>" html += "<td valign=top width=\"50px\"><div id=\"field"+ groupid + '_' + fid +"input\"></div>"; html += "<td>"; html += "<SELECT id=\"field" + groupid + "_" + fid + "factor\" onchange=\"onFilesizeChange( " + groupid + "," + fid + ")\">"; html += "<option>{/literal}{i18n}bytes{/i18n}{literal}"; html += "<option>{/literal}{i18n}kilobytes{/i18n}{literal}"; html += "<option>{/literal}{i18n}megabytes{/i18n}{literal}"; html += "<option>{/literal}{i18n}gigabytes{/i18n}{literal}"; html += "</SELECT>"; html += "<input style=\"display: none\" value=\"0\" id=\"field" + groupid + "_" + fid + "start\">"; html += "<td width=\"100%\"> "; html += "</table>"; return html;}function createDateDiff(groupid, fid){ var html = "<table><tr><td width=\"140\">"; html += "<SELECT style=\"width: 140px\" id=\"field" + groupid + "_" + fid + "op\">"; html += "<option value=\"\<\">{/literal}{i18n}less than{/i18n}{literal}"; html += "<option value=\"\>\">{/literal}{i18n}greater than{/i18n}{literal}"; html += "</SELECT>" html += "<td valign=top width=\"50px\"><div id=\"field"+ groupid + '_' + fid +"input\"></div>"; html += "<td>"; html += "<SELECT id=\"field" + groupid + "_" + fid + "period\" onchange=\"onDateDiffChange( " + groupid + "," + fid + ")\">"; html += "<option>{/literal}{i18n}days{/i18n}{literal}"; html += "<option>{/literal}{i18n}months{/i18n}{literal}"; html += "<option>{/literal}{i18n}years{/i18n}{literal}"; html += "</SELECT>"; html += "<td>ago" html += "<input style=\"display: none\" value=\"1\" id=\"field" + groupid + "_" + fid + "start\">"; html += "<td width=\"100%\"> "; html += "</table>"; return html;}function createSelect(groupid, fid, options){ var html = "<table><tr><td width=\"140\">"; html += "<select id=\"field"+ groupid + "_" + fid +"op\" style=\"width: 140px\">"; html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; html += "</select> "; html += "<td valign=top>"; html += "<select name=\"field"+ groupid + "_" + fid +"start\" id=\"field"+ groupid + "_" + fid +"start\">"; for(i=0;i<options.length;i++) { html += "<option value=\"" + options[i].name + "\">" + options[i].name; } html += "</select>"; html += "</table>"; return html;}function createText(groupid, fid, type){ var html = "<table><tr><td width=\"140\">"; html += "<select style=\"width: 140px\" id=\"field"+ groupid + "_" + fid +"op\"\>"; var readonly = ''; switch(type) { case 'STRINGMATCH': readonly = 'readonly'; html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; break; case 'STRING': html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; html += "<option value=\"contains\">{/literal}{i18n}contains{/i18n}{literal}"; html += "<option value=\"does not contain\">{/literal}{i18n}does not contain{/i18n}{literal}"; html += "<option value=\"like\">{/literal}{i18n}like{/i18n}{literal}"; html += "<option value=\"not like\">{/literal}{i18n}not like{/i18n}{literal}"; html += "<option value=\"starts with\">{/literal}{i18n}starts with{/i18n}{literal}"; html += "<option value=\"ends with\">{/literal}{i18n}ends with{/i18n}{literal}"; break; case 'FULLTEXT': html += "<option value=\"contains\">{/literal}{i18n}contains{/i18n}{literal}"; html += "<option value=\"does not contain\">{/literal}{i18n}does not contain{/i18n}{literal}"; break; } html += "</select> "; html += "<td>" html += "<input id=\"field"+ groupid + "_" + fid +"start\" " + readonly + ">"; html += "</table>"; return html;}function createBool(groupid, fid){ var html = "<select style=\"width: 140px\" id=\"field"+ groupid + "_" + fid +"op\"\>"; html += "<option value=\"is\">{/literal}{i18n}is{/i18n}{literal}"; html += "<option value=\"is not\">{/literal}{i18n}is not{/i18n}{literal}"; html += "</select> "; html += "<select id=\"field"+ groupid + "_" + fid +"start\"\>"; html += "<option value=\"true\">{/literal}{i18n}True{/i18n}{literal}"; html += "<option value=\"false\">{/literal}{i18n}False{/i18n}{literal}"; html += "</select> "; return html;}function addFieldTypeSelection(groupid, fid, type, options){ var html = ''; var callback = null; var params = null; switch(type) { case 'FILESIZE': html = createFilesize(groupid, fid); return {html: html, init: initFilesize}; case 'MIMETYPES': html = createMimeTypes(groupid, fid); break; case 'DOCTYPES': html = createDocTypes(groupid, fid); break; case 'BOOL': html = createBool(groupid, fid); break; case 'STRING': if (options != null && options.length != 0) { html = createSelect(groupid, fid, options); break; } // want to fall through case 'FULLTEXT': case 'STRINGMATCH': html = createText(groupid, fid, type); break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -