// 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,
totalRec: 0,
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
+ facetContainerSelector: '#mkdru-raw-facet-container',
defaultState: {
page: 1,
perpage: 20,
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) {
}
};
-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.
mkdru.pz2 = new pz2( { "onshow": mkdru.pz2Show,
"showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
- "pazpar2path": mkdru.pazpar2Path,
+ "pazpar2path": mkdru.settings.pz2_path,
"oninit": mkdru.pz2Init,
"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 } );
}
//not running against SP? init, otherwise authenticate
- if (mkdru.useSessions) {
+ if (mkdru.settings.use_sessions) {
mkdru.pz2.init();
} else {
//runnin against SP
- var user = Drupal.settings.mkdru.sp_user;
- var pass = Drupal.settings.mkdru.sp_pass;
+ var user = mkdru.settings.sp.user;
+ var pass = mkdru.settings.sp.pass;
var params = {};
params['command'] = 'auth';
if (user && pass) {