From 5c7b651bae92f6863a79666ef94678b940f9cf72 Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Fri, 22 Nov 2013 13:28:09 +0000 Subject: [PATCH] New function delimitQuery(). New function redraw_navi() handles drawing all selected facets, whether based on field values or source. This is now used by limitQuery(), limitTarget(), delimitQuery() and delimitTarget(). (These methods have too much shared code at the moment -- I'll fix that shortly, but want to check in the first working version.) --- tools/htdocs/mkws.js | 61 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 98b9ff8..9530afe 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -394,6 +394,7 @@ mkws.limitQuery = function (field, value) { debug("limitQuery(field=" + field + ", value=" + value + ")"); mkws.filters.push({ field: field, value: value }); + redraw_navi(); document.mkwsSearchForm.mkwsQuery.value += ' and ' + field + '="' + value + '"'; onFormSubmitEventHandler(); } @@ -403,10 +404,7 @@ 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: ' - + name + ''; + redraw_navi(); mkws.pp2filter = 'pz:id=' + id; resetPage(); loadSelect(); @@ -414,6 +412,32 @@ mkws.limitTarget = function (id, name) return false; } +mkws.delimitQuery = function (field, value) +{ + debug("delimitQuery(field=" + field + ", value=" + value + ")"); + var newFilters = []; + for (var i in mkws.filters) { + var filter = mkws.filters[i]; + if (filter.field && + field == filter.field && + value == filter.value) { + debug("delimitTarget() removing filter " + JSON.stringify(filter)); + } else { + debug("delimitTarget() keeping filter " + JSON.stringify(filter)); + newFilters.push(filter); + } + } + mkws.filters = newFilters; + + redraw_navi(); + mkws.pp2filter = null; + resetPage(); + loadSelect(); + triggerSearch(); + return false; +} + + mkws.delimitTarget = function (id) { debug("delimitTarget(id=" + id + ")"); @@ -429,8 +453,7 @@ mkws.delimitTarget = function (id) } mkws.filters = newFilters; - var navi = document.getElementById('mkwsNavi'); - navi.innerHTML = ''; + redraw_navi(); mkws.pp2filter = null; resetPage(); loadSelect(); @@ -438,6 +461,32 @@ mkws.delimitTarget = function (id) return false; } + +function redraw_navi () +{ + var navi = document.getElementById('mkwsNavi'); + if (!navi) return; + + var text = ""; + for (var i in mkws.filters) { + if (text) { + text += " | "; + } + var filter = mkws.filters[i]; + if (filter.id) { + text += 'Source: ' + filter.name + ''; + } else { + text += filter.field + ': ' + filter.value + ''; + } + } + + navi.innerHTML = text; +} + + function drawPager (pagerDiv) { //client indexes pages from 1 but pz2 from 0 -- 1.7.10.4