Remove erroneous mkws-template_underscore and fix demos. MKWS-294
[mkws-moved-to-github.git] / src / mkws-team.js
index 1d155c6..7ec9c2f 100644 (file)
@@ -64,17 +64,17 @@ mkws.makeTeam = function($, teamName) {
   //    team.queue("eventName").subscribe(function(param1, param2 ...) { ... });
   //    team.queue("eventName").publish(arg1, arg2, ...);
   //
-  var queues = {};
+  var m_queues = {};
   function queue(id) {
-    if (!queues[id]) {
+    if (!m_queues[id]) {
       var callbacks = $.Callbacks();
-      queues[id] = {
+      m_queues[id] = {
         publish: callbacks.fire,
         subscribe: callbacks.add,
         unsubscribe: callbacks.remove
       };
     }
-    return queues[id];
+    return m_queues[id];
   };
   that.queue = queue;
 
@@ -95,25 +95,6 @@ mkws.makeTeam = function($, teamName) {
   m_sortOrder = config.sort_default;
   m_perpage = config.perpage_default;
  
- // create a parameters array and pass it to the pz2's constructor
-  // then register the form submit event with the pz2.search function
-  // autoInit is set to true on default
-  that.makePz2 = function() {
-    m_paz = new pz2({ "windowid": teamName,
-                      "pazpar2path": mkws.pazpar2_url(),
-                      "usesessions" : config.use_service_proxy ? false : true,
-                      "oninit": onInit,
-                      "onbytarget": onBytarget,
-                      "onstat": onStat,
-                      "onterm": (config.facets.length ? onTerm : undefined),
-                      "onshow": onShow,
-                      "onrecord": onRecord,
-                      "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
-                      "termlist": config.facets.join(',')
-                    });
-    log("created main pz2 object");
-  }
-
   // pz2.js event handlers:
   function onInit() {
     log("init");
@@ -169,15 +150,54 @@ mkws.makeTeam = function($, teamName) {
   }
 
 
+  // create a parameters array and pass it to the pz2's constructor
+  // then register the form submit event with the pz2.search function
+  // autoInit is set to true on default
+  that.makePz2 = function() {
+    log("m_queues=" + $.toJSON(m_queues));
+    var params = {
+      "windowid": teamName,
+      "pazpar2path": mkws.pazpar2_url(),
+      "usesessions" : config.use_service_proxy ? false : true,
+      "showtime": 500,            //each timer (show, stat, term, bytarget) can be specified this way
+      "termlist": config.facets.join(',')
+    };
+
+    params.oninit = onInit;
+    if (m_queues.targets) {
+      params.onbytarget = onBytarget;
+      log("setting bytarget callback");
+    }
+    if (m_queues.stat) {
+      params.onstat = onStat;
+      log("setting stat callback");
+    }
+    if (m_queues.termlists && config.facets.length) {
+      params.onterm = onTerm;
+      log("setting term callback");
+    }
+    if (m_queues.records) {
+      log("setting show callback");
+      params.onshow = onShow;
+      // Record callback is subscribed from records callback
+      log("setting record callback");
+      params.onrecord = onRecord;
+    }
+
+    m_paz = new pz2(params);
+    log("created main pz2 object");
+  }
+
+
   // Used by the Records widget and onRecord()
   function recordElementId(s) {
-    return 'mkwsRec_' + s.replace(/[^a-z0-9]/ig, '_');
+    return 'mkws-rec_' + s.replace(/[^a-z0-9]/ig, '_');
   }
   that.recordElementId = recordElementId;
 
   // Used by onRecord(), showDetails() and renderDetails()
   function recordDetailsId(s) {
-    return 'mkwsDet_' + s.replace(/[^a-z0-9]/ig, '_');
+    return 'mkws-det_' + s.replace(/[^a-z0-9]/ig, '_');
   }
 
 
@@ -320,10 +340,10 @@ mkws.makeTeam = function($, teamName) {
 
   // switching view between targets and records
   function switchView(view) {
-    var targets = widgetNode('Targets');
-    var results = widgetNode('Results') || widgetNode('Records');
-    var blanket = widgetNode('Blanket');
-    var motd    = widgetNode('MOTD');
+    var targets = widgetNode('targets');
+    var results = widgetNode('results') || widgetNode('records');
+    var blanket = widgetNode('blanket');
+    var motd    = widgetNode('motd');
 
     switch(view) {
     case 'targets':
@@ -370,10 +390,10 @@ mkws.makeTeam = function($, teamName) {
     teamName = teamName || m_teamName;
 
     if (teamName === 'AUTO') {
-      selector = (selector + '.mkwsTeam_' + teamName + ',' +
-                  selector + ':not([class^="mkwsTeam"],[class*=" mkwsTeam"])');
+      selector = (selector + '.mkws-team-' + teamName + ',' +
+                  selector + ':not([class^="mkws-team"],[class*=" mkws-team"])');
     } else {
-      selector = selector + '.mkwsTeam_' + teamName;
+      selector = selector + '.mkws-team-' + teamName;
     }
 
     var node = $(selector);
@@ -388,26 +408,35 @@ mkws.makeTeam = function($, teamName) {
   }
 
   function renderDetails(data, marker) {
-    var template = loadTemplate("Record");
+    var template = loadTemplate("details");
     var details = template(data);
-    return '<div class="mkwsDetails mkwsTeam_' + m_teamName + '" ' +
+    return '<div class="mkws-details mkwsDetails mkwsTeam_' + m_teamName + '" ' +
       'id="' + recordDetailsId(data.recid[0]) + '">' + details + '</div>';
   }
   that.renderDetails = renderDetails;
 
 
   that.registerTemplate = function(name, text) {
+    if(mkws._old2new.hasOwnProperty(name)) {
+      mkws.log("Warning: registerTemplate old widget name: " + name + " => " + mkws._old2new[name]);
+      name = mkws._old2new[name];
+    }
     m_templateText[name] = text;
   };
 
 
   function loadTemplate(name, fallbackString) {
+    if(mkws._old2new.hasOwnProperty(name)) {
+       mkws.log("Warning loadTemplate: old widget name: " + name + " => " + mkws._old2new[name]);
+       name = mkws._old2new[name];
+    }
+
     var template = m_template[name];
     if (template === undefined && Handlebars.compile) {
       var source;
-      var node = $(".mkwsTemplate_" + name + " .mkwsTeam_" + that.name());
+      var node = $(".mkws-template-" + name + " .mkws-team-" + that.name());
       if (node && node.length < 1) {
-        node = $(".mkwsTemplate_" + name);
+        node = $(".mkws-template-" + name);
       }
       if (node) source = node.html();
       if (!source) source = m_templateText[name];
@@ -418,7 +447,7 @@ mkws.makeTeam = function($, teamName) {
     }
     //if (template === undefined) template = mkws_templatesbyteam[m_teamName][name];
     if (template === undefined && Handlebars.templates) {
-      template = Handlebars.templates[name];
+      template = Handlebars.templates["mkws-template-" + name];
     }
     if (template === undefined && mkws.defaultTemplates) {
       template = mkws.defaultTemplates[name];
@@ -428,7 +457,7 @@ mkws.makeTeam = function($, teamName) {
       return template;
     }
     else {
-      mkws.log("No MKWS template for " + name);
+      log("No MKWS template for " + name);
       return null;
     }  
   }