alecpl
2011-11-11 ecfaed571b2c38f4bcc2b6a0fa39fba15a5126ce
program/js/app.js
@@ -20,7 +20,7 @@
function rcube_webmail()
{
  this.env = {};
  this.env = { recipients_separator:',', recipients_delimiter:', ' };
  this.labels = {};
  this.buttons = {};
  this.buttons_sel = {};
@@ -207,7 +207,7 @@
          'moveto', 'copy', 'delete', 'open', 'mark', 'edit', 'viewsource', 'download',
          'print', 'load-attachment', 'load-headers', 'forward-attachment'];
        if (this.env.action=='show' || this.env.action=='preview') {
        if (this.env.action == 'show' || this.env.action == 'preview') {
          this.enable_command(this.env.message_commands, this.env.uid);
          this.enable_command('reply-list', this.env.list_post);
@@ -460,7 +460,7 @@
    }
    // check input before leaving compose step
    if (this.task=='mail' && this.env.action=='compose' && $.inArray(command, this.env.compose_commands)<0) {
    if (this.task == 'mail' && this.env.action == 'compose' && $.inArray(command, this.env.compose_commands)<0) {
      if (this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning')))
        return false;
    }
@@ -815,13 +815,7 @@
        if (this.task == 'mail') {
          url += '&_mbox='+urlencode(this.env.mailbox);
          if (this.env.mailbox == this.env.drafts_mailbox) {
            var uid;
            if (uid = this.get_single_uid())
              url += '&_draft_uid='+uid;
          }
          else if (props)
          if (props)
             url += '&_to='+urlencode(props);
        }
        // modify url if we're in addressbook
@@ -1678,12 +1672,9 @@
      flags: flags.extra_flags
    });
    var c, html, tree = expando = '',
    var c, n, col, html, tree = '', expando = '',
      list = this.message_list,
      rows = list.rows,
      tbody = this.gui_objects.messagelist.tBodies[0],
      rowcount = tbody.rows.length,
      even = rowcount%2,
      message = this.env.messages[uid],
      css_class = 'message'
        + (!flags.seen ? ' unread' : '')
@@ -1692,8 +1683,7 @@
        + (flags.unread_children && flags.seen && !this.env.autoexpand_threads ? ' unroot' : '')
        + (message.selected ? ' selected' : ''),
      // for performance use DOM instead of jQuery here
      row = document.createElement('tr'),
      col = document.createElement('td');
      row = document.createElement('tr');
    row.id = 'rcmrow'+uid;
    row.className = css_class;
@@ -1720,9 +1710,10 @@
    // threads
    if (this.env.threading) {
      // This assumes that div width is hardcoded to 15px,
      var width = message.depth * 15;
      if (message.depth) {
        // This assumes that div width is hardcoded to 15px,
        tree += '<span id="rcmtab' + uid + '" class="branch" style="width:' + (message.depth * 15) + 'px;">&nbsp;&nbsp;</span>';
        if ((rows[message.parent_uid] && rows[message.parent_uid].expanded === false)
          || ((this.env.autoexpand_threads == 0 || this.env.autoexpand_threads == 2) &&
            (!rows[message.parent_uid] || !rows[message.parent_uid].expanded))
@@ -1737,13 +1728,9 @@
        if (message.expanded === undefined && (this.env.autoexpand_threads == 1 || (this.env.autoexpand_threads == 2 && message.unread_children))) {
          message.expanded = true;
        }
      }
      if (width)
        tree += '<span id="rcmtab' + uid + '" class="branch" style="width:' + width + 'px;">&nbsp;&nbsp;</span>';
      if (message.has_children && !message.depth)
        expando = '<div id="rcmexpando' + uid + '" class="' + (message.expanded ? 'expanded' : 'collapsed') + '">&nbsp;&nbsp;</div>';
      }
    }
    tree += '<span id="msgicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
@@ -1757,7 +1744,7 @@
    }
    // add each submitted col
    for (var n in this.env.coltypes) {
    for (n in this.env.coltypes) {
      c = this.env.coltypes[n];
      col = document.createElement('td');
      col.className = String(c).toLowerCase();
@@ -2933,6 +2920,8 @@
  this.init_address_input_events = function(obj, props)
  {
    this.env.recipients_delimiter = this.env.recipients_separator + ' ';
    obj[bw.ie || bw.safari || bw.chrome ? 'keydown' : 'keypress'](function(e) { return ref.ksearch_keydown(e, this, props); })
      .attr('autocomplete', 'off');
  };
@@ -3597,13 +3586,13 @@
    // insert all members of a group
    if (typeof this.env.contacts[id] === 'object' && this.env.contacts[id].id) {
      insert += this.env.contacts[id].name + ', ';
      insert += this.env.contacts[id].name + this.env.recipients_delimiter;
      this.group2expand = $.extend({}, this.env.contacts[id]);
      this.group2expand.input = this.ksearch_input;
      this.http_request('mail/group-expand', '_source='+urlencode(this.env.contacts[id].source)+'&_gid='+urlencode(this.env.contacts[id].id), false);
    }
    else if (typeof this.env.contacts[id] === 'string') {
      insert = this.env.contacts[id] + ', ';
      insert = this.env.contacts[id] + this.env.recipients_delimiter;
      trigger = true;
    }
@@ -3640,7 +3629,7 @@
    // get string from current cursor pos to last comma
    var cpos = this.get_caret_pos(this.ksearch_input),
      p = inp_value.lastIndexOf(',', cpos-1),
      p = inp_value.lastIndexOf(this.env.recipients_separator, cpos-1),
      q = inp_value.substring(p+1, cpos),
      min = this.env.autocomplete_min_length,
      ac = this.ksearch_data;
@@ -4115,16 +4104,16 @@
  // add row to contacts list
  this.add_contact_row = function(cid, cols, select)
  {
    if (!this.gui_objects.contactslist || !this.gui_objects.contactslist.tBodies[0])
    if (!this.gui_objects.contactslist)
      return false;
    var c, tbody = this.gui_objects.contactslist.tBodies[0],
    var c, list = this.contact_list,
      row = document.createElement('tr');
    row.id = 'rcmrow'+String(cid).replace(this.identifier_expr, '_');
    row.className = 'contact';
    if (this.contact_list.in_selection(cid))
    if (list.in_selection(cid))
      row.className += ' selected';
    // add each submitted col
@@ -4135,9 +4124,9 @@
      row.appendChild(col);
    }
    this.contact_list.insert_row(row);
    list.insert_row(row);
    this.enable_command('export', (this.contact_list.rowcount > 0));
    this.enable_command('export', list.rowcount > 0);
  };
  this.init_contact_form = function()