[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