Aleksander Machniak
2014-08-05 e32da281bb796431d700e39e4ab10b94e3038ee7
program/js/list.js
@@ -61,12 +61,13 @@
  this.keyboard = false;
  this.toggleselect = false;
  this.aria_listbox = false;
  this.parent_focus = true;
  this.drag_active = false;
  this.col_drag_active = false;
  this.column_fixed = null;
  this.last_selected = 0;
  this.shift_start = 0;
  this.last_selected = null;
  this.shift_start = null;
  this.focused = false;
  this.drag_mouse_start = null;
  this.dblclick_time = 500; // default value on MS Windows is 500
@@ -104,11 +105,13 @@
      $(this.list).attr('aria-multiselectable', 'true');
  }
  var me = this;
  if (this.tbody) {
    this.rows = {};
    this.rowcount = 0;
    var r, len, rows = this.tbody.childNodes, me = this;
    var r, len, rows = this.tbody.childNodes;
    for (r=0, len=rows.length; r<len; r++) {
      this.rowcount += this.init_row(rows[r]) ? 1 : 0;
@@ -125,6 +128,10 @@
      $(this.list).attr('tabindex', '0')
        .on('focus', function(e){ me.focus(e); });
    }
  }
  if (this.parent_focus) {
    this.list.parentNode.onclick = function(e) { me.focus(e); };
  }
  return this;
@@ -293,7 +300,7 @@
  this.rows = {};
  this.rowcount = 0;
  this.last_selected = 0;
  this.last_selected = null;
  if (sel)
    this.clear_selection();
@@ -939,13 +946,13 @@
    this.multi_selecting = true;
  }
  if (this.last_selected != 0 && this.rows[this.last_selected]) {
  if (this.last_selected && this.rows[this.last_selected]) {
    $(this.rows[this.last_selected].obj).removeClass('focused')
      .find(this.col_tagname()).eq(this.subject_col).removeAttr('tabindex');
  }
  // unselect if toggleselect is active and the same row was clicked again
  if (this.toggleselect && in_selection_before) {
  if (this.toggleselect && in_selection_before && !mod_key) {
    this.clear_selection();
  }
  // trigger event if selection changed
@@ -1171,7 +1178,7 @@
  if (num_select && !this.selection.length && !no_event) {
    this.triggerEvent('select');
    this.last_selected = 0;
    this.last_selected = null;
  }
},
@@ -1499,7 +1506,11 @@
      $('> ' + self.col_tagname(), self.rows[uid].obj).each(function(n, cell) {
        if (self.subject_col < 0 || (self.subject_col >= 0 && self.subject_col == n)) {
          var subject = $(cell).text();
          // remove elements marked with "skip-on-drag" class
          cell = $(cell).clone();
          $(cell).find('.skip-on-drag').remove();
          var subject = cell.text();
          if (subject) {
            // remove leading spaces