From c4cc9240fbc81f912ae8da0eab70cbf20fdad0c4 Mon Sep 17 00:00:00 2001 From: Vishmita Date: Fri, 23 Nov 2012 14:32:21 +0530 Subject: [PATCH] [IMP]Improve code bzr revid: vja@tinyerp.com-20121123090221-tjd950ju0xsd5e0o --- addons/web/static/src/js/view_form.js | 64 +++++++++++++++------------ 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 3f275de356c..860be651efd 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -227,45 +227,51 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM return $.when(); }, widgetAccesskey:function(){ + var self= this; var list = []; - var accesskey; + var accesskey = []; $(window).blur(function() {unhighlightAccessKeys()}); - - var highlightAccessKeys = function(ins){ - list = $(document).find('.oe_form_buttons span:visible button,.oe_form_buttons span a,.oe_form_button, .oe_list_content:visible .oe_form_field_one2many_list_row_add > a') - .not('.oe_form_invisible,.oe_edit_only'); + + var highlightAccessKeys = function(){ + var o2m = $.makeArray($(document).find('.oe_list_content:visible .oe_form_field_one2many_list_row_add > a')) + var list1 = $.makeArray($(document).find('.oe_form_buttons span:visible button,.oe_form_buttons span a,.oe_form_button').not('.oe_form_invisible,.oe_edit_only')); + list = o2m.concat(list1); accesskey = _.map(list, function(r){return $(r).attr('accesskey') }); _.each(list,function(el,i){ if (!$(el).attr("accesskey")) { - accesskey[i] = $(el).text().replace(/\s/g, '').toUpperCase().charAt(0); - if (accesskey[i]) { - var index = 0; - _.each(accesskey, function(key,j){ - - if(_.contains(accesskey,$(el).text().replace(/\s/g, '').toUpperCase().charAt(index))){ - index++; - return false - }else { - accesskey[i] = $(el).text().replace(/\s/g, '').toUpperCase().charAt(index) - $(el).attr("accesskey",$(el).text().replace(/\s/g, '').charAt(index)) - index = 0 - return true - } - return false - }) - }else { - $(el).attr('accesskey',$(el).text().replace(/\s/g, '').charAt(0)); - accesskey[i] = $(el).text().replace(/\s/g, '').toUpperCase().charAt(0); - return true - - } - } + if(! accesskey[i]){ + var index = 0; + _.each(accesskey,function(name,j){ + if (!name) { + accesskey[i] = $(el).text().replace(/\s/g, '').toUpperCase().charAt(0); + return + } else { + if (_.contains(accesskey, $(el).text().replace(/\s/g, '').toUpperCase().charAt(index))) { + index++; + return false; + } else { + if (! accesskey[i]) { + $(el).attr("accesskey",$(el).text().replace(/\s/g, '').charAt(index)) + index = 0 + return true + }else { + $(el).attr("accesskey",accesskey[i]) + } + } + } + return + }) + } + + }else { + $(el).attr("accesskey",accesskey[i]) + } }) } $(document).keydown(function(e){ - highlightAccessKeys(); if (e.keyCode === 18 || e.keycode === 16 && e.altkey || e.keyCode == 18 && e.shiftKey) { + highlightAccessKeys(); _.each(list,function(rl,i){ $(rl).html(function(i, html){ return $(rl).text().replace($(rl).attr('accesskey'), '' + $(rl).attr('accesskey') + '');