authenticated: false,
authenticating: false,
active: false,
+ logger: undefined,
log_level: 1, // Will be overridden from mkws.config, but
// initial value allows jQuery popup to use logging.
teams: {},
"Subjects": "Schlagwörter",
"Sources": "Daten und Quellen",
"source": "datenquelle",
- "Termlists": "Termlisten",
+ "Facets": "Termlisten",
"Next": "Weiter",
"Prev": "Zurück",
"Search": "Suche",
"Subjects": "Emner",
"Sources": "Kilder",
"source": "kilder",
- "Termlists": "Termlists",
+ "Facets": "Termlists",
"Next": "Næste",
"Prev": "Forrige",
"Search": "Søg",
mkws.$ = jQuery;
}
-mkws.log = function(string) {
+mkws.logger = JL('mkws');
+var consoleAppender = JL.createConsoleAppender('consoleAppender');
+mkws.logger.setOptions({ "appenders": [consoleAppender]} );
+
+
+function _log(fn, string) {
if (!mkws.log_level)
return;
- if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! old IE */
- return;
- }
-
// you need to disable use strict at the top of the file!!!
if (mkws.log_level >= 3) {
// Works in Chrome; not sure about elsewhere
console.trace();
} else if (mkws.log_level >= 2) {
- console.log(">>> called from function " + arguments.callee.caller.name + ' <<<');
+
}
- console.log(string);
+ fn.call(mkws.logger, string);
};
+// \\\ transitional placeholder function until we have promoted all invocations
+mkws.log = function(x) { _log(mkws.logger.debug, "LEGACY LOG: " + x) };
+/*
+trace("message with severity trace");
+debug("message with severity debug");
+info("message with severity info");
+warn("message with severity warn");
+error("message with severity error");
+fatal("message with severity fatal");
+*/
+
+
+
// Translation function.
mkws.M = function(word) {
var lang = mkws.config.lang;
mkws.registerWidgetType = function(name, fn) {
+ if(mkws._old2new.hasOwnProperty(name)) {
+ mkws.log("Warning: registerWidgetType old widget name: " + name + " => " + mkws._old2new[name]);
+ name = mkws._old2new[name];
+ }
+
mkws.widgetType2function[name] = fn;
mkws.log("registered widget-type '" + name + "'");
};
mkws.setMkwsConfig = function(overrides) {
// Set global log_level flag early so that mkws.log() works
- // Fall back to old "debug_level" setting for backwards compatibility
var tmp = overrides.log_level;
- if (typeof(tmp) === 'undefined') tmp = overrides.debug_level;
if (typeof(tmp) !== 'undefined') mkws.log_level = tmp;
var config_default = {
use_service_proxy: true,
pazpar2_url: undefined,
pp2_hostname: "sp-mkws.indexdata.com",
- pp2_path: "service-proxy",
+ pp2_path: "service-proxy/",
service_proxy_auth: undefined,
- sp_auth_path: "service-proxy/",
+ sp_auth_path: undefined,
sp_auth_query: "command=auth&action=perconfig",
- sp_auth_credentials: "XXX/XXX", // Should be undefined: see bug MKSP-125.
+ sp_auth_credentials: undefined,
lang: "",
sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
perpage_options: [10, 20, 30, 50],
sort_default: "relevance",
perpage_default: 20,
- query_width: 50,
show_lang: true, /* show/hide language menu */
show_sort: true, /* show/hide sort menu */
show_perpage: true, /* show/hide perpage menu */
mkws.log("using pre-baked pazpar2_url '" + mkws.config.pazpar2_url + "'");
return mkws.config.pazpar2_url;
} else {
- var s = document.location.protocol + "//" + mkws.config.pp2_hostname + "/" + mkws.config.pp2_path + "/";
+ var s = document.location.protocol + "//" + mkws.config.pp2_hostname + "/" + mkws.config.pp2_path;
mkws.log("generated pazpar2_url '" + s + "'");
return s;
}
'MOTDContainer': 'motd-container',
'Perpage': 'per-page',
'SearchForm': 'search-form',
+ 'ReferenceUniverse': 'reference-universe',
+ 'Termlists': 'facets'
};
// Annoyingly, there is no built-in way to invert a hash
var _new2old = {};
}
}
+ mkws._old2new = _old2new;
+
function handleNodeWithTeam(node, callback) {
// First branch for DOM objects; second branch for jQuery objects
var classes = node.className || node.attr('class');
teamName = "AUTO";
// Autosearch widgets don't join team AUTO if there is already an
// autosearch on the team or the team has otherwise gotten a query
- if (node.hasAttribute("autosearch")) {
+ if (node.getAttribute("autosearch")) {
if (mkws.autoHasAuto ||
mkws.teams["AUTO"] && mkws.teams["AUTO"].config["query"]) {
log("AUTO team already has a query, using unique team");
// 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
- // instrumentation suprisnigly shows this is consistently
+ // instrumentation suprisingly shows this is consistently
// faster. It also has the advantage that any widgets of
// non-registered types are logged as warnings rather than
// silently ignored.
var myTeam = mkws.teams[tname];
if (!myTeam) {
myTeam = mkws.teams[tname] = mkws.makeTeam($, tname);
- log("made MKWS team '" + tname + "'");
}
var oldHTML = this.innerHTML;
myTeam.addWidget(myWidget);
var newHTML = this.innerHTML;
if (newHTML !== oldHTML) {
- log("widget " + tname + ":" + type + " HTML changed: reparsing");
+ myTeam.log("widget " + type + " HTML changed: reparsing");
makeWidgetsWithin(level+1, $(this));
}
});
log("using language: " + (mkws.config.lang ? mkws.config.lang : "none"));
- if (mkws.config.query_width < 5 || mkws.config.query_width > 150) {
- log("reset query width to " + mkws.config.query_width);
- mkws.config.query_width = 50;
- }
-
// protocol independent link for pazpar2: "//mkws/sp" -> "https://mkws/sp"
if (mkws.pazpar2_url().match(/^\/\//)) {
mkws.config.pazpar2_url = document.location.protocol + mkws.config.pazpar2_url;
for (var tName in mkws.teams) {
var myTeam = mkws.teams[tName]
myTeam.makePz2();
- log("made PZ2 object for team '" + tName + "'");
+ myTeam.log("made PZ2 object");
/*
myTeam.visitWidgets(function(t, w) {
log(" has widget of type '" + t + "': " + w);
return config.service_proxy_auth;
} else {
var s = '//';
- s += config.auth_hostname ? config.auth_hostname : config.pp2_hostname;
- s += '/' + config.sp_auth_path;
+ s += config.sp_auth_hostname ? config.sp_auth_hostname : config.pp2_hostname;
+ s += '/';
+ s += config.sp_auth_path ? config.sp_auth_path : config.pp2_path;
var q = config.sp_auth_query;
if (q) {
s += '?' + q;