summaryrefslogtreecommitdiff
path: root/ishtar_common/static/js/ishtar.js
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/static/js/ishtar.js')
-rw-r--r--ishtar_common/static/js/ishtar.js48
1 files changed, 45 insertions, 3 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js
index 704547347..fde903ac3 100644
--- a/ishtar_common/static/js/ishtar.js
+++ b/ishtar_common/static/js/ishtar.js
@@ -860,6 +860,9 @@ function clear_search_field(){
$("#id_search_vector").val("");
add_message("-", 'info', "#advanced-search-info", true, false);
enable_save();
+ $("#advanced-search-info-add").addClass("disabled");
+ $("#advanced-search-info-or").addClass("disabled");
+ $("#advanced-search-info-parenthesis").addClass("disabled");
}
function _clear_search_criteria_fields(query){
@@ -925,7 +928,13 @@ function update_search_field(){
if (v == "") return;
var term = get_label_from_input(item_for_label);
if(!term || typeof term == "undefined") return;
- if (query) query += " ";
+ if (query) {
+ if (query.endsWith(" )) ")) {
+ query += " && ";
+ } else {
+ query += " ";
+ }
+ }
query += term + '="' + v + '"';
}
).get();
@@ -939,7 +948,13 @@ function update_search_field(){
}
var term = get_label_from_input(item_for_label);
if(!term || typeof term == "undefined") return;
- if (query) query += " ";
+ if (query) {
+ if (query.endsWith(" )) ")) {
+ query += " && ";
+ } else {
+ query += " ";
+ }
+ }
query += get_label_from_input(item_for_label) + '="' +
$(this).text() + '"';
});
@@ -948,8 +963,11 @@ function update_search_field(){
_clear_search_criteria_fields(query);
if (query){
add_message(query, 'secondary', "#advanced-search-info", true, false);
+ $("#advanced-search-info-add").removeClass("disabled");
+ $("#advanced-search-info-or").removeClass("disabled");
+ $("#advanced-search-info-parenthesis").removeClass("disabled");
} else {
- add_message("-", 'secondary', "#advanced-search-info", true, false);
+ clear_search_field();
}
enable_save();
}
@@ -1054,6 +1072,30 @@ function register_advanced_search(){
$(".advanced-search-valid").click(update_search_field);
$(".advanced-search-clear").click(clear_search_field);
+
+ $("#advanced-search-info-add").click(function(){
+ let query = $("#id_search_vector").val();
+ if (query.endsWith(" && ") || query.endsWith(" || ")) return;
+ query += " && ";
+ $("#id_search_vector").val(query);
+ add_message(query, 'secondary', "#advanced-search-info", true, false);
+ });
+ $("#advanced-search-info-or").click(function(){
+ let query = $("#id_search_vector").val();
+ if (query.endsWith(" && ") || query.endsWith(" || ")) return;
+ query += " || ";
+ $("#id_search_vector").val(query);
+ add_message(query, 'secondary', "#advanced-search-info", true, false);
+ });
+ $("#advanced-search-info-parenthesis").click(function(){
+ let query = $("#id_search_vector").val();
+ if ((query.startsWith(" (( ") && query.endsWith(" )) ")) ||
+ query.endsWith(" && ") || query.endsWith(" || ")) return;
+ query = " (( " + query + " )) ";
+ $("#id_search_vector").val(query);
+ add_message(query, 'secondary', "#advanced-search-info", true, false);
+ });
+
$('#modal-advanced-search').on('hidden.bs.modal', function (e) {
var base_query = $("#id_search_vector").val();
// reset all criteria