X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-core.js;h=577d35b068f815ba62db81c60799c2f2c5c607bd;hb=2d914706d9ef6ca54171b2d18b7d6e7b68c7c280;hp=3031dd0f9661d591de4428006929e2c9c0013105;hpb=315364a541d371b2ede8643bbebeb7e56f67d5d1;p=mkws-moved-to-github.git diff --git a/src/mkws-core.js b/src/mkws-core.js index 3031dd0..577d35b 100644 --- a/src/mkws-core.js +++ b/src/mkws-core.js @@ -168,7 +168,12 @@ mkws.setMkwsConfig = function(overrides) { var config_default = { use_service_proxy: true, pazpar2_url: "//mkws.indexdata.com/service-proxy/", - service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth", + service_proxy_auth: undefined, // generally rolled from the next three properties + // Was: //mkws.indexdata.com/service-proxy-auth + pp2_hostname: "mkws.indexdata.com", + sp_path: "service-proxy-auth", + sp_auth_query: undefined, // Will be: "command=auth&action=perconfig", + sp_auth_credentials: undefined, lang: "", sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]], perpage_options: [10, 20, 30, 50], @@ -354,6 +359,11 @@ mkws.pagerNext = function(tname) { }; +mkws.pazpar2_url = function() { + return mkws.config.pazpar2_url; +}; + + // wrapper to provide local copy of the jQuery object. (function($) { var log = mkws.log; @@ -550,14 +560,23 @@ mkws.pagerNext = function(tname) { } - // This function should have no side effects if run again on an operating session, even if - // the element/selector passed causes existing widgets to be reparsed: + // The second "rootsel" parameter is passed to jQuery and is a DOM node + // or a selector string you would like to constrain the search for widgets to. + // + // This function has no side effects if run again on an operating session, + // even if the element/selector passed causes existing widgets to be reparsed: + // + // (TODO: that last bit isn't true and we currently have to avoid reinitialising + // widgets, MKWS-261) // // * configuration is not regenerated // * authentication is not performed again // * autosearches are not re-run mkws.init = function(message, rootsel) { - if (message) mkws.log(message); + var greet = "MKWS initialised"; + if (rootsel) greet += " (limited to " + rootsel + ")" + if (message) greet += " :: " + message; + mkws.log(greet); // TODO: Let's remove this soon // Backwards compatibility: set new magic class names on any @@ -638,7 +657,9 @@ mkws.pagerNext = function(tname) { var then = $.now(); // If we've made no widgets, return without starting an SP session // or marking MKWS active. - if (makeWidgetsWithin(1, rootsel) === false) return false; + if (makeWidgetsWithin(1, rootsel ? $(rootsel) : undefined) === false) { + return false; + } var now = $.now(); log("walking MKWS nodes took " + (now-then) + " ms"); @@ -653,8 +674,30 @@ mkws.pagerNext = function(tname) { } */ + function sp_auth_url(config) { + if (config.service_proxy_auth) { + mkws.log("using pre-baked sp_auth_url '" + config.service_proxy_auth + "'"); + return config.service_proxy_auth; + } else { + var s = '//'; + s += config.auth_hostname ? config.auth_hostname : config.pp2_hostname; + s += '/' + config.sp_path; + var q = config.sp_auth_query; + if (q) { + s += '?' + q; + } + var c = config.sp_auth_credentials; + if (c) { + s += ('&username=' + c.substr(0, c.indexOf('/')) + + '&password=' + c.substr(c.indexOf('/')+1)); + } + mkws.log("generated sp_auth_url '" + s + "'"); + return s; + } + } + if (mkws.config.use_service_proxy && !mkws.authenticated && !mkws.authenticating) { - authenticateSession(mkws.config.service_proxy_auth, + authenticateSession(sp_auth_url(mkws.config), mkws.config.service_proxy_auth_domain, mkws.config.pazpar2_url); } else if (!mkws.authenticating) {