query builder first try
This commit is contained in:
parent
2871ab815f
commit
2d55e44575
1 changed files with 39 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
|||
<div id="builder"></div>
|
||||
<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-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>
|
||||
|
@ -50,7 +51,44 @@
|
|||
if (!$.isEmptyObject(result)) {
|
||||
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>
|
||||
<#macro freeField field >
|
||||
{
|
||||
|
@ -75,6 +113,6 @@
|
|||
</#list>
|
||||
|
||||
},
|
||||
operators: ['equal', 'not_equal']
|
||||
operators: ['contains', 'not_contains']
|
||||
},
|
||||
</#macro>
|
||||
|
|
Loading…
Add table
Reference in a new issue