X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=tools%2Fhtdocs%2Fmkws.js;h=3a44f46fee77749e73860299dd20d19944a503ae;hb=5ef5d20b3d8c331c19adaa6920f0849fb4984dd8;hp=a2f1ef98408eff3627666f21345b244923f50910;hpb=e30cf1b96c994aa46ffccd28ff96f9255cccca28;p=mkws-moved-to-github.git
diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js
index a2f1ef9..3a44f46 100644
--- a/tools/htdocs/mkws.js
+++ b/tools/htdocs/mkws.js
@@ -142,29 +142,6 @@ var mkws = {
};
-// The following PubSub code is modified from the jQuery manual:
-// https://api.jquery.com/jQuery.Callbacks/
-//
-// Use as:
-// mkws.queue("eventName").subscribe(function(param1, param2 ...) { ... });
-// mkws.queue("eventName").publish(arg1, arg2, ...);
-
-(function() {
- var queues = {};
- mkws.queue = function(id) {
- if (!queues[id]) {
- var callbacks = $.Callbacks();
- queues[id] = {
- publish: callbacks.fire,
- subscribe: callbacks.add,
- unsubscribe: callbacks.remove
- };
- }
- return queues[id];
- }
-}());
-
-
// Define empty mkws_config for simple applications that don't define it.
if (mkws_config == null || typeof mkws_config != 'object') {
var mkws_config = {};
@@ -183,16 +160,22 @@ function widget($, team, type, node) {
if (type === 'Targets') {
promoteTargets();
+ } else if (type === 'Stat') {
+ promoteStat();
+ } else {
+ // ### Handle other types here
}
- // ### More to do here, surely: e.g. wiring into the team
mkws.debug("made widget(team=" + team + ", type=" + type + ", node=" + node);
+ return that;
- function promoteTargets() {
- mkws.debug("promoting widget to type Targets");
- mkws.queue("targets").subscribe(function(data) {
- mkws.debug("notified that there are targets");
+ // Functions follow for promoting the regular widget object into
+ // widgets of specific types. These could be moved outside of the
+ // widget object, or even into their own source files.
+
+ function promoteTargets() {
+ team.queue("targets").subscribe(function(data) {
if (node.length === 0) alert("huh?!");
var table ='
' +
@@ -212,11 +195,23 @@ function widget($, team, type, node) {
}
table += '
';
- $(node).html(table);
+ var subnode = $(node).children('.mkwsBytarget');
+ subnode.html(table);
});
}
- return that;
+
+ function promoteStat() {
+ team.queue("stat").subscribe(function(data) {
+ if (node.length === 0) alert("huh?!");
+
+ $(node).html('' + M('Status info') + '' +
+ ' -- ' +
+ '' + M('Active clients') + ': ' + data.activeclients + '/' + data.clients + '' +
+ ' -- ' +
+ '' + M('Retrieved records') + ': ' + data.records + '/' + data.hits + '');
+ });
+ }
}
@@ -231,6 +226,7 @@ function widget($, team, type, node) {
function team($, teamName) {
var that = {};
var m_teamName = teamName;
+ that.name = function() { return m_teamName; }
var m_submitted = false;
var m_query; // initially undefined
var m_sort; // will be set below
@@ -283,33 +279,26 @@ function team($, teamName) {
//
// pz2.js event handlers:
//
- function onInit(teamName) {
+ function onInit() {
debug("init");
m_paz.stat();
m_paz.bytarget();
}
- function onBytarget(data, teamName) {
+ function onBytarget(data) {
debug("target");
- mkws.queue("targets").publish(data);
+ queue("targets").publish(data);
}
- function onStat(data, teamName) {
+ function onStat(data) {
debug("stat");
- var node = findnode('.mkwsStat');
- if (node.length === 0) return;
-
- node.html('' + M('Status info') + '' +
- ' -- ' +
- '' + M('Active clients') + ': ' + data.activeclients + '/' + data.clients + '' +
- ' -- ' +
- '' + M('Retrieved records') + ': ' + data.records + '/' + data.hits + '');
+ queue("stat").publish(data);
}
- function onTerm(data, teamName) {
+ function onTerm(data) {
debug("term");
var node = findnode(".mkwsTermlists");
if (node.length == 0) return;
@@ -380,9 +369,10 @@ function team($, teamName) {
var detRecordDiv = document.getElementById('mkwsDet_' + teamName + '_' + data.recid);
if (detRecordDiv) return;
m_curDetRecData = data;
+ // Can't use jQuery's $('#x') syntax to find this ID, because it contains spaces.
var recordDiv = document.getElementById('mkwsRecdiv_' + teamName + '_' + m_curDetRecData.recid);
var html = renderDetails(m_curDetRecData);
- recordDiv.innerHTML += html;
+ $(recordDiv).append(html);
}
@@ -1181,6 +1171,29 @@ function team($, teamName) {
}
+ // The following PubSub code is modified from the jQuery manual:
+ // https://api.jquery.com/jQuery.Callbacks/
+ //
+ // Use as:
+ // team.queue("eventName").subscribe(function(param1, param2 ...) { ... });
+ // team.queue("eventName").publish(arg1, arg2, ...);
+
+ var queues = {};
+ var queue = function(id) {
+ if (!queues[id]) {
+ var callbacks = $.Callbacks();
+ queues[id] = {
+ publish: callbacks.fire,
+ subscribe: callbacks.add,
+ unsubscribe: callbacks.remove
+ };
+ }
+ return queues[id];
+ }
+
+ that.queue = queue;
+
+
// main
(function() {
try {