X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=fe9473ab5b6bab818c66485ef28af990f40a6486;hb=e5ef5a50508cf1d503e813280a11b3455f7991af;hp=a96fd32fd08fb9b71bf8e0700ad5a7a4cd123dae;hpb=23efd7251999817caf5e29ee9361e17c4b417dff;p=mkws-moved-to-github.git
diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js
index a96fd32..fe9473a 100644
--- a/tools/htdocs/mkws.js
+++ b/tools/htdocs/mkws.js
@@ -65,13 +65,20 @@ Handlebars.registerHelper('commaList', function(items, options) {
});
+Handlebars.registerHelper('index1', function(obj) {
+ mkws.debug($.toJSON(obj));
+ return obj.data.index + 1;
+});
+
+
// Set up global mkws object. Contains truly global state such as SP
// authentication, and a hash of team objects, indexed by windowid.
//
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 +336,13 @@ function team($, teamName) {
for (var i = 0; i < data.length && i < max; i++) {
acc.push('
');
acc.push('
\
+ {{translate "Links"}} | \
\
{{#each md-electronic-url}}\
- {{this}} \
+ Link{{index1}}\
{{/each}}\
| \
\
@@ -849,8 +869,6 @@ function team($, teamName) {
if (mkws_config.show_lang)
mkws_html_lang();
- // For some reason, doing this programmatically results in
- // document.mkwsSearchForm.mkwsQuery being undefined, hence the raw HTML.
debug("HTML search form");
// ### There is only one match here by design: fix not to bother looping
$('.mkwsSearch.mkwsTeam_' + m_teamName).each(function (i, obj) {
@@ -858,8 +876,8 @@ function team($, teamName) {
mkws.handle_node_with_team(node, function(tname) {
$(node).html('\
');
});
});
@@ -879,13 +897,13 @@ function team($, teamName) {
\
\
\
- \
+ \
| \
\
- \
- \
- \
- \
+ \
+ \
+ \
+ \
| \
\
\
@@ -1106,141 +1124,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 +1145,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 +1316,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 +1352,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();