// Set up namespace and some state.
var mkdru = {
- // Settings to pass to pz2.js
- useSessions: Drupal.settings.mkdru.use_sessions === '1',
+ settings: JSON.parse(Drupal.settings.mkdru.settings),
// Variables
active: false,
pz2: null,
pagerRange: 6,
pazpar2Path: Drupal.settings.mkdru.pz2_path,
facetContainerSelector: Drupal.settings.mkdru.facetContainerSelector,
- // Facets
- facets: {
- source: {
- displayName: Drupal.settings.mkdru.source_dname || "Source",
- orderWeight: Drupal.settings.mkdru.source_weight || 1,
- pz2Name: 'xtargets',
- max: Drupal.settings.mkdru.source_max || 10
- },
- subject: {
- displayName: Drupal.settings.mkdru.subject_dname || "Subject",
- orderWeight: Drupal.settings.mkdru.source_weight || 2,
- pz2Name: 'subject',
- max: Drupal.settings.mkdru.subject_max || 10,
- multiLimit: true,
- limiter: 'su'
- },
- author: {
- displayName: Drupal.settings.mkdru.author_dname || "Author",
- orderWeight: Drupal.settings.mkdru.source_weight || 3,
- pz2Name: 'author',
- max: Drupal.settings.mkdru.author_max || 10,
- multiLimit: false,
- limiter: 'au'
- }
- },
// State; Keys limit_{facet key} will also be initialised
defaultState: {
page: 1,
state: {},
realm: ''
};
-
-
+// Convenient references
+mkdru.facets = mkdru.settings.facets;
// Wrapper for jQuery
(function ($) {
mkdru.search();
}
mkdru.pz2.stat();
- //mkdru.pz2.bytarget();
};
mkdru.pz2Show = 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;
}
}
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] + '"';
}
}
}
"onstat": mkdru.pz2Status,
"onterm": mkdru.pz2Term,
"termlist": termlist.join(','),
- "onbytarget": mkdru.pz2ByTarget,
- "usesessions" : mkdru.useSessions,
+ "usesessions" : mkdru.settings.useSessions,
"showResponseType": mkdru.showResponseType,
"onrecord": mkdru.pz2Record,
"autoInit": false } );
+ mkdru.pz2.showFastCount = 1;
// initialise state to hash string or defaults
mkdru.stateFromHash();
}
//not running against SP? init, otherwise authenticate
- if (mkdru.useSessions) {
+ if (mkdru.settings.use_sessions) {
mkdru.pz2.init();
} else {
//runnin against SP