[IMP]Improve code for bind shift key to multiple selection.
authorKunal Chavda (OpenERP) <kch@tinyerp.com>
Fri, 22 Jul 2011 06:23:32 +0000 (11:53 +0530)
committerKunal Chavda (OpenERP) <kch@tinyerp.com>
Fri, 22 Jul 2011 06:23:32 +0000 (11:53 +0530)
bzr revid: kch@tinyerp.com-20110722062332-25joa55uysqtce73

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

index da78d3f..33e570a 100644 (file)
@@ -212,16 +212,42 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
             });
 
             $("tr[id^='treerow-" + record.id + "']").click(function(e){
+                if (e.shiftKey == true){
+                    var frst_click,scnd_click = '';
+                    if (self.row_index == 0){
+                        self.row_index = this.rowIndex;
+                        frst_click = $("tr[id^='treerow-']")[self.row_index-1];
+                        $(frst_click).addClass("ui-selected");
+                    }else{
+                        if (this.rowIndex >=self.row_index){
+                            for (i = (self.row_index-1); i < this.rowIndex; i++) {
+                                scnd_click = $("tr[id^='treerow-']")[i];
+                                $(scnd_click).addClass("ui-selected");
+                            }
+                        }else{
+                            for (i = (self.row_index-1); i >= (this.rowIndex-1); i--) {
+                                scnd_click = $("tr[id^='treerow-']")[i];
+                                $(scnd_click).addClass("ui-selected");
+                            }
+                        }
+                    }
+                }
+                self.row_index = this.rowIndex;
+
+                $("tr[id^='treerow-" + record.id + "']").keyup(function (e) {
+                        self.row_index = 0;
+                });
+
                 var selected = $("tr.ui-selected");
                 if ($(this).hasClass("ui-selected") && (e.ctrlKey == true)){
                     $(this).find('a').blur();
                     $(this).removeClass("ui-selected");
-                }else if($(this).hasClass("ui-selected") && (e.ctrlKey == false)){
+                }else if($(this).hasClass("ui-selected") && (e.ctrlKey == false) && (e.shiftKey == false)){
                     selected.find('a').blur();
                     selected.removeClass("ui-selected");
                     $(this).find('a').focus();
                     $(this).addClass("ui-selected");
-                }else if(!$(this).hasClass("ui-selected") && (e.ctrlKey == false)){
+                }else if(!$(this).hasClass("ui-selected") && (e.ctrlKey == false) && (e.shiftKey == false)){
                     selected.find('a').blur();
                     selected.removeClass("ui-selected");
                     $(this).find('a').focus();