alecpl
2009-06-04 f042be35ae853d97332596c9cd4c34cff61dde63
program/js/app.js
@@ -150,6 +150,9 @@
    // enable general commands
    this.enable_command('logout', 'mail', 'addressbook', 'settings', true);
    
    if (this.env.permaurl)
      this.enable_command('permaurl', true);
    switch (this.task)
      {
      case 'mail':
@@ -161,8 +164,8 @@
          this.message_list.addEventListener('keypress', function(o){ p.msglist_keypress(o); });
          this.message_list.addEventListener('select', function(o){ p.msglist_select(o); });
          this.message_list.addEventListener('dragstart', function(o){ p.drag_start(o); });
          this.message_list.addEventListener('dragmove', function(o, e){ p.drag_move(e); });
          this.message_list.addEventListener('dragend', function(o, e){ p.drag_end(e); });
          this.message_list.addEventListener('dragmove', function(e){ p.drag_move(e); });
          this.message_list.addEventListener('dragend', function(e){ p.drag_end(e); });
          document.onmouseup = function(e){ return p.doc_mouse_up(e); };
          this.message_list.init();
@@ -277,8 +280,8 @@
          this.contact_list.addEventListener('keypress', function(o){ p.contactlist_keypress(o); });
          this.contact_list.addEventListener('select', function(o){ p.contactlist_select(o); });
          this.contact_list.addEventListener('dragstart', function(o){ p.drag_start(o); });
          this.contact_list.addEventListener('dragmove', function(o, e){ p.drag_move(e); });
          this.contact_list.addEventListener('dragend', function(o, e){ p.drag_end(e); });
          this.contact_list.addEventListener('dragmove', function(e){ p.drag_move(e); });
          this.contact_list.addEventListener('dragend', function(e){ p.drag_end(e); });
          this.contact_list.init();
          if (this.env.cid)
@@ -483,7 +486,7 @@
  this.init_address_input_events = function(obj)
    {
    var handler = function(e){ return ref.ksearch_keypress(e,this); };
    obj.bind((bw.safari ? 'keydown' : 'keypress'), handler);
    obj.bind((bw.safari || bw.ie ? 'keydown' : 'keypress'), handler);
    obj.attr('autocomplete', 'off');
    };
@@ -559,14 +562,21 @@
        this.switch_task(command);
        break;
      case 'permaurl':
        if (obj && obj.href && obj.target)
          return true;
        else if (this.env.permaurl)
          parent.location.href = this.env.permaurl;
        break;
      case 'open':
   var uid;
        var uid;
        if (uid = this.get_single_uid())
     {
     obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid;
     return true;
          }
   break;
        {
          obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid;
          return true;
        }
        break;
      // misc list commands
      case 'list':
@@ -816,7 +826,10 @@
        break;
        
      case 'select-all':
        this.message_list.select_all(props);
        if (props == 'invert')
          this.message_list.invert_selection();
   else
          this.message_list.select_all(props);
        break;
      case 'select-none':
@@ -1787,7 +1800,7 @@
      this.show_contentframe(false);
    // Hide message command buttons until a message is selected
    this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', false);
    this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'viewsource', 'download', false);
    this._with_selected_messages('moveto', lock, add_url, (this.env.flag_for_deletion ? false : true));
    };
@@ -1799,7 +1812,7 @@
    // exit if no mailbox specified or if selection is empty
    if (!this.env.uid && !selection.length)
        return;
      return;
    // if there is a trash mailbox defined and we're not currently in it:
    if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() != String(this.env.trash_mailbox).toLowerCase())
@@ -1820,8 +1833,8 @@
    else if (!this.env.trash_mailbox && this.env.flag_for_deletion)
      {
      this.mark_message('delete');
      if(this.env.action=="show")
        this.command('nextmessage','',this);
      if (this.env.action == 'show')
        this.command('nextmessage', '', this);
      else if (selection.length == 1)
        this.message_list.select_next();
      }
@@ -1874,6 +1887,9 @@
    // also send search request to get the right messages 
    if (this.env.search_request) 
      add_url += '&_search='+this.env.search_request;
    if (this.env.next_uid)
      add_url += '&_next_uid='+this.env.next_uid;
    // send request to server
    this.http_post(action, '_uid='+a_uids.join(',')+'&_mbox='+urlencode(this.env.mailbox)+add_url, lock);
@@ -3907,6 +3923,12 @@
      console.log(response.exec);
      eval(response.exec);
    }
    // execute callback functions of plugins
    if (response.callbacks && response.callbacks.length) {
      for (var i=0; i < response.callbacks.length; i++)
        this.triggerEvent(response.callbacks[i][0], response.callbacks[i][1]);
    }
 
    // process the response data according to the sent action
    switch (response.action) {
@@ -3919,9 +3941,10 @@
        }
      
      case 'moveto':
        if (this.env.action == 'show')
          this.command('list');
        else if (this.message_list)
        if (this.env.action == 'show') {
     // re-enable commands on move/delete error
     this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'viewsource', 'download', true);
        } else if (this.message_list)
          this.message_list.init();
        break;
        
@@ -3932,8 +3955,9 @@
          if (this.env.contentframe)
            this.show_contentframe(false);
          // disable commands useless when mailbox is empty
          this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'mark', 'viewsource',
            'print', 'load-attachment', 'purge', 'expunge', 'select-all', 'select-none', 'sort', false);
          this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete',
       'mark', 'viewsource', 'open', 'download', 'print', 'load-attachment',
       'purge', 'expunge', 'select-all', 'select-none', 'sort', false);
        }
        break;