diff --git a/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl b/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl
index 28bbd48f8..61cbd8007 100644
--- a/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl
+++ b/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl
@@ -1,5 +1,6 @@
+
@@ -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;
+ }
<#macro freeField field >
{
@@ -75,6 +113,6 @@
#list>
},
- operators: ['equal', 'not_equal']
+ operators: ['contains', 'not_contains']
},
#macro>