openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #00080
[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> </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%"> </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%"> </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'));
+});
+