X-Git-Url: http://git.indexdata.com/?p=mkws-moved-to-github.git;a=blobdiff_plain;f=src%2Fmkws-core.js;h=615f30dc479668907d4ca0150a138f3d79e4742a;hp=5cd500d449795b6007421b26e4c496dd2d8fac75;hb=058ce4a204a9ce4d63b2d319037f60cd9f94ff1b;hpb=229e11d6a8ed38cdbc70abaef93620c0d4c2a1ef diff --git a/src/mkws-core.js b/src/mkws-core.js index 5cd500d..615f30d 100644 --- a/src/mkws-core.js +++ b/src/mkws-core.js @@ -1,9 +1,9 @@ /*! MKWS, the MasterKey Widget Set. - * Copyright (C) 2013-2014 Index Data + * Copyright (C) 2013-2015 Index Data * See the file LICENSE for details */ -"use strict"; // HTML5: disable for log_level >= 2 +"use strict"; // Set up global mkws object. Contains truly global state such as SP @@ -17,8 +17,7 @@ window.mkws = { authenticating: false, active: false, logger: undefined, - log_level: 1, // Will be overridden from mkws.config, but - // initial value allows jQuery popup to use logging. + log_level: "info", teams: {}, widgetType2function: {}, defaultTemplates: {}, @@ -49,6 +48,11 @@ window.mkws = { "Location": "Ort", "Records": "Datensätze", "Targets": "Datenbanken", + "State": "Status", + "relevance": "Relevanz", + "title": "Titel", + "newest": "Neueste", + "oldest": "Älteste", "dummy": "dummy" }, @@ -78,6 +82,11 @@ window.mkws = { "Location": "Lokation", "Records": "Poster", "Targets": "Baser", + "State": "Status", + "relevance": "Relevans", + "title": "Titel", + "newest": "Nyeste", + "oldest": "Ældste", "dummy": "dummy" } @@ -91,26 +100,35 @@ if (typeof(mkws_jQuery) !== "undefined") { mkws.$ = jQuery; } +// It's ridiculous that JSNLog doesn't provide this +mkws.stringToLevel = function(s) { + if (s === 'trace') { + return JL.getTraceLevel(); + } else if (s === 'debug') { + return JL.getDebugLevel(); + } else if (s === 'info') { + return JL.getInfoLevel(); + } else if (s === 'warn') { + return JL.getWarnLevel(); + } else if (s === 'error') { + return JL.getErrorLevel(); + } else if (s === 'fatal') { + return JL.getFatalLevel(); + } else { + throw "bad log-level '" + s + "'"; + } +} + mkws.logger = JL('mkws'); var consoleAppender = JL.createConsoleAppender('consoleAppender'); -mkws.logger.setOptions({ "appenders": [consoleAppender]} ); - +mkws.logger.setOptions({ "appenders": [consoleAppender] }); -function _log(fn, string) { - if (!mkws.log_level) - 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) { - - } - fn.call(mkws.logger, string); +function _log() { + var argsAsARealArray = Array.prototype.slice.call(arguments); + var fn = argsAsARealArray.shift(); + fn.apply(mkws.logger, argsAsARealArray); }; - - mkws.trace = function(x) { _log(mkws.logger.trace, x) }; mkws.debug = function(x) { _log(mkws.logger.debug, x) }; mkws.info = function(x) { _log(mkws.logger.info, x) }; @@ -151,16 +169,18 @@ mkws.registerWidgetType = function(name, fn) { mkws.info("registered widget-type '" + name + "'"); }; +mkws.aliasWidgetType = function(newName, oldName) { + mkws.widgetType2function[newName] = mkws.widgetType2function[oldName]; + mkws.info("aliased widget-type '" + newName + "' to '" + oldName + "'"); + +}; + mkws.promotionFunction = function(name) { return mkws.widgetType2function[name]; }; mkws.setMkwsConfig = function(overrides) { - // Set global log_level flag early so that _log() works - var tmp = overrides.log_level; - if (typeof(tmp) !== 'undefined') mkws.log_level = tmp; - var config_default = { use_service_proxy: true, pazpar2_url: undefined, @@ -528,7 +548,7 @@ mkws.info("Using window.name '" + window.name + "'"); // 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: + // 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) @@ -539,7 +559,7 @@ mkws.info("Using window.name '" + window.name + "'"); mkws.init = function(message, rootsel) { var greet = "MKWS initialised"; if (rootsel) greet += " (limited to " + rootsel + ")" - if (message) greet += " :: " + message; + if (message) greet += " :: " + message; mkws.info(greet); // MKWS is not active until init() has been run against an object with widget nodes. @@ -648,8 +668,11 @@ mkws.info("Using window.name '" + window.name + "'"); } else if (!mkws.authenticating) { // raw pp2 or we have a session already open runAutoSearches(); + for (var teamName in mkws.teams) { + mkws.teams[teamName].queue("authenticated").publish(); + } } - + mkws.isActive = true; return true; }; @@ -660,4 +683,11 @@ mkws.info("Using window.name '" + window.name + "'"); } }); + // Set global log_level flag early so that _log() works + if (typeof mkws_config !== 'undefined') { + var tmp = mkws_config.log_level; + if (typeof tmp !== 'undefined') { + mkws.logger.setOptions({ "level": mkws.stringToLevel(tmp) }); + } + } })(mkws.$);