[Jifty-commit] r920 - in jifty/branches/jifty-jsan: share/web/static/js share/web/templates/_elements

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Apr 24 17:11:46 EDT 2006


Author: trs
Date: Mon Apr 24 17:11:45 2006
New Revision: 920

Added:
   jifty/branches/jifty-jsan/share/web/templates/_elements/keybindings
Modified:
   jifty/branches/jifty-jsan/   (props changed)
   jifty/branches/jifty-jsan/share/web/static/js/key_bindings.js
   jifty/branches/jifty-jsan/share/web/templates/_elements/wrapper

Log:
 r10015 at zot:  tom | 2006-04-24 17:10:18 -0400
 Make writing keybinding legend use Behaviour and the DOM


Modified: jifty/branches/jifty-jsan/share/web/static/js/key_bindings.js
==============================================================================
--- jifty/branches/jifty-jsan/share/web/static/js/key_bindings.js	(original)
+++ jifty/branches/jifty-jsan/share/web/static/js/key_bindings.js	Mon Apr 24 17:11:45 2006
@@ -10,6 +10,9 @@
     listener: null,
 
     activate: function() {
+        if ( Jifty.KeyBindings.listener )
+            return;
+        
         Jifty.KeyBindings.listener = DOM.Events.addListener(
                                         window,
                                         "keydown",
@@ -63,23 +66,44 @@
         return Jifty.KeyBindings.bindings[key];
     },
 
-    writeLegend: function() {
-        var content = "";
+    writeLegend: function(e) {
+        if (    !document.createElement
+             || !document.createTextNode
+             || Element.hasClassName(e, 'keybindings-written') )
+            return;
+        
+        
+        /* definition list */
+        var dl = document.createElement("dl");
+        dl.setAttribute("class", "keybindings");
+
+    
+        /* terms of the list */
         
         for (var key in Jifty.KeyBindings.bindings) {
-            if ( Jifty.KeyBindings.bindings[key]["label"] ) {
-                content = content + '<div class="keybinding"><dt>'+key + '</dt>' +'<dd>'+Jifty.KeyBindings.bindings[key]['label'] +'</dd></div>'; 
+            if ( Jifty.KeyBindings.get(key)["label"] ) {
+                var div = document.createElement("div");
+                div.setAttribute("class", "keybinding");
+                
+                var dt = document.createElement("dt");
+                dt.appendChild( document.createTextNode( key ) );
+
+                var dd = document.createElement("dd");
+                dd.appendChild( document.createTextNode( Jifty.KeyBindings.get(key)["label"] ) );
+                
+                div.appendChild( dt );
+                div.appendChild( dd );
+                dl.appendChild( div );
             }
         }
         
-        if (content) {
-            document.write('<div class="keybindings">');
-            document.write('<dl class="keybindings">');
-            document.write(content);
-            document.write('</dl>');
-            document.write('</div>');
-        }
+        e.appendChild( dl );
+        Element.addClassName(e, 'keybindings-written');
+        
+        /* since we wrote the legend, now obey it */
+        Jifty.KeyBindings.activate();
     }
 }
 
+Behaviour.register({ "div.keybindings": Jifty.KeyBindings.writeLegend });
 

Added: jifty/branches/jifty-jsan/share/web/templates/_elements/keybindings
==============================================================================
--- (empty file)
+++ jifty/branches/jifty-jsan/share/web/templates/_elements/keybindings	Mon Apr 24 17:11:45 2006
@@ -0,0 +1 @@
+<div class="keybindings"></div>

Modified: jifty/branches/jifty-jsan/share/web/templates/_elements/wrapper
==============================================================================
--- jifty/branches/jifty-jsan/share/web/templates/_elements/wrapper	(original)
+++ jifty/branches/jifty-jsan/share/web/templates/_elements/wrapper	Mon Apr 24 17:11:45 2006
@@ -13,13 +13,8 @@
 % }
   <% Jifty->web->render_messages %>
   <% $m->content |n%>
-  <script type="text/javascript"><!--
-  Jifty.KeyBindings.activate();
-  document.write('<div id="keybindings">');
-  Jifty.KeyBindings.writeLegend();
-  document.write('<\/div>');
-  document.write('<div id="jifty-wait-message" style="display: none"><%_('Loading...')%><\/div>');
-  --></script>
+  <& /_elements/keybindings &>
+  <div id="jifty-wait-message" style="display: none"><%_('Loading...')%></div>
 % Jifty::Mason::Halo->render_component_tree() if (Jifty->config->framework('DevelMode') );
 </body>
 </html>


More information about the Jifty-commit mailing list