mkdru.search();
}
mkdru.pz2.stat();
- //mkdru.pz2.bytarget();
};
mkdru.pz2Show = function (data) {
}
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) {
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;
}
}
}
};
-mkdru.pz2ByTarget = function (data) {
-
-};
-
mkdru.pz2Record = function (data) {
clearTimeout(mkdru.pz2.showTimer);
$('.mkdru-results').hide();
};
mkdru.hashChange = function () {
+ // TING hack, switching tabs resets the hash but does not re-load the page
+ // simply ignore new hash and set it to the old state
+ var hash = $.param.fragment();
+ if (hash.indexOf("-result") != -1 || hash.indexOf("facets=") != -1) {
+ mkdru.hashFromState();
+ return;
+ }
// do we need to restart the search?
var searchTrigger = false;
// shallow copy of state so we can see what changed.
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] + '"';
}
}
}
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,
"onstat": mkdru.pz2Status,
"onterm": mkdru.pz2Term,
"termlist": termlist.join(','),
- "onbytarget": mkdru.pz2ByTarget,
"usesessions" : mkdru.useSessions,
"showResponseType": mkdru.showResponseType,
"onrecord": mkdru.pz2Record,
"autoInit": false } );
+ mkdru.pz2.showFastCount = 1;
// initialise state to hash string or defaults
mkdru.stateFromHash();