X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=0cfea64b5288451796fbdcbf0543429d5f1a7899;hb=90c8a221be04648a94698a476c132bbebd630a87;hp=a96fd32fd08fb9b71bf8e0700ad5a7a4cd123dae;hpb=23efd7251999817caf5e29ee9361e17c4b417dff;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index a96fd32..0cfea64 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -71,7 +71,8 @@ Handlebars.registerHelper('commaList', function(items, options) { // var mkws = { authenticated: false, - debug_level: undefined, // will be initialised from mkws_config + debug_level: 1, // Will be overridden from mkws_config, but + // initial value allows jQuery popup to use logging. paz: undefined, // will be set up during initialisation teams: {}, locale_lang: { @@ -329,11 +330,13 @@ function team($, teamName) { for (var i = 0; i < data.length && i < max; i++) { acc.push('
'); acc.push('\ - \ - \ + \ + \ '); }); }); @@ -879,13 +891,13 @@ function team($, teamName) { \ \ \ \ \ \ @@ -1106,141 +1118,6 @@ function team($, teamName) { }; -/* - * implement jQuery plugin $.pazpar2({}) - */ -function _mkws_jquery_plugin ($) { - function debug (string) { - mkws.debug("jquery.pazpar2: " + string); - } - - function init_popup(obj) { - var config = obj ? obj : {}; - - var height = config.height || 760; - var width = config.width || 880; - var id_button = config.id_button || "input#mkwsButton"; - var id_popup = config.id_popup || "#mkwsPopup"; - - debug("popup height: " + height + ", width: " + width); - - // make sure that jquery-ui was loaded afte jQuery core lib, e.g.: - // - if (!$.ui) { - debug("Error: jquery-ui.js is missing, did you include it after jQuery core in the HTML file?"); - return; - } - - $(id_popup).dialog({ - closeOnEscape: true, - autoOpen: false, - height: height, - width: width, - modal: true, - resizable: true, - buttons: { - Cancel: function() { - $(this).dialog("close"); - } - }, - close: function() { } - }); - - $(id_button) - .button() - .click(function() { - $(id_popup).dialog("open"); - }); - }; - - $.extend({ - - // service-proxy or pazpar2 - pazpar2: function(config) { - var id_popup = config.id_popup || "#mkwsPopup"; - id_popup = id_popup.replace(/^#/, ""); - - // simple layout - var div = '\ -
\ -
\ -
\ -
\ -
\ -
'; - - // new table layout - var table = '\ -\ - \ -
\ -
\ +
\
\ -
\ -
\ -
\ -
\ +
\ +
\ +
\ +
\
\ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ - \ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
'; - - var popup = '\ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
' - - if (config && config.layout == 'div') { - debug("jquery plugin layout: div"); - document.write(div); - } else if (config && config.layout == 'popup') { - debug("jquery plugin layout: popup with id: " + id_popup); - document.write(popup); - $(document).ready(function() { init_popup(config); }); - } else { - debug("jquery plugin layout: table"); - document.write(table); - } - } - }); -}; - - // wrapper to call team() after page load (function (j) { mkws.debug = function (string) { @@ -1262,10 +1139,6 @@ function _mkws_jquery_plugin ($) { var debug = mkws.debug; - // enable before page load, so we could call it before mkws() runs - _mkws_jquery_plugin(j); - - mkws.handle_node_with_team = function(node, callback) { var classes = node.className; var list = classes.split(/\s+/) @@ -1437,6 +1310,24 @@ function _mkws_jquery_plugin ($) { // ### should check mkwsTermlist as well, for facet-only teams var node = $('.mkwsRecords.mkwsTeam_' + teamName); var query = node.attr('autosearch'); + + if (query.match(/^!param!/)) { + var param = query.replace(/^!param!/, ''); + query = getParameterByName(param); + debug("obtained query '" + query + "' from param '" + param + "'"); + if (!query) { + alert("This page has a MasterKey widget that needs a query specified by the '" + param + "' parameter"); + } + } else if (query.match(/^!path!/)) { + var index = query.replace(/^!path!/, ''); + var path = window.location.pathname.split('/'); + query = path[path.length - index]; + debug("obtained query '" + query + "' from path-component '" + index + "'"); + if (!query) { + alert("This page has a MasterKey widget that needs a query specified by the path-component " + index); + } + } + debug("teamName '" + teamName + "', node=" + node + ", class='" + node.className + "', query=" + query); if (query) { @@ -1455,6 +1346,16 @@ function _mkws_jquery_plugin ($) { } + // This function is taken from a StackOverflow answer + // http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript/901144#901144 + function getParameterByName(name) { + name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); + var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), + results = regex.exec(location.search); + return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); + } + + $(document).ready(function() { debug("on load ready"); default_mkws_config();