query builder first try
This commit is contained in:
parent
0ffbbf0d67
commit
84476b3c95
1 changed files with 39 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
<div id="builder"></div>
|
<div id="builder"></div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
|
<button id="btn-search" class="btn btn-warning reset" data-target="basic">Search</button>
|
||||||
<button id="btn-reset" class="btn btn-warning reset" data-target="basic">Reset</button>
|
<button id="btn-reset" class="btn btn-warning reset" data-target="basic">Reset</button>
|
||||||
<button id="btn-set" class="btn btn-success set-json" data-target="basic">Set rules</button>
|
<button id="btn-set" class="btn btn-success set-json" data-target="basic">Set rules</button>
|
||||||
<button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button>
|
<button id="btn-get" class="btn btn-primary parse-json" data-target="basic">Get rules</button>
|
||||||
|
@ -50,7 +51,44 @@
|
||||||
if (!$.isEmptyObject(result)) {
|
if (!$.isEmptyObject(result)) {
|
||||||
alert(JSON.stringify(result, null, 2));
|
alert(JSON.stringify(result, null, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#btn-search').on('click', function() {
|
||||||
|
var json_result = $('#builder').queryBuilder('getRules');
|
||||||
|
var query_string = format_query_string(json_result,"");
|
||||||
|
if (!$.isEmptyObject(query_string)) {
|
||||||
|
window.open("${urls.base}/customsearch?querytext=" + query_string,"_self")
|
||||||
|
}
|
||||||
|
//if (!$.isEmptyObject(json_result)) {
|
||||||
|
// alert(JSON.stringify(json_result, null, 2));
|
||||||
|
// alert(query_string);
|
||||||
|
//}
|
||||||
|
});
|
||||||
|
|
||||||
|
function format_query_string(json_query, string_query){
|
||||||
|
if ('condition' in json_query && 'rules' in json_query ){
|
||||||
|
if (json_query.rules.length > 1 ) {
|
||||||
|
string_query +=" ( ";
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < json_query.rules.length; i++) {
|
||||||
|
string_query = format_query_string(json_query.rules[i], string_query);
|
||||||
|
if (i + 1 < json_query.rules.length){
|
||||||
|
string_query += " " + json_query.condition + " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
string_query +=" ) ";
|
||||||
|
} else {
|
||||||
|
string_query = format_query_string(json_query.rules[0], string_query);
|
||||||
|
}
|
||||||
|
} else if ( 'field' in json_query && 'value' in json_query ){
|
||||||
|
if ('operator' in json_query && json_query.operator.startsWith("not_")){
|
||||||
|
string_query += "NOT ";
|
||||||
|
}
|
||||||
|
string_query += json_query.field + ":\"" + json_query.value.toString().replace(/['"]+/g, '') + "\"";
|
||||||
|
}
|
||||||
|
return string_query;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<#macro freeField field >
|
<#macro freeField field >
|
||||||
{
|
{
|
||||||
|
@ -75,6 +113,6 @@
|
||||||
</#list>
|
</#list>
|
||||||
|
|
||||||
},
|
},
|
||||||
operators: ['equal', 'not_equal']
|
operators: ['contains', 'not_contains']
|
||||||
},
|
},
|
||||||
</#macro>
|
</#macro>
|
||||||
|
|
Loading…
Add table
Reference in a new issue