Status line implemented using pub/sub
authorMike Taylor <mike@indexdata.com>
Tue, 4 Mar 2014 14:54:54 +0000 (14:54 +0000)
committerMike Taylor <mike@indexdata.com>
Tue, 4 Mar 2014 14:54:54 +0000 (14:54 +0000)
tools/htdocs/mkws.js

index 43fc455..60b9388 100644 (file)
@@ -183,11 +183,16 @@ function widget($, team, type, node) {
 
     if (type === 'Targets') {
        promoteTargets();
+    } else if (type === 'Stat') {
+       promoteStat();
+    } else {
+       // Unsupported widget type: call an extension?
     }
 
     // ### More to do here, surely: e.g. wiring into the team
     mkws.debug("made widget(team=" + team + ", type=" + type + ", node=" + node);
 
+
     function promoteTargets() {
        mkws.queue("targets").subscribe(function(data) {
            if (node.length === 0) alert("huh?!");
@@ -214,6 +219,20 @@ function widget($, team, type, node) {
        });
     }
 
+
+    function promoteStat() {
+       mkws.queue("stat").subscribe(function(data) {
+           if (node.length === 0)  alert("huh?!");
+
+           $(node).html('<span class="head">' + M('Status info') + '</span>' +
+               ' -- ' +
+               '<span class="clients">' + M('Active clients') + ': ' + data.activeclients + '/' + data.clients + '</span>' +
+               ' -- ' +
+               '<span class="records">' + M('Retrieved records') + ': ' + data.records + '/' + data.hits + '</span>');
+       });
+    }
+
+
     return that;
 }
 
@@ -296,14 +315,7 @@ function team($, teamName) {
 
     function onStat(data, teamName) {
        debug("stat");
-       var node = findnode('.mkwsStat');
-       if (node.length === 0) return;
-
-       node.html('<span class="head">' + M('Status info') + '</span>' +
-           ' -- ' +
-           '<span class="clients">' + M('Active clients') + ': ' + data.activeclients + '/' + data.clients + '</span>' +
-           ' -- ' +
-           '<span class="records">' + M('Retrieved records') + ': ' + data.records + '/' + data.hits + '</span>');
+       mkws.queue("stat").publish(data);
     }