| | |
| | | this.focus_elem = $('<a>') |
| | | .attr('tabindex', '0') |
| | | .attr('style', 'display:block; width:1px; height:1px; line-height:1px; overflow:hidden; position:fixed; top:-1000px') |
| | | .html('Select List') |
| | | .html($(this.list).attr('summary') || 'Select List') |
| | | .insertAfter(this.list) |
| | | .on('focus', function(e){ me.focus(e); }) |
| | | .on('blur', function(e){ me.blur(e); }); |
| | |
| | | if (!this.fixed_header) { |
| | | this.fixed_header = $('<table>') |
| | | .attr('class', this.list.className + ' fixedcopy') |
| | | .attr('role', 'presentation') |
| | | .css({ position:'fixed' }) |
| | | .append(clone) |
| | | .append('<tbody></tbody>'); |
| | |
| | | if (this.focused) |
| | | return; |
| | | |
| | | var n, id; |
| | | this.focused = true; |
| | | |
| | | for (n in this.selection) { |
| | | id = this.selection[n]; |
| | | if (this.rows[id] && this.rows[id].obj) { |
| | | $(this.rows[id].obj).addClass('selected').removeClass('unfocused'); |
| | | } |
| | | } |
| | | |
| | | if (e) |
| | | rcube_event.cancel(e); |
| | |
| | | */ |
| | | blur: function(e) |
| | | { |
| | | var n, id; |
| | | this.focused = false; |
| | | for (n in this.selection) { |
| | | id = this.selection[n]; |
| | | if (this.rows[id] && this.rows[id].obj) { |
| | | $(this.rows[id].obj).removeClass('selected focused').addClass('unfocused'); |
| | | } |
| | | } |
| | | |
| | | $(this.list).removeClass('focus'); |
| | | }, |
| | | |
| | |
| | | this.highlight_row(n, true, true); |
| | | } |
| | | else { |
| | | $(this.rows[n].obj).removeClass('selected').removeClass('unfocused'); |
| | | $(this.rows[n].obj).removeClass('selected').removeAttr('aria-selected'); |
| | | } |
| | | } |
| | | |
| | |
| | | else { |
| | | for (n in this.selection) |
| | | if (this.rows[this.selection[n]]) { |
| | | $(this.rows[this.selection[n]].obj).removeClass('selected').removeClass('unfocused'); |
| | | $(this.rows[this.selection[n]].obj).removeClass('selected').removeAttr('aria-selected'); |
| | | } |
| | | |
| | | this.selection = []; |
| | |
| | | if (this.selection.length > 1 || !this.in_selection(id)) { |
| | | this.clear_selection(null, true); |
| | | this.selection[0] = id; |
| | | $(this.rows[id].obj).addClass('selected'); |
| | | $(this.rows[id].obj).addClass('selected').attr('aria-selected', 'true'); |
| | | } |
| | | } |
| | | else { |
| | | if (!this.in_selection(id)) { // select row |
| | | this.selection.push(id); |
| | | $(this.rows[id].obj).addClass('selected'); |
| | | $(this.rows[id].obj).addClass('selected').attr('aria-selected', 'true'); |
| | | if (!norecur && !this.rows[id].expanded) |
| | | this.highlight_children(id, true); |
| | | } |
| | |
| | | a_post = this.selection.slice(p+1, this.selection.length); |
| | | |
| | | this.selection = a_pre.concat(a_post); |
| | | $(this.rows[id].obj).removeClass('selected').removeClass('unfocused'); |
| | | $(this.rows[id].obj).removeClass('selected').removeAttr('aria-selected'); |
| | | if (!norecur && !this.rows[id].expanded) |
| | | this.highlight_children(id, false); |
| | | } |