diff --git a/webapp/src/main/webapp/templates/freemarker/body/search/search-pagedResults.ftl b/webapp/src/main/webapp/templates/freemarker/body/search/search-pagedResults.ftl index 1bbae3c6..8b37e2ef 100644 --- a/webapp/src/main/webapp/templates/freemarker/body/search/search-pagedResults.ftl +++ b/webapp/src/main/webapp/templates/freemarker/body/search/search-pagedResults.ftl @@ -164,7 +164,7 @@ function fillOutForm(compilationName){ var iframeDoc = document.getElementById('newCompilationIframe').contentWindow.document; - var rules = $('#builder').queryBuilder('getRules'); + var rules = $('#builder').queryBuilder('getRules', { get_flags: true }); var query = format_query_string(rules,""); iframeDoc.getElementById('queryBuilderRules').value = JSON.stringify(rules); iframeDoc.getElementById('rawQueryString').value = query; diff --git a/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl b/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl index 0a008d82..6a3ab402 100644 --- a/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl +++ b/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl @@ -132,7 +132,7 @@ $('#btn-search-expand').on('click', function() { - var json_result = $('#builder').queryBuilder('getRules'); + var json_result = $('#builder').queryBuilder('getRules', { get_flags: true }); var query_string = format_query_string(json_result,""); var hits = $("#hitsPerPageSelect :selected"); if (!$.isEmptyObject(query_string)) { @@ -171,16 +171,26 @@ if ('operator' in json_query && json_query.operator.startsWith("not_")){ string_query += "NOT "; } - string_query += json_query.field + ":" + json_query.value.toString().replace(/[']+/g,'').replace(/#/g,'%23') ; + if (json_query.hasOwnProperty('data') && json_query.data.hasOwnProperty('value')){ + var value = "\"" + json_query.data.value.toString()+ "\""; + } else { + var value = json_query.value.toString(); + } + string_query += json_query.field + ":" + value.replace(/[']+/g,'').replace(/#/g,'%23') ; } return string_query; } - function excludeDocByURI(uri){ - var allRules = $('#builder').queryBuilder('getRules'); - var excludeRuleString = '{ "id": "URI", "field": "URI", "type": "string", "input": "text", "operator": "not_contains", "value": "" }'; + function excludeDocByURI(name, uri){ + var allRules = $('#builder').queryBuilder('getRules', { get_flags: true }); + var excludeRuleString = '{ "id": "URI", "field": "URI", "type": "string", "flags":{}, "input": "text", "operator": "not_contains", "data":{} }'; var excludeRule = JSON.parse(excludeRuleString); - excludeRule.value = uri; + excludeRule.data.value = uri; + excludeRule.flags.value_readonly = true; + excludeRule.flags.filter_readonly = true; + excludeRule.flags.operator_readonly = true; + excludeRule.value = name; + console.log(excludeRule); if (allRules !== null){ if (allRules.condition === "AND"){ allRules.rules.push(excludeRule); @@ -194,6 +204,19 @@ $('#builder').queryBuilder('setRules', allRules); } } + + function createRemoveButtons(){ + $('.compilationDraftExcerpt').each(function(index){ createRemoveButton(this)}); + } + + function createRemoveButton(element){ + var uri = element.getAttribute('parturi'); + var button = element.querySelector('button'); + var a = document.createElement('a'); + a.setAttribute('href',"javascript:excludeDocByURI(\'" + uri + "\');"); + a.textContent = "удалить документ из поиска"; + button.appendChild(a); + } <#macro freeField field > {