Author: jmorliaguet
Date: Tue Dec 27 01:24:35 2005
New Revision: 2087

Modified:
   cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
Log:

- almost working submenus



Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js (original)
+++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Tue Dec 27 
01:24:35 2005
@@ -226,13 +226,18 @@
   },
 
   browse: function(e) {
+    if (this.submenu) {
+      var x = Event.pointerX(e);
+      var y = Event.pointerY(e);
+      if (!Position.within(this.submenu, x, y)) {
+        Element.hide(this.submenu);
+      }
+    }
     node = Event.element(e);
     var submenus = document.getElementsByClassName('submenu', node);
     if (submenus.length > 0) {
       this.submenu = submenus[0];
       Element.show(this.submenu);
-    } else {
-      if (this.submenu) Element.hide(this.submenu);
     }
   },
 
@@ -266,6 +271,10 @@
     if (!document.all)
       this.submenuLeft += parseInt(menu.style.left);
 
+    // clear all submenus
+    document.getElementsByClassName('submenu', this.menu).each(function(v) {
+      v.parentNode.removeChild(v);
+    });
     this.filterMenuItems();
     Element.show(this.menu);
   },
@@ -301,18 +310,18 @@
               var item = document.createElement('a');
               item.setAttribute('href', '#');
               item.setAttribute('choice', s[0]);
-              item.appendChild(document.createTextNode(s[1] ? s[1] : s[0]));
+              item.innerHTML = s[1] ? s[1] : s[0];
               submenu.appendChild(item);
             }
             Element.addClassName(submenu, 'submenu');
-            submenu.style.left = this.submenuX;
+            submenu.style.left = this.submenuLeft + 'px';
+            submenu.style.display = 'none';
             node.appendChild(submenu);
-            Element.hide(submenu);
           }
         }
-        Element.show(node);
+        node.style.display = 'block';
       } else {
-        Element.hide(node);
+        node.style.display = 'none';
       }
     }
 
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to