Add to mkws.filters array as facets are selected.
[mkws-moved-to-github.git] / tools / htdocs / mkws.js
index acf3235..98b9ff8 100644 (file)
@@ -5,7 +5,8 @@
 
 // Set up namespace and some state.
 var mkws = {
-    curFilter: null,
+    filters: [],
+    pp2filter: null,
 };
 
 /*
@@ -374,7 +375,8 @@ function resetPage()
 
 function triggerSearch ()
 {
-    my_paz.search(document.mkwsSearchForm.mkwsQuery.value, recPerPage, curSort, mkws.curFilter);
+    debug("triggerSearch: filters = " + JSON.stringify(mkws.filters));
+    my_paz.search(document.mkwsSearchForm.mkwsQuery.value, recPerPage, curSort, mkws.pp2filter);
 }
 
 function loadSelect ()
@@ -391,6 +393,7 @@ function loadSelect ()
 mkws.limitQuery = function (field, value)
 {
     debug("limitQuery(field=" + field + ", value=" + value + ")");
+    mkws.filters.push({ field: field, value: value });
     document.mkwsSearchForm.mkwsQuery.value += ' and ' + field + '="' + value + '"';
     onFormSubmitEventHandler();
 }
@@ -399,22 +402,36 @@ mkws.limitQuery = function (field, value)
 mkws.limitTarget  = function (id, name)
 {
     debug("limitTarget(id=" + id + ", name=" + name + ")");
+    mkws.filters.push({ id: id, name: name });
     var navi = document.getElementById('mkwsNavi');
     navi.innerHTML =
-        'Source: <a class="crossout" href="#" onclick="mkws.delimitTarget();return false;">'
+        'Source: <a class="crossout" href="#" onclick="mkws.delimitTarget(' + "'" + id + "'" + ');return false;">'
         + name + '</a>';
-    mkws.curFilter = 'pz:id=' + id;
+    mkws.pp2filter = 'pz:id=' + id;
     resetPage();
     loadSelect();
     triggerSearch();
     return false;
 }
 
-mkws.delimitTarget = function ()
+mkws.delimitTarget = function (id)
 {
+    debug("delimitTarget(id=" + id + ")");    
+    var newFilters = [];
+    for (var i in mkws.filters) {
+       var filter = mkws.filters[i];
+       if (filter.id) {
+           debug("delimitTarget() removing filter " + JSON.stringify(filter));
+       } else {
+           debug("delimitTarget() keeping filter " + JSON.stringify(filter));
+           newFilters.push(filter);
+       }
+    }
+    mkws.filters = newFilters;
+
     var navi = document.getElementById('mkwsNavi');
     navi.innerHTML = '';
-    mkws.curFilter = null;
+    mkws.pp2filter = null;
     resetPage();
     loadSelect();
     triggerSearch();