Fix list row selection when provided uid is number not a string

pull/324/head
Aleksander Machniak 9 years ago
parent d66793f0af
commit 58c03846e7

@ -1104,11 +1104,11 @@ _rowIndex: function(obj)
/** /**
* Check if given id is part of the current selection * Check if given id is part of the current selection
*/ */
in_selection: function(id) in_selection: function(id, index)
{ {
for (var n in this.selection) for (var n in this.selection)
if (this.selection[n] == id) if (this.selection[n] == id)
return true; return index ? n : true;
return false; return false;
}, },
@ -1256,18 +1256,19 @@ highlight_row: function(id, multiple, norecur)
} }
} }
else { else {
if (!this.in_selection(id)) { // select row var pre, post, p = this.in_selection(id, true);
if (p === false) { // select row
this.selection.push(id); this.selection.push(id);
$(this.rows[id].obj).addClass('selected').attr('aria-selected', 'true'); $(this.rows[id].obj).addClass('selected').attr('aria-selected', 'true');
if (!norecur && !this.rows[id].expanded) if (!norecur && !this.rows[id].expanded)
this.highlight_children(id, true); this.highlight_children(id, true);
} }
else { // unselect row else { // unselect row
var p = $.inArray(id, this.selection), pre = this.selection.slice(0, p);
a_pre = this.selection.slice(0, p), post = this.selection.slice(p+1, this.selection.length);
a_post = this.selection.slice(p+1, this.selection.length);
this.selection = a_pre.concat(a_post); this.selection = pre.concat(post);
$(this.rows[id].obj).removeClass('selected').removeAttr('aria-selected'); $(this.rows[id].obj).removeClass('selected').removeAttr('aria-selected');
if (!norecur && !this.rows[id].expanded) if (!norecur && !this.rows[id].expanded)
this.highlight_children(id, false); this.highlight_children(id, false);

Loading…
Cancel
Save