From: Mike Taylor Date: Fri, 22 Nov 2013 13:28:09 +0000 (+0000) Subject: New function delimitQuery(). X-Git-Tag: 0.9.1~148^2~57 X-Git-Url: http://git.indexdata.com/?a=commitdiff_plain;ds=sidebyside;h=5c7b651bae92f6863a79666ef94678b940f9cf72;p=mkws-moved-to-github.git 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.) --- 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