← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~toolpart/openobject-client-web/html-accesskey into lp:openobject-client-web/5.0

 

ViktorNagy has proposed merging lp:~toolpart/openobject-client-web/html-accesskey into lp:openobject-client-web/5.0.

Requested reviews:
  OpenERP SA's Web Client R&D (openerp-dev-web)


I've added accesskey="x" attributes to several <button> tags in the templates + a small script to show the accesskey in the title of the button like "Save [alt-shift-s]".

The diff should contain mako files + a javascript file accesskey.js.

Not all the button tags are covered as I could not find the ones for the search form for example.
-- 
https://code.launchpad.net/~toolpart/openobject-client-web/html-accesskey/+merge/31714
Your team OpenERP SA's Web Client R&D is requested to review the proposed merge of lp:~toolpart/openobject-client-web/html-accesskey into lp:openobject-client-web/5.0.
=== modified file '.pydevproject'
--- .pydevproject	2010-06-14 12:48:37 +0000
+++ .pydevproject	2010-08-04 00:01:03 +0000
@@ -1,9 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?eclipse-pydev version="1.0"?>
 
 <pydev_project>
 <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.5</pydev_property>
 <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
-<path>/etiny_stable/openerp</path>
+<path>/openerp-web/openerp</path>
 </pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
 </pydev_project>

