From: Mike Taylor Date: Tue, 15 Apr 2014 15:56:54 +0000 (+0100) Subject: Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkws X-Git-Tag: 1.0.0~948 X-Git-Url: http://sru.miketaylor.org.uk/?a=commitdiff_plain;h=77e5325a13c369c4cfdaf45a924da61c20829186;hp=3dccbd4d54f629ac281d4a2f37cf6014cc1218e3;p=mkws-moved-to-github.git Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkws --- diff --git a/src/mkws-core.js b/src/mkws-core.js index fd0c0de..07a4b2d 100644 --- a/src/mkws-core.js +++ b/src/mkws-core.js @@ -390,11 +390,22 @@ mkws.pagerNext = function(tname) { handleNodeWithTeam(this, function(tname, type) { var myTeam = mkws.teams[tname]; var myWidget = widget(j, myTeam, type, this); + myTeam.addWidget(myWidget); }); }); var now = $.now(); log("Walking MKWS nodes took " + (now-then) + " ms"); +// for (var tName in mkws.teams) { +// var myTeam = mkws.teams[tName] +// var types = myTeam.widgetTypes(); +// log("TEAM '" + tName + "' = " + myTeam + " has widget types " + types); +// for (var i = 0; i < types.length; i++) { +// var type = types[i]; +// log(" has widget of type '" + type + "': " + myTeam.widget(type)); +// } +// } + if (mkws.config.use_service_proxy) { authenticateSession(mkws.config.service_proxy_auth, mkws.config.service_proxy_auth_domain, diff --git a/src/mkws-team.js b/src/mkws-team.js index d6fc49f..0ddc962 100644 --- a/src/mkws-team.js +++ b/src/mkws-team.js @@ -28,6 +28,7 @@ function team($, teamName) { var m_paz; // will be initialised below var m_template = {}; var m_config = mkws.objectInheritingFrom(mkws.config); + var m_widgets = {}; // Maps widget-type to object that.toString = function() { return '[Team ' + teamName + ']'; }; @@ -741,6 +742,28 @@ function team($, teamName) { return s; } + that.addWidget = function(w) { + if (!m_widgets[w.type]) { + m_widgets[w.type] = w; + log("Registered '" + w.type + "' widget in team '" + m_teamName + "'"); + } else if (typeof(m_widgets[w.type]) !== 'number') { + m_widgets[w.type] = 2; + log("Registered duplicate '" + w.type + "' widget in team '" + m_teamName + "'"); + } else { + m_widgets[w.type] += 1; + log("Registered '" + w.type + "' widget #" + m_widgets[w.type] + "' in team '" + m_teamName + "'"); + } + } + + that.widgetTypes = function() { + var keys = []; + for (var k in m_widgets) keys.push(k); + return keys.sort(); + } + + that.widget = function(type) { + return m_widgets[type]; + } mkwsHtmlAll()