thomascube
2011-01-12 e224b002c08968ea2085c260a316f4357b81573e
program/js/list.js
@@ -1,9 +1,9 @@
/*
 +-----------------------------------------------------------------------+
 | RoundCube List Widget                                                 |
 | Roundcube List Widget                                                 |
 |                                                                       |
 | This file is part of the RoundCube Webmail client                     |
 | Copyright (C) 2006-2009, RoundCube Dev, - Switzerland                 |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2006-2009, The Roundcube Dev Team                       |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
/**
 * RoundCube List Widget class
 * Roundcube List Widget class
 * @contructor
 */
function rcube_list_widget(list, p)
@@ -110,7 +110,7 @@
    // set eventhandlers to table row
    row.onmousedown = function(e){ return self.drag_row(e, this.uid); };
    row.onmouseup = function(e){ return self.click_row(e, this.uid); };
    if (bw.iphone || bw.ipad) {
      row.addEventListener('touchstart', function(e) {
        if (e.touches.length == 1) {
@@ -214,12 +214,17 @@
{
  var id;
  this.focused = true;
  for (var n in this.selection) {
    id = this.selection[n];
    if (this.rows[id] && this.rows[id].obj) {
      $(this.rows[id].obj).addClass('selected').removeClass('unfocused');
    }
  }
  // Un-focus already focused elements
  $('*:focus', window).blur();
  $('iframe').each(function() { this.blur(); });
  if (e || (e = window.event))
    rcube_event.cancel(e);
@@ -695,7 +700,7 @@
  var prev_row = this.get_prev_row();
  var new_row = (next_row) ? next_row : prev_row;
  if (new_row)
    this.select_row(new_row.uid, false, false);
    this.select_row(new_row.uid, false, false);
},
@@ -724,7 +729,7 @@
  if (row && mod_key) {
    this.shift_select(row, mod_key);
    this.triggerEvent('select');
    this.scrollto(row);
    this.scrollto(row);
  }
  else if (row)
    this.select(row);
@@ -862,7 +867,7 @@
  // one row
  if (id) {
    for (var n=0 in this.selection)
    for (var n in this.selection)
      if (this.selection[n] == id) {
        this.selection.splice(n,1);
        break;
@@ -1118,13 +1123,15 @@
        this.select_childs(uid);
    }
    // reset content
    this.draglayer.html('');
    // get subjects of selected messages
    var names = '';
    var c, i, subject, obj;
    for (var n=0; n<this.selection.length; n++) {
    var c, i, n, subject, obj;
    for (n=0; n<this.selection.length; n++) {
      // only show 12 lines
      if (n>12) {
        names += '...';
        this.draglayer.append('...');
        break;
      }
@@ -1137,7 +1144,7 @@
             this.drag_start_pos = $(obj.childNodes[i]).offset();
           if (this.subject_col < 0 || (this.subject_col >= 0 && this.subject_col == c)) {
             var node, tmp_node, nodes = obj.childNodes[i].childNodes;
             var entry, node, tmp_node, nodes = obj.childNodes[i].childNodes;
             // find text node
             for (m=0; m<nodes.length; m++) {
               if ((tmp_node = obj.childNodes[i].childNodes[m]) && (tmp_node.nodeType==3 || tmp_node.nodeName=='A'))
@@ -1147,11 +1154,14 @@
             if (!node)
               break;
              subject = node.nodeType==3 ? node.data : node.innerHTML;
              subject = $(node).text();
             // remove leading spaces
             subject = subject.replace(/^\s+/i, '');
              subject = $.trim(subject);
              // truncate line to 50 characters
             names += (subject.length > 50 ? subject.substring(0, 50)+'...' : subject) + '<br />';
              subject = (subject.length > 50 ? subject.substring(0, 50) + '...' : subject);
              entry = $('<div>').text(subject);
             this.draglayer.append(entry);
              break;
            }
            c++;
@@ -1160,9 +1170,7 @@
      }
    }
    this.draglayer.html(names);
    this.draglayer.show();
    this.drag_active = true;
    this.triggerEvent('dragstart');
  }