New widget-setup utility function, hideWhenNarrow.
[mkws-moved-to-github.git] / src / mkws-core.js
index 1ff2f2e..ba20a02 100644 (file)
@@ -336,24 +336,33 @@ mkws.pagerNext = function(tname) {
         var width = $(window).width();
         var from, to, method;
 
-        if (mkws.width === undefined) {
-            // No state change, since we have no previous state
-        } else if (mkws.width > threshhold && width <= threshhold) {
+        if ((mkws.width === undefined || mkws.width > threshhold) &&
+                   width <= threshhold) {
             from = "wide"; to = "narrow"; method = "hide";
-        } else if (mkws.width <= threshhold && width > threshhold) {
+        } else if ((mkws.width === undefined || mkws.width <= threshhold) &&
+                   width > threshhold) {
             from = "narrow"; to = "wide"; method = "show";
         }
         mkws.width = width;
 
         if (from) {
            log("changing from " + from + " to " + to + ": " + width);
-           $(".mkwsTermlist-Container-" + from).hide();
-           $(".mkwsTermlist-Container-" + to).show();
            for (var tname in mkws.teams) {
-                mkws.teams[tname].queue("resize" + to).publish();
-               $(".mkwsTermlists.mkwsTeam_" + tname).appendTo($(".mkwsTermlist-Container-" + to + ".mkwsTeam_" + tname));
+                var team = mkws.teams[tname];
+                team.visitWidgets(function (t, w) {
+                    var w1 = team.widget(t + "-Container-" + from);
+                    var w2 = team.widget(t + "-Container-" + to);
+                    if (w1) {
+                        $(w1.node).hide();
+                    }
+                    if (w2) {
+                        $(w2.node).show();
+                       $(w.node).appendTo($(w2.node));
+                    }
+                });
+                team.queue("resize" + to).publish();
                for(var i = 0; i < list.length; i++) {
-                    var widget = mkws.teams[tname].widget(list[i]);
+                    var widget = team.widget(list[i]);
                     if (widget) $(widget.node)[method]();
                }
            }
@@ -422,7 +431,7 @@ mkws.pagerNext = function(tname) {
                 myTeam.addWidget(myWidget);
                 var newHTML = this.innerHTML;
                 if (newHTML !== oldHTML) {
-                    log("widget " + tname + ":" + type + " HTML changed from '" + oldHTML + "' to '" + newHTML + "': reparse!");
+                    log("widget " + tname + ":" + type + " HTML changed: reparsing");
                     makeWidgetsWithin(level+1, $(this));
                 }
             });
@@ -502,15 +511,15 @@ mkws.pagerNext = function(tname) {
        var now = $.now();
        log("Walking MKWS nodes took " + (now-then) + " ms");
 
-//        for (var tName in mkws.teams) {
-//            var myTeam = mkws.teams[tName]
-//            var types = myTeam.widgetTypes();
-//            log("TEAM '" + tName + "' = " + myTeam + " has widget types " + types);
-//            for (var i = 0; i < types.length; i++) {
-//                var type = types[i];
-//                log("  has widget of type '" + type + "': " + myTeam.widget(type));
-//            }
-//        }
+        /*
+        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);
+            });
+        }
+        */
 
        if (mkws.config.use_service_proxy) {
            authenticateSession(mkws.config.service_proxy_auth,