adding some tracability into the plugins code
[myslice.git] / plugins / senslabmap / static / js / senslabmap.js
index 3b92490..e6a64b5 100644 (file)
@@ -1,11 +1,14 @@
 (function($){
   var SensLabMap = Plugin.extend({
     init: function(options, element) {
+       this.classname="senslabmap";
       this._super(options, element);
       
       this.elmt().on('show', this, this.on_show);
-      
+
+      var query = manifold.query_store.find_analyzed_query(options.query_uuid);
       this.method = query.object;
+      this.key = manifold.metadata.get_key(this.method);
       
       /* Setup query and record handlers */
       this.listen_query(options.query_uuid);
         }
         this.nodes[site].push(node);
       } else {
-        console.warn("node has no site:");
-        console.warn(node);
+// xxx would need a smarter way to report these only on nodes that deserve it
+// these messages are all over the place in a PL setup and tend to hide helpful signal
+//        console.warn("node has no site:");
+//        console.warn(node);
       }
     },
     
     on_all_query_done: function() {
-      var
-        self = this,
-        maps = {},
-        $container = $('#maps-container');
-  
-      $.each(this.sites, function(i, site) {
-        var $div = $("<div />").appendTo($container);
-        maps[site] = new Senslab.Map($div);
-        maps[site].addNodes(self.nodes[site]);
-      });
+      var uuid = this.options.query_uuid;
+      var key = this.key
+      
+      Senslab.createMaps($("#maps-container"), this.sites, this.nodes);
+      Senslab.notify = function(node) {
+        manifold.raise_event(uuid, node.selected ? SET_ADD : SET_REMOVED, node[key]);
+      }
     }
   });
   $.plugin('SensLabMap', SensLabMap);