Aleksander Machniak
2014-09-02 588d1948cadd9f443de481b95827c926330547fe
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(); };
  }
  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;
  }
},
@@ -1410,7 +1417,8 @@
 */
scrollto: function(id)
{
  var row = this.rows[id].obj;
  var row = this.rows[id] ? this.rows[id].obj : null;
  if (row && this.frame) {
    var scroll_to = Number(row.offsetTop),
      head_offset = 0;
@@ -1499,7 +1507,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