From 03451e85940eca8d284beb46cecda23ba87fdc45 Mon Sep 17 00:00:00 2001 From: "Kunal Chavda (OpenERP)" Date: Thu, 14 Jul 2011 17:58:25 +0530 Subject: [PATCH] [IMP]Implement up and down arrow key in export tree structure. bzr revid: kch@tinyerp.com-20110714122825-0omxwj3z039f82g2 --- .../base_export/static/src/js/base_export.js | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/addons/base_export/static/src/js/base_export.js b/addons/base_export/static/src/js/base_export.js index 0a3ea7cf53b..38abbb219c0 100644 --- a/addons/base_export/static/src/js/base_export.js +++ b/addons/base_export/static/src/js/base_export.js @@ -128,6 +128,8 @@ openerp.base_export.Export = openerp.base.Dialog.extend({ $('#left_field_panel').append(QWeb.render('ExportTreeView-Secondary', {'fields': result})); } $('img[id ^= parentimg]').click(function(){ + var elem_id = this.id.split("-")[1]; + $($.find("tr[id='treerow-" + elem_id + "']")).find('a').focus(); self.on_click(this.id, result); }); $('[id^=export-]').dblclick(function(){ @@ -137,26 +139,30 @@ openerp.base_export.Export = openerp.base.Dialog.extend({ self.on_field_click(this); }); $("tr[id^='treerow-']").keydown(function (e) { - var keyCode = e.keyCode || e.which; - arrow = {left: 37, up: 38, right: 39, down: 40 }; - switch (keyCode) { - case arrow.left: - if( jQuery(this).find('img').attr('src') == '/base/static/src/img/collapse.gif'){ - self.on_click(this.id, result); - } - break; - case arrow.up: - //.. - break; - case arrow.right: - if( jQuery(this).find('img').attr('src') == '/base/static/src/img/expand.gif'){ - self.on_click(this.id, result); - } - break; - case arrow.down: - //.. - break; - } + var keyCode = e.keyCode || e.which; + arrow = {left: 37, up: 38, right: 39, down: 40 }; + switch (keyCode) { + case arrow.left: + if( jQuery(this).find('img').attr('src') == '/base/static/src/img/collapse.gif'){ + self.on_click(this.id, result); + } + break; + case arrow.up: + $(this).prev().find('a').focus(); + break; + case arrow.right: + if( jQuery(this).find('img').attr('src') == '/base/static/src/img/expand.gif'){ + self.on_click(this.id, result); + } + break; + case arrow.down: + var elem = this; + while($(elem).next().is(":visible") == false){ + elem = $(elem).next(); + } + $(elem).next().find('a').focus(); + break; + } }); $('#fields_list').mouseover(function(event){