Some progress

This commit is contained in:
Georgy Litvinov 2021-07-15 23:01:42 +02:00
parent 166e90dae0
commit fd5b66000f
2 changed files with 30 additions and 7 deletions

View file

@ -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;

View file

@ -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);
}
</script>
<#macro freeField field >
{