handleNodeWithTeam is meant to invoke its callback with the "type"
[mkws-moved-to-github.git] / src / mkws-core.js
index 73f2b8d..fc63469 100644 (file)
@@ -286,6 +286,24 @@ mkws.log("Using window.name '" + window.name + "'");
 // wrapper to provide local copy of the jQuery object.
 (function($) {
   var log = mkws.log;
+  var _old2new = { // Maps old-style widget names to new-style
+    'Authname': 'auth-name',
+    'ConsoleBuilder': 'console-builder',
+    'Coverart': 'cover-art',
+    'GoogleImage': 'google-image',
+    'MOTD': 'motd',
+    'MOTDContainer': 'motd-container',
+    'Perpage': 'per-page',
+    'SearchForm': 'search-form',
+  };
+  // Annoyingly, there is no built-in way to invert a hash
+  var _new2old = {};
+  for (var key in _old2new) {
+    if(_old2new.hasOwnProperty(key)) {
+      _new2old[_old2new[key]] = key;
+    }
+  }
+
 
   function handleNodeWithTeam(node, callback) {
     // First branch for DOM objects; second branch for jQuery objects
@@ -303,10 +321,15 @@ mkws.log("Using window.name '" + window.name + "'");
 
     for (var i = 0; i < list.length; i++) {
       var cname = list[i];
-      if (cname.match(/^mkwsTeam_/)) {
-        teamName = cname.replace(/^mkwsTeam_/, '');
+      if (cname.match(/^mkws-team-/)) {
+        teamName = cname.replace(/^mkws-team-/, '');
+      } else if (cname.match(/^mkws-/)) {
+        // New-style names of the form mkws-foo-bar
+        type = cname.replace(/^mkws-/, '');
       } else if (cname.match(/^mkws/)) {
-        type = cname.replace(/^mkws/, '');
+        // Old-style names of the form mkwsFooBar
+        var tmp = cname.replace(/^mkws/, '');
+        type = _old2new[tmp] || tmp.toLowerCase();
       }
     }
 
@@ -353,8 +376,8 @@ mkws.log("Using window.name '" + window.name + "'");
       for (var tname in mkws.teams) {
         var team = mkws.teams[tname];
         team.visitWidgets(function(t, w) {
-          var w1 = team.widget(t + "-Container-" + from);
-          var w2 = team.widget(t + "-Container-" + to);
+          var w1 = team.widget(t + "-container-" + from);
+          var w2 = team.widget(t + "-container-" + to);
           if (w1) {
             w1.node.hide();
           }
@@ -443,9 +466,14 @@ mkws.log("Using window.name '" + window.name + "'");
       var s = "";
       for (var type in mkws.widgetType2function) {
        if (s) s += ',';
-       s += '.mkws' + type;
-       s += ',.mkws' + type + "-Container-wide";
-       s += ',.mkws' + type + "-Container-narrow";
+       s += '.mkws-' + type;
+       s += ',.mkws-' + type + "-container-wide";
+       s += ',.mkws-' + type + "-container-narrow";
+        // Annoyingly, we also need to recognise old-style names
+        var oldtype = _new2old[type] || type.charAt(0).toUpperCase() + type.slice(1);
+       s += ',.mkws' + oldtype;
+       s += ',.mkws' + oldtype + "-Container-wide";
+       s += ',.mkws' + oldtype + "-Container-narrow";
       }
       return s;
     }
@@ -461,12 +489,12 @@ mkws.log("Using window.name '" + window.name + "'");
       handleNodeWithTeam(this, function(tname, type) {
         var myTeam = mkws.teams[tname];
         if (!myTeam) {
-          myTeam = mkws.teams[tname] = team($, tname);
+          myTeam = mkws.teams[tname] = mkws.makeTeam($, tname);
           log("made MKWS team '" + tname + "'");
         }
 
         var oldHTML = this.innerHTML;
-        var myWidget = widget($, myTeam, type, this);
+        var myWidget = mkws.makeWidget($, myTeam, type, this);
         myTeam.addWidget(myWidget);
         var newHTML = this.innerHTML;
         if (newHTML !== oldHTML) {
@@ -567,16 +595,16 @@ mkws.log("Using window.name '" + window.name + "'");
     var now = $.now();
 
     log("walking MKWS nodes took " + (now-then) + " ms");
-
-    /*
-      for (var tName in mkws.teams) {
+    for (var tName in mkws.teams) {
       var myTeam = mkws.teams[tName]
-      log("team '" + tName + "' = " + myTeam + " ...");
-      myTeam.visitWidgets(function(t, w) {
-      log("  has widget of type '" + t + "': " + w);
-      });
-      }
-    */
+      myTeam.makePz2();
+      log("made PZ2 object for team '" + tName + "'");
+      /*
+        myTeam.visitWidgets(function(t, w) {
+          log("  has widget of type '" + t + "': " + w);
+        });
+      */
+    }
 
     function sp_auth_url(config) {
       if (config.service_proxy_auth) {