X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=mkdru.client.js;h=927e6fd7f90f54dd34086dbe8429545d43b0fcb6;hb=b679d2c7230790421eab09d042f37c220cb80e29;hp=ddda64975aeee2581a2482e7c4d5b36bdafc2eae;hpb=08e153dd69ff1fa4cede7728de22dfde799ab513;p=mkdru-moved-to-drupal.org.git diff --git a/mkdru.client.js b/mkdru.client.js index ddda649..927e6fd 100644 --- a/mkdru.client.js +++ b/mkdru.client.js @@ -137,16 +137,12 @@ mkdru.contains = function (hash, key, value) { } mkdru.pz2Term = function (data) { - // if signaled, prepare container client-side - if (mkdru.facetContainerSelector) { - $(mkdru.facetContainerSelector).html(Drupal.theme('mkdruFacetContainer', - data, mkdru.facets)); - } // map all facets against selected, for simple rendering var hash = $.deparam.fragment(); for (var key in hash) { - if (key.indexOf('limit') == 0) //always wrap in array - hash[key.substr(6)] = hash[key].split(';'); + if (key.indexOf('limit') == 0 && hash[key]) + //always wrap in array + hash[key.substr(6)] = hash[key].split(/;+/); delete hash[key]; } for (var facet in mkdru.facets) { @@ -155,10 +151,10 @@ mkdru.pz2Term = function (data) { var term = terms[i]; var value = facet == "source" ? term.id : term.name; if (mkdru.contains(hash, facet, value)) { //enabled - term.hashQuery = mkdru.removeLimit(facet, value); + term.toggleLink = mkdru.removeLimit(facet, value); term.selected = true; } else { //disabled - term.hashQuery = mkdru.addLimit(facet, value); + term.toggleLink = mkdru.addLimit(facet, value); term.selected = false; } } @@ -331,11 +327,12 @@ mkdru.search = function () { filter = 'pz:id=' + mkdru.state.limit_source; } else { - var limits = mkdru.state['limit_' + facet].split(';'); + var limits = mkdru.state['limit_' + facet].split(/;+/); for (var i = 0; i < limits.length; i++) { // ex. query + and au="{limit_author}" - query += ' and ' + mkdru.facets[facet]['limiter'] + '="' - + mkdru.state['limit_' + facet] + '"'; + if (limits[i]) + query += ' and ' + mkdru.facets[facet]['limiter'] + '="' + + limits[i] + '"'; } } } @@ -400,6 +397,12 @@ $(document).ready(function () { mkdru.defaultState['limit_' + key] = null; } + // if signaled, prepare facet container client-side + if (mkdru.facetContainerSelector) { + $(mkdru.facetContainerSelector).html(Drupal.theme('mkdruFacetContainer', + mkdru.facets)); + } + mkdru.pz2 = new pz2( { "onshow": mkdru.pz2Show, "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way "pazpar2path": mkdru.pazpar2Path,