X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-core.js;h=d56b1e76b2dc91b1b7bf7c79cc8708696720d8ee;hb=666f99f5d57c4f1841fe15847ee12989cfe4336c;hp=634108723896ec0253cc2b2d8271976a57fbfdd2;hpb=16708a6aebe10acd3b72bcb20b03c54d1195a1b9;p=mkws-moved-to-github.git
diff --git a/src/mkws-core.js b/src/mkws-core.js
index 6341087..d56b1e7 100644
--- a/src/mkws-core.js
+++ b/src/mkws-core.js
@@ -6,6 +6,23 @@
"use strict"; // HTML5: disable for log_level >= 2
+// Incredible that the standard JavaScript runtime doesn't define a
+// unique windowId. Instead, we have to make one up. And since there's
+// no global area shared between windows, the best we can do for
+// ensuring uniqueness is generating a random ID and crossing our
+// fingers. We stash this in window.name, as it's the only place to
+// keep data that is preserved across reloads and within-site
+// navigation. pz2.js picks this up and uses it as part of the
+// cookie-name, to ensure each tab gets its own session.
+if (window.name) {
+ console.log("Using existing window.name '" + window.name + "'");
+} else {
+ // Ten chars from 26 alpha-numerics = 36^10 = 3.65e15 combinations.
+ // At one per second, it will take 116 million years to duplicate a session
+ window.name = Math.random().toString(36).slice(2, 12);
+ console.log("Generated new window.name '" + window.name + "'");
+}
+
// Set up global mkws object. Contains truly global state such as SP
// authentication, and a hash of team objects, indexed by team-name.
//
@@ -78,6 +95,12 @@ var mkws = {
}
};
+// We may be using a separate copy
+if (typeof(mkws_jQuery) !== "undefined") {
+ mkws.$ = mkws_jQuery;
+} else {
+ mkws.$ = jQuery;
+}
mkws.log = function(string) {
if (!mkws.log_level)
@@ -111,10 +134,11 @@ mkws.M = function(word) {
// This function is taken from a StackOverflow answer
// http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript/901144#901144
-mkws.getParameterByName = function(name) {
+mkws.getParameterByName = function(name, url) {
+ if (!url) url = location.search;
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^]*)"),
- results = regex.exec(location.search);
+ results = regex.exec(url);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
@@ -138,7 +162,7 @@ mkws.setMkwsConfig = function(overrides) {
var config_default = {
use_service_proxy: true,
- pazpar2_url: "//mkws.indexdata.com/service-proxy/",
+ pazpar2_url: "//mkws.indexdata.com/service-proxy/",
service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth",
lang: "",
sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
@@ -248,6 +272,14 @@ mkws.defaultTemplate = function(name) {
{{#if md-title-responsibility}}\
{{md-title-responsibility}}\
{{/if}}\
+{{#if md-date}}, {{md-date}}\
+{{#if location}}\
+, {{#mkws-first location}}{{mkws-attr "@name"}}{{/mkws-first}}\
+{{/if}}\
+{{#if md-medium}}\
+, {{md-medium}}\
+{{/if}}\
+{{/if}}\
';
} else if (name === "Image") {
return '\
@@ -258,11 +290,18 @@ mkws.defaultTemplate = function(name) {
\
\
';
+ } else if (name === 'Facet') {
+ return '\
+{{term}}\
+{{count}}\
+';
}
- var s = "There is no default '" + name +"' template!";
- alert(s);
- return s;
+ return null;
};
@@ -430,7 +469,7 @@ mkws.pagerNext = function(tname) {
function selectorForAllWidgets() {
- if (mkws.config.scan_all_nodes) {
+ if (mkws.config && mkws.config.scan_all_nodes) {
// This is the old version, which works by telling jQuery to
// find every node that has a class beginning with "mkws". In
// theory it should be slower than the class-based selector; but
@@ -479,7 +518,8 @@ mkws.pagerNext = function(tname) {
}
- $(document).ready(function() {
+ function init(rootsel) {
+ if (!rootsel) var rootsel = ':root';
var saved_config;
if (typeof mkws_config === 'undefined') {
log("setting empty config");
@@ -544,7 +584,7 @@ mkws.pagerNext = function(tname) {
}
var then = $.now();
- makeWidgetsWithin(1, $(':root'));
+ makeWidgetsWithin(1, $(rootsel));
var now = $.now();
log("walking MKWS nodes took " + (now-then) + " ms");
@@ -567,5 +607,9 @@ mkws.pagerNext = function(tname) {
// raw pp2
runAutoSearches();
}
+ };
+ $(document).ready(function() {
+ var widgetSelector = selectorForAllWidgets();
+ if (widgetSelector && $(widgetSelector).length !== 0) init();
});
-})(jQuery);
+})(mkws.$);