[IMP]Implement up and down arrow key in export tree structure.
authorKunal Chavda (OpenERP) <kch@tinyerp.com>
Thu, 14 Jul 2011 12:28:25 +0000 (17:58 +0530)
committerKunal Chavda (OpenERP) <kch@tinyerp.com>
Thu, 14 Jul 2011 12:28:25 +0000 (17:58 +0530)
bzr revid: kch@tinyerp.com-20110714122825-0omxwj3z039f82g2

addons/base_export/static/src/js/base_export.js

index 0a3ea7c..38abbb2 100644 (file)
@@ -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){