| | |
| | | this.subject_col = -1; |
| | | this.shiftkey = false; |
| | | this.multiselect = false; |
| | | this.multi_selecting = false; |
| | | this.draggable = false; |
| | | this.keyboard = false; |
| | | this.toggleselect = false; |
| | |
| | | for (var n=0; n<this.selection.length; n++) |
| | | { |
| | | id = this.selection[n]; |
| | | if (this.rows[id].obj) |
| | | if (this.rows[id] && this.rows[id].obj) |
| | | { |
| | | this.set_classname(this.rows[id].obj, 'selected', true); |
| | | this.set_classname(this.rows[id].obj, 'unfocused', false); |
| | |
| | | { |
| | | this.shift_start = id; |
| | | this.highlight_row(id, false); |
| | | this.multi_selecting = false; |
| | | } |
| | | else |
| | | { |
| | |
| | | this.highlight_row(id, false); |
| | | break; |
| | | } |
| | | this.multi_selecting = true; |
| | | } |
| | | |
| | | // trigger event if selection changed |
| | |
| | | */ |
| | | shift_select: function(id, control) |
| | | { |
| | | if (!this.rows[this.shift_start] || !this.selection.length) |
| | | this.shift_start = id; |
| | | |
| | | var from_rowIndex = this.rows[this.shift_start].obj.rowIndex; |
| | | var to_rowIndex = this.rows[id].obj.rowIndex; |
| | | |
| | |
| | | if (this.selection.join(',') != select_before) |
| | | this.trigger_event('select'); |
| | | |
| | | this.focus(); |
| | | |
| | | return true; |
| | | }, |
| | | |
| | |
| | | { |
| | | if (this.rows[id] && !multiple) |
| | | { |
| | | if (!this.in_selection(id)) |
| | | if (this.selection.length > 1 || !this.in_selection(id)) |
| | | { |
| | | this.clear_selection(); |
| | | this.selection[0] = id; |
| | |
| | | rcube_event.remove_listener({element:document, event:'mousemove', object:this, method:'drag_mouse_move'}); |
| | | rcube_event.remove_listener({element:document, event:'mouseup', object:this, method:'drag_mouse_up'}); |
| | | |
| | | this.focus(); |
| | | |
| | | return rcube_event.cancel(e); |
| | | }, |
| | | |