X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=9530afe49ffe66ca6701a1c710f0fd76dda8d30f;hb=5c7b651bae92f6863a79666ef94678b940f9cf72;hp=acf3235ac6b29c93a743f5417984c1959e95dc27;hpb=6621086afb7c7548b4b9901f4933b8c0851bf13c;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index acf3235..9530afe 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -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,8 @@ function loadSelect () 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(); } @@ -399,28 +403,90 @@ mkws.limitQuery = function (field, value) mkws.limitTarget = function (id, name) { debug("limitTarget(id=" + id + ", name=" + name + ")"); - var navi = document.getElementById('mkwsNavi'); - navi.innerHTML = - 'Source: ' - + name + ''; - mkws.curFilter = 'pz:id=' + id; + mkws.filters.push({ id: id, name: name }); + redraw_navi(); + mkws.pp2filter = 'pz:id=' + id; resetPage(); loadSelect(); triggerSearch(); return false; } -mkws.delimitTarget = function () +mkws.delimitQuery = function (field, value) { - var navi = document.getElementById('mkwsNavi'); - navi.innerHTML = ''; - mkws.curFilter = null; + 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 + ")"); + 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; + + redraw_navi(); + mkws.pp2filter = null; + resetPage(); + loadSelect(); + triggerSearch(); + 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