Thomas Bruederli
2013-10-19 ada51d1d0eac8a1c4448a664c42e8712bce9e650
program/js/list.js
@@ -35,7 +35,7 @@
  this.tbody;
  this.fixed_header;
  this.frame = null;
  this.rows = [];
  this.rows = {};
  this.selection = [];
  this.rowcount = 0;
  this.colcount = 0;
@@ -50,7 +50,6 @@
  this.keyboard = false;
  this.toggleselect = false;
  this.dont_select = false;
  this.drag_active = false;
  this.col_drag_active = false;
  this.column_fixed = null;
@@ -86,7 +85,7 @@
  }
  if (this.tbody) {
    this.rows = [];
    this.rows = {};
    this.rowcount = 0;
    var r, len, rows = this.tbody.childNodes;
@@ -240,7 +239,7 @@
    $(this.row_tagname() + ':not(.thead)', this.tbody).remove();
  }
  this.rows = [];
  this.rows = {};
  this.rowcount = 0;
  if (sel)
@@ -409,14 +408,14 @@
  var evtarget = rcube_event.get_target(e),
    tagname = evtarget.tagName.toLowerCase();
  if (this.dont_select || (evtarget && (tagname == 'input' || tagname == 'img')))
  if (evtarget && (tagname == 'input' || tagname == 'img' || (tagname != 'a' && evtarget.onclick)))
    return true;
  // accept right-clicks
  if (rcube_event.get_button(e) == 2)
    return true;
  this.in_selection_before = e.istouch || this.in_selection(id) ? id : false;
  this.in_selection_before = e && e.istouch || this.in_selection(id) ? id : false;
  // selects currently unselected row
  if (!this.in_selection_before) {
@@ -455,12 +454,6 @@
  if ((evtarget && (tagname == 'input' || tagname == 'img')))
    return true;
  // don't do anything (another action processed before)
  if (this.dont_select) {
    this.dont_select = false;
    return false;
  }
  var dblclicked = now - this.rows[id].clicked < this.dblclick_time;
  // unselects currently selected row
@@ -471,7 +464,7 @@
  this.in_selection_before = false;
  // row was double clicked
  if (this.rows && dblclicked && this.in_selection(id)) {
  if (this.rowcount && dblclicked && this.in_selection(id)) {
    this.triggerEvent('dblclick');
    now = 0;
  }
@@ -509,8 +502,6 @@
    evtarget = rcube_event.get_target(e),
    mod_key = rcube_event.get_modifier(e);
  // Don't select this message
  this.dont_select = true;
  // Don't treat double click on the expando as double click on the message.
  row.clicked = 0;
@@ -703,7 +694,7 @@
 */
get_next_row: function()
{
  if (!this.rows)
  if (!this.rowcount)
    return false;
  var last_selected_row = this.rows[this.last_selected],
@@ -717,7 +708,7 @@
get_prev_row: function()
{
  if (!this.rows)
  if (!this.rowcount)
    return false;
  var last_selected_row = this.rows[this.last_selected],
@@ -969,7 +960,7 @@
 */
select_all: function(filter)
{
  if (!this.rows || !this.rows.length)
  if (!this.rowcount)
    return false;
  // reset but remember selection first
@@ -1001,7 +992,7 @@
 */
invert_selection: function()
{
  if (!this.rows || !this.rows.length)
  if (!this.rowcount)
    return false;
  // remember old selection