X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-team.js;h=1ad267de0a3f3852bdf6c3f8eccf73864458b276;hb=21fc191d487bffa9592be523f1fb54ad3f44ef08;hp=a1e942c2921cb16635e65644195ecec3e37ed24e;hpb=0d3b289df04cf273feb973c72da3e750f6825675;p=mkws-moved-to-github.git diff --git a/src/mkws-team.js b/src/mkws-team.js index a1e942c..1ad267d 100644 --- a/src/mkws-team.js +++ b/src/mkws-team.js @@ -15,7 +15,7 @@ function team($, teamName) { var m_query; // initially undefined var m_sortOrder; // will be set below var m_perpage; // will be set below - var m_filterSet = filterSet(); + var m_filterSet = filterSet(that); var m_totalRecordCount = 0; var m_currentPage = 1; var m_currentRecordId = ''; @@ -163,13 +163,7 @@ function team($, teamName) { that.targetFiltered = function(id) { - for (var i = 0; i < m_filterSet.list().length; i++) { - if (m_filterSet.list()[i].id === id || - m_filterSet.list()[i].id === 'pz:id=' + id) { - return true; - } - } - return false; + return m_filterSet.targetFiltered(id); }; @@ -199,7 +193,7 @@ function team($, teamName) { that.delimitTarget = function(id) { log("delimitTarget(id=" + id + ")"); - removeMatchingFilters(function(f) { return f.id }); + m_filterSet.removeMatching(function(f) { return f.id }); triggerSearch(); return false; }; @@ -207,30 +201,12 @@ function team($, teamName) { that.delimitQuery = function(field, value) { log("delimitQuery(field=" + field + ", value=" + value + ")"); - removeMatchingFilters(function(f) { return f.field && field == f.field && value == f.value }); + m_filterSet.removeMatching(function(f) { return f.field && field == f.field && value == f.value }); triggerSearch(); return false; }; - function removeMatchingFilters(matchFn) { - var newFilters = []; - for (var i in m_filterSet.list()) { - var filter = m_filterSet.list()[i]; - if (matchFn(filter)) { - log("removeMatchingFilters() removing filter " + $.toJSON(filter)); - } else { - log("removeMatchingFilters() keeping filter " + $.toJSON(filter)); - newFilters.push(filter); - } - } - m_filterSet = filterSet(); - for (var i = 0; i < newFilters.length; i++) { - m_filterSet.add(newFilters[i]); - } - } - - that.showPage = function(pageNum) { m_currentPage = pageNum; m_paz.showPage(m_currentPage - 1); @@ -272,7 +248,7 @@ function team($, teamName) { return; } - m_filterSet = filterSet(); + m_filterSet = filterSet(that); triggerSearch(query, sortOrder, maxrecs, perpage, limit, targets, torusquery); switchView('records'); // In case it's configured to start off as hidden m_submitted = true; @@ -284,8 +260,6 @@ function team($, teamName) { resetPage(); queue("navi").publish(); - var pp2filter = ""; - var pp2limit = limit || ""; // Continue to use previous query/sort-order unless new ones are specified if (query) { @@ -301,27 +275,8 @@ function team($, teamName) { m_filterSet.add(filter(id, id)); } - for (var i in m_filterSet.list()) { - var filter = m_filterSet.list()[i]; - if (filter.id) { - if (pp2filter) - pp2filter += ","; - if (filter.id.match(/^[a-z:]+[=~]/)) { - log("filter '" + filter.id + "' already begins with SETTING OP"); - } else { - filter.id = 'pz:id=' + filter.id; - } - pp2filter += filter.id; - } - } - for (var i in m_filterSet.list()) { - var filter = m_filterSet.list()[i]; - if (!filter.id) { - if (pp2limit) - pp2limit += ","; - pp2limit += filter.field + "=" + filter.value.replace(/[\\|,]/g, '\\$&'); - } - } + var pp2filter = m_filterSet.pp2filter(); + var pp2limit = m_filterSet.pp2limit(limit); var params = {}; if (pp2limit) { @@ -339,8 +294,6 @@ function team($, teamName) { log("triggerSearch(" + m_query + "): filters = " + $.toJSON(m_filterSet.list()) + ", " + "pp2filter = " + pp2filter + ", params = " + $.toJSON(params)); - // We can use: params.torusquery = "udb=NAME" - // Note: that won't work when running against raw pazpar2 m_paz.search(m_query, m_perpage, m_sortOrder, pp2filter, undefined, params); }