X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=mkdru.client.js;h=3f34a8e1b9c2f65afae25c99d809db355ff87338;hb=87340d616a29be1ac456b89b601619dd11b8abb2;hp=216ad202619a7f03add1dd97f822f045a3546e8d;hpb=c7b7886b595ca873c5d1c715c21d862114793c72;p=mkdru-moved-to-drupal.org.git diff --git a/mkdru.client.js b/mkdru.client.js index 216ad20..3f34a8e 100644 --- a/mkdru.client.js +++ b/mkdru.client.js @@ -1,43 +1,27 @@ // Set up namespace and some state. var mkdru = { - // Settings to pass to pz2.js - useSessions: Drupal.settings.mkdru.use_sessions === '1', - // showResponseType: 'json', + settings: JSON.parse(Drupal.settings.mkdru.settings), // Variables active: false, pz2: null, totalRec: 0, pagerRange: 6, - pazpar2Path: Drupal.settings.mkdru.pz2_path, - // Facets - facets: { - source: { - pz2Name: 'xtargets', - max: Drupal.settings.mkdru.source_max - }, - subject: { - pz2Name: 'subject', - max: Drupal.settings.mkdru.subject_max - }, - author: { - pz2Name: 'author', - max: Drupal.settings.mkdru.author_max - } - }, - // State + facetContainerSelector: '#mkdru-raw-facet-container', defaultState: { page: 1, perpage: 20, sort: 'relevance', - filter: null, query:'', recid:null }, state: {}, realm: '' }; +// Convenient references +mkdru.facets = mkdru.settings.facets; - +// Wrapper for jQuery +(function ($) { // So we can use jQuery BBQ with Drupal 6 and its 1.2.6 jQuery if (!$.isArray) $.isArray = function(obj) { @@ -80,7 +64,6 @@ mkdru.pz2Init = function () { mkdru.search(); } mkdru.pz2.stat(); - //mkdru.pz2.bytarget(); }; mkdru.pz2Show = function (data) { @@ -109,23 +92,47 @@ mkdru.pz2Status = function (data) { $('.mkdru-status').html(Drupal.theme('mkdruStatus', data.activeclients, data.clients)); }; -mkdru.pz2Term = function (data) { - for (var facet in mkdru.facets) { - // facet is limited - if (mkdru.state['limit_' + facet]) { - $('.mkdru-facet-' + facet).html(Drupal.theme('mkdruFacetLimit', - data[mkdru.facets[facet].pz2Name][0], - mkdru.hashAddDelOne(null, null, 'limit_' + facet))); +mkdru.contains = function (hash, key, value) { + if (hash[key]) { + if (hash[key].length) { + for (var i=0; i 0) ? mkdru.state.page - mkdru.pagerRange : 1; var last = first + 2 * mkdru.pagerRange < total - ? first + 2 * mkdru.pagerRange : total; + ? first + 2 * mkdru.pagerRange : total; var prev = null; var next = null; var pages = []; @@ -304,18 +371,24 @@ $(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, + "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 } ); + mkdru.pz2.showFastCount = 1; // initialise state to hash string or defaults mkdru.stateFromHash(); @@ -325,15 +398,17 @@ $(document).ready(function () { // ting thing if (typeof(Drupal.settings.mkdru.query) !== "undefined") { mkdru.state.query = Drupal.settings.mkdru.query + //force the hash to contain query + mkdru.hashFromState(); } - + //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) { @@ -362,3 +437,4 @@ $(document).ready(function () { ); } }); +})(jQuery);