=== modified file 'openerp/controllers/templates/calpopup.mako'
--- openerp/controllers/templates/calpopup.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/calpopup.mako	2010-08-04 00:01:03 +0000
@@ -86,8 +86,8 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
-                                <button type="button" onclick="submit_form('save')">${_("Save")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
+                                <button type="button" onclick="submit_form('save')" accesskey="s">${_("Save")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/database.mako'
--- openerp/controllers/templates/database.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/database.mako	2010-08-04 00:01:03 +0000
@@ -89,23 +89,23 @@
                         </td>
                         <td width="100%">${form.string}</td>
                         <td nowrap="nowrap">
-                            <button type="button" 
+                            <button type="button" accesskey="c"
                                 title="${_('Create new database')}"
                                 ${py.disabled(form.name=='create')}
                                 onclick="dbView('create')">${_("Create")}</button>
-                            <button type="button" 
+                            <button type="button" accesskey="d"
                                 title="${_('Drop database')}"
                                 ${py.disabled(form.name=='drop')}
                                 onclick="dbView('drop')">${_("Drop")}</button>
-                            <button type="button" 
+                            <button type="button" accesskey="b"
                                 title="${_('Backup database')}"
                                 ${py.disabled(form.name=='backup')}
                                 onclick="dbView('backup')">${_("Backup")}</button>
-                            <button type="button" 
+                            <button type="button" accesskey="r"
                                 title="${_('Restore database')}"
                                 ${py.disabled(form.name=='restore')}
                                 onclick="dbView('restore')">${_("Restore")}</button>
-                            <button type="button" 
+                            <button type="button" accesskey="p"
                                 title="${_('Change Administrator Password')}"
                                 ${py.disabled(form.name=='password')}
                                 onclick="dbView('password')">${_("Password")}</button>

=== modified file 'openerp/controllers/templates/fieldpref.mako'
--- openerp/controllers/templates/fieldpref.mako	2009-08-18 11:08:32 +0000
+++ openerp/controllers/templates/fieldpref.mako	2010-08-04 00:01:03 +0000
@@ -100,10 +100,10 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
                             </td>
                             <td>
-                                <button type="submit">${_("OK")}</button>
+                                <button type="submit" accesskey="o">${_("OK")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/form.mako'
--- openerp/controllers/templates/form.mako	2010-01-13 06:39:52 +0000
+++ openerp/controllers/templates/form.mako	2010-08-04 00:01:03 +0000
@@ -40,12 +40,12 @@
                                     % if buttons.search or buttons.form or buttons.calendar or buttons.gantt or buttons.graph:
                                     <td nowrap="nowrap">
                                         <button 
-                                            type="button" 
+                                            type="button"
                                             title="${_('Tree View...')}" 
                                             ${py.attr_if("disabled",not buttons.search)}
                                             onclick="switchView('tree')">${_("Search")}</button>
                                         <button 
-                                            type="button" 
+                                            type="button"
                                             title="${_('Form View...')}" 
                                             ${py.attr_if("disabled",not buttons.form)}
                                             onclick="switchView('form')">${_("Form")}</button>
@@ -128,39 +128,39 @@
                                             <button 
                                                 type="button" 
                                                 title="${_('Create a new resource')}" 
-                                                onclick="editRecord(null)">${_("New")}</button>
+                                                onclick="editRecord(null)" accesskey="n">${_("New")}</button>
                                             % endif
                                             % if buttons.edit:
                                             <button 
                                                 type="button" 
-                                                title="${_('Edit this resource')}" 
+                                                title="${_('Edit this resource')}" accesskey="e"
                                                 onclick="editRecord(${form.screen.id or 'null'})">${_("Edit")}</button>
                                             % endif
                                             % if buttons.save:
                                             <button 
                                                 type="button" 
-                                                title="${_('Save this resource')}"
+                                                title="${_('Save this resource')}" accesskey="s"
                                                 onclick="submit_form('save')">${_("Save")}</button>
                                             <button 
                                                 type="button" 
-                                                title="${_('Save & Edit this resource')}" 
+                                                title="${_('Save & Edit this resource')}" accesskey="e"
                                                 onclick="submit_form('save_and_edit')">${_("Save & Edit")}</button>
                                             % endif
                                             % if buttons.edit:
                                             <button 
                                                 type="button" 
-                                                title="${_('Duplicate this resource')}"
+                                                title="${_('Duplicate this resource')}" accesskey="u"
                                                 onclick="submit_form('duplicate')">${_("Duplicate")}</button>
                                             % endif
                                             % if buttons.delete:
                                             <button 
                                                 type="button"
-                                                title="${_('Delete this resource')}" 
+                                                title="${_('Delete this resource')}" accesskey="d"
                                                 onclick="submit_form('delete')">${_("Delete")}</button>
                                             % endif
                                             % if buttons.cancel:
                                             <button 
-                                                type="button" 
+                                                type="button" accesskey="c"
                                                 title="${_('Cancel editing the current resource')}" 
                                                 onclick="submit_form('cancel')">${_("Cancel")}</button>
                                             % endif

=== modified file 'openerp/controllers/templates/login.mako'
--- openerp/controllers/templates/login.mako	2009-12-03 13:01:25 +0000
+++ openerp/controllers/templates/login.mako	2010-08-04 00:01:03 +0000
@@ -53,9 +53,9 @@
                         <td></td>
                         <td align="right">
                             % if cp.config('dbbutton.visible', 'openerp-web'):
-                            <button type="button" style="white-space: nowrap" tabindex="-1" onclick="location.href='/database'">${_("Databases")}</button>
+                            <button type="button" style="white-space: nowrap" tabindex="-1" onclick="location.href='/database'" accesskey="d">${_("Databases")}</button>
                             % endif
-                            <button type="submit" style="width: 80px; white-space: nowrap">${_("Login")}</button>
+                            <button type="submit" style="width: 80px; white-space: nowrap" accesskey="l">${_("Login")}</button>
                         </td>
                     </tr>
                 </table>                

=== modified file 'openerp/controllers/templates/login_ajax.mako'
--- openerp/controllers/templates/login_ajax.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/login_ajax.mako	2010-08-04 00:01:03 +0000
@@ -82,7 +82,7 @@
                 </tr>
                 <tr>
                     <td>
-                        <button type="submit" style="width: 80px; white-space: nowrap">${_("Login")}</button>
+                        <button type="submit" style="width: 80px; white-space: nowrap" accesskey="l">${_("Login")}</button>
                     </td>
                 </tr>
             </table>
@@ -101,7 +101,7 @@
                 <tr>
                     <td>&nbsp;</td>
                     <td align="right">
-                        <button type="submit" style="width: 80px; white-space: nowrap">${_("Login")}</button>
+                        <button type="submit" style="width: 80px; white-space: nowrap" accesskey="l">${_("Login")}</button>
                     </td>
                 </tr>
             </table> 

=== modified file 'openerp/controllers/templates/master.mako'
--- openerp/controllers/templates/master.mako	2010-07-29 13:01:08 +0000
+++ openerp/controllers/templates/master.mako	2010-08-04 00:01:03 +0000
@@ -12,6 +12,7 @@
     <script type="text/javascript" src="/static/javascript/MochiKit/DragAndDrop.js"></script>
     <script type="text/javascript" src="/static/javascript/MochiKit/Resizable.js"></script>
     <script type="text/javascript" src="/static/javascript/MochiKit/Sortable.js"></script>
+    <script type="text/javascript" src="/static/javascript/accesskey.js"></script>
     
 % for js in widget_javascript.get('head', []):
     ${js.display()}

=== modified file 'openerp/controllers/templates/openm2m.mako'
--- openerp/controllers/templates/openm2m.mako	2009-08-18 11:08:32 +0000
+++ openerp/controllers/templates/openm2m.mako	2010-08-04 00:01:03 +0000
@@ -67,8 +67,8 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
-                                <button type="button" onclick="submit_form('save')">${_("Save")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
+                                <button type="button" onclick="submit_form('save')" accesskey="s">${_("Save")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/openm2o.mako'
--- openerp/controllers/templates/openm2o.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/openm2o.mako	2010-08-04 00:01:03 +0000
@@ -58,9 +58,9 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
                                 % if form.screen.editable:
-                                <button type="button" onclick="submit_form('save')">${_("Save")}</button>
+                                <button type="button" onclick="submit_form('save')" accesskey="s">${_("Save")}</button>
                                 % endif
                             </td>
                         </tr>

=== modified file 'openerp/controllers/templates/openo2m.mako'
--- openerp/controllers/templates/openo2m.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/openo2m.mako	2010-08-04 00:01:03 +0000
@@ -85,9 +85,9 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
                                 % if form.screen.editable:
-                                <button type="button" onclick="submit_form('save')">${_("Save")}</button>
+                                <button type="button" onclick="submit_form('save')" accesskey="s">${_("Save")}</button>
                                 % endif
                             </td>
                         </tr>

=== modified file 'openerp/controllers/templates/preferences.mako'
--- openerp/controllers/templates/preferences.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/preferences.mako	2010-08-04 00:01:03 +0000
@@ -18,8 +18,8 @@
                     <td>${form.display()}</td>
                 </tr>
                 <td class="toolbar" align="right">
-                    <button type='button' style="width: 80px" onclick="window.location.href='/'">${_("Cancel")}</button>
-                    <button type='button' style="width: 80px" onclick="submit_form('ok')">${_("Save")}</button>
+                    <button type='button' style="width: 80px" onclick="window.location.href='/'" accesskey="c">${_("Cancel")}</button>
+                    <button type='button' style="width: 80px" onclick="submit_form('ok')" accesskey="s">${_("Save")}</button>
                 </td>
             </table>
         </form>

=== modified file 'openerp/controllers/templates/process_open.mako'
--- openerp/controllers/templates/process_open.mako	2009-08-18 11:08:32 +0000
+++ openerp/controllers/templates/process_open.mako	2010-08-04 00:01:03 +0000
@@ -54,8 +54,8 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
-                                <button type="button" onclick="submit_form('save')">${_("Save")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
+                                <button type="button" onclick="submit_form('save')" accesskey="s">${_("Save")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/process_tip.mako'
--- openerp/controllers/templates/process_tip.mako	2009-11-30 05:33:23 +0000
+++ openerp/controllers/templates/process_tip.mako	2010-08-04 00:01:03 +0000
@@ -17,7 +17,7 @@
 	<tr>
 		<td align="right">
 			<div class="box2">
-            	<button type="button" onclick="window.close()">${_("Close")}</button>
+            	<button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
             </div>
         </td>
 	</tr>

=== modified file 'openerp/controllers/templates/search.mako'
--- openerp/controllers/templates/search.mako	2010-03-03 10:43:35 +0000
+++ openerp/controllers/templates/search.mako	2010-08-04 00:01:03 +0000
@@ -161,12 +161,12 @@
                     <table cellpadding="0" cellspacing="0">
                         <tr>
                             <td width="100%">
-                                <button type="submit">${_("Filter")}</button>
-                                <button type="button" onclick="do_create()">${_("New")}</button>
-                                <button type="button" onclick="do_select()">${_("Select")}</button>
+                                <button type="submit" accesskey="f">${_("Filter")}</button>
+                                <button type="button" onclick="do_create()" accesskey="n">${_("New")}</button>
+                                <button type="button" onclick="do_select()" accesskey="s">${_("Select")}</button>
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/selection.mako'
--- openerp/controllers/templates/selection.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/selection.mako	2010-08-04 00:01:03 +0000
@@ -49,8 +49,8 @@
                     <td width="100%">
                     </td>
                     <td>
-                        <button type="button" onclick="window.opener ? window.close() : history.back()">${_("Cancel")}</button>
-                        <button type="submit">${_("OK")}</button>
+                        <button type="button" onclick="window.opener ? window.close() : history.back()" accesskey="c">${_("Cancel")}</button>
+                        <button type="submit" accesskey="o">${_("OK")}</button>
                     </td>
                 </tr>
             </table>

=== modified file 'openerp/controllers/templates/translator.mako'
--- openerp/controllers/templates/translator.mako	2010-01-13 06:39:52 +0000
+++ openerp/controllers/templates/translator.mako	2010-08-04 00:01:03 +0000
@@ -40,8 +40,8 @@
                                 </select>
                             </td>
                             <td width="100%">&nbsp;</td>
-                            <td><button type="submit">${_("Save")}</button></td>
-                            <td><button type="button" onclick="window.close()">${_("Close")}</button></td>
+                            <td><button type="submit" accesskey="s">${_("Save")}</button></td>
+                            <td><button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button></td>
                         </tr>
                     </table>
                 </div>
@@ -105,8 +105,8 @@
                     <table border="0" cellpadding="0" cellspacing="0" width="100%">
                         <tr>
                             <td width="100%">&nbsp;</td>
-                            <td><button type="submit">${_("Save")}</button></td>
-                            <td><button type="button" onclick="window.close()">${_("Close")}</button></td>
+                            <td><button type="submit" accesskey="s">${_("Save")}</button></td>
+                            <td><button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button></td>
                         </tr>
                     </table>
                 </div>

=== modified file 'openerp/controllers/templates/view_log.mako'
--- openerp/controllers/templates/view_log.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/view_log.mako	2010-08-04 00:01:03 +0000
@@ -45,7 +45,7 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("OK")}</button>
+                                <button type="button" onclick="window.close()" accesskey="o">${_("OK")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/viewed_new.mako'
--- openerp/controllers/templates/viewed_new.mako	2009-08-18 11:08:32 +0000
+++ openerp/controllers/templates/viewed_new.mako	2010-08-04 00:01:03 +0000
@@ -51,8 +51,8 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
-                                <button type="button" onclick="submit_form('save')">${_("Save")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
+                                <button type="button" onclick="submit_form('save')" accesskey="s">${_("Save")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/viewed_new_model.mako'
--- openerp/controllers/templates/viewed_new_model.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/viewed_new_model.mako	2010-08-04 00:01:03 +0000
@@ -42,12 +42,12 @@
                     <table border="0" cellpadding="0" cellspacing="0" width="100%">
                         <tr>
                             <td>
-                                <button type="button" onclick="createNewModel()">${_("New")}</button>
+                                <button type="button" onclick="createNewModel()" accesskey="n">${_("New")}</button>
                             </td>
                             <td width="100%"></td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>
-                                <button type="button" onclick="submit_form('save_and_edit')">${_("Save")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>
+                                <button type="button" onclick="submit_form('save_and_edit')" accesskey="s">${_("Save")}</button>
                             </td>
                         </tr>
                     </table>

=== modified file 'openerp/controllers/templates/wizard.mako'
--- openerp/controllers/templates/wizard.mako	2010-08-03 12:31:22 +0000
+++ openerp/controllers/templates/wizard.mako	2010-08-04 00:01:03 +0000
@@ -34,7 +34,7 @@
     
     <div class="toolbar" style="text-align: right;">
         % for state in buttons:
-        <button onclick="wizardAction('${state[0]}', '${state[1]}')">
+        <button accesskey="c" onclick="wizardAction('${state[0]}', '${state[1]}')">
             <table align="center" cellspacing="0">
                 <tr>
                     % if len(state) >= 3:

=== modified file 'openerp/controllers/templates/wkf_popup.mako'
--- openerp/controllers/templates/wkf_popup.mako	2009-07-23 05:32:23 +0000
+++ openerp/controllers/templates/wkf_popup.mako	2010-08-04 00:01:03 +0000
@@ -54,8 +54,8 @@
                             <td width="100%">
                             </td>
                             <td>
-                                <button type="button" onclick="window.close()">${_("Close")}</button>                                
-                                <button type="button" onclick="submit_form('save');">${_("Save")}</button>
+                                <button type="button" onclick="window.close()" accesskey="c">${_("Close")}</button>                                
+                                <button type="button" onclick="submit_form('save');" accesskey="s">${_("Save")}</button>
                             </td>
                         </tr>
                     </table>

=== added file 'openerp/static/javascript/accesskey.js'
--- openerp/static/javascript/accesskey.js	1970-01-01 00:00:00 +0000
+++ openerp/static/javascript/accesskey.js	2010-08-04 00:01:03 +0000
@@ -0,0 +1,61 @@
+/**
+ * Set the accesskey prefix based on browser detection.
+ * from wikimedia's wikibits.js
+ */
+var clientPC = navigator.userAgent.toLowerCase(); // Get client info
+var is_gecko = /gecko/.test( clientPC ) &&
+	!/khtml|spoofer|netscape\/7\.0/.test(clientPC);
+var webkit_match = clientPC.match(/applewebkit\/(\d+)/);
+if (webkit_match) {
+	var is_safari = clientPC.indexOf('applewebkit') != -1 &&
+		clientPC.indexOf('spoofer') == -1;
+	var is_safari_win = is_safari && clientPC.indexOf('windows') != -1;
+	var webkit_version = parseInt(webkit_match[1]);
+}
+// For accesskeys; note that FF3+ is included here!
+var is_ff2 = /firefox\/[2-9]|minefield\/3/.test( clientPC );
+var ff2_bugs = /firefox\/2/.test( clientPC );
+// These aren't used here, but some custom scripts rely on them
+var is_ff2_win = is_ff2 && clientPC.indexOf('windows') != -1;
+var is_ff2_x11 = is_ff2 && clientPC.indexOf('x11') != -1;
+if (clientPC.indexOf('opera') != -1) {
+	var is_opera = true;
+	var is_opera_preseven = window.opera && !document.childNodes;
+	var is_opera_seven = window.opera && document.childNodes;
+	var is_opera_95 = /opera\/(9\.[5-9]|[1-9][0-9])/.test( clientPC );
+	var opera6_bugs = is_opera_preseven;
+	var opera7_bugs = is_opera_seven && !is_opera_95;
+	var opera95_bugs = /opera\/(9\.5)/.test( clientPC );
+}
+// As recommended by <http://msdn.microsoft.com/en-us/library/ms537509.aspx>,
+// avoiding false positives from moronic extensions that append to the IE UA
+// string (bug 23171)
+var ie6_bugs = false;
+if ( /MSIE ([0-9]{1,}[\.0-9]{0,})/.exec( clientPC ) != null
+&& parseFloat( RegExp.$1 ) <= 6.0 ) {
+	ie6_bugs = true;
+}
+var tooltipAccessKeyPrefix = 'alt-';
+if ( is_opera ) {
+	tooltipAccessKeyPrefix = 'shift-esc-';
+} else if ( !is_safari_win && is_safari && webkit_version > 526 ) {
+	tooltipAccessKeyPrefix = 'ctrl-alt-';
+} else if ( !is_safari_win && ( is_safari
+		|| clientPC.indexOf('mac') != -1
+		|| clientPC.indexOf('konqueror') != -1 ) ) {
+	tooltipAccessKeyPrefix = 'ctrl-';
+} else if ( is_ff2 ) {
+	tooltipAccessKeyPrefix = 'alt-shift-';
+}
+var tooltipAccessKeyRegexp = /\[(ctrl-)?(alt-)?(shift-)?(esc-)?(.)\]$/;
+
+function addAccesskey2Title(node) {
+  if(MochiKit.DOM.getNodeAttribute(node, 'accesskey')) {
+    MochiKit.DOM.setNodeAttribute(node, 'title', MochiKit.DOM.getNodeAttribute(node, 'title') + ' [' + tooltipAccessKeyPrefix + MochiKit.DOM.getNodeAttribute(node, 'accesskey') + ']');
+  }
+}
+
+MochiKit.DOM.addLoadEvent(function(evt) {
+    MochiKit.Base.map(addAccesskey2Title, $$('button'));
+});
+