svncommit
2006-11-21 e901f948f25db35a2639130a4d95df34dba58db2
program/js/app.js
@@ -141,9 +141,15 @@
          {
          this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'viewsource', 'print', 'load-attachment', true);
          if (this.env.next_uid)
            {
            this.enable_command('nextmessage', true);
            this.enable_command('lastmessage', true);
            }
          if (this.env.prev_uid)
            {
            this.enable_command('previousmessage', true);
            this.enable_command('firstmessage', true);
            }
          }
        if (this.env.action=='show' && this.env.blockedobjects)
@@ -478,8 +484,16 @@
        this.list_page('next');
        break;
      case 'lastpage':
        this.list_page('last');
        break;
      case 'previouspage':
        this.list_page('prev');
        break;
      case 'firstpage':
        this.list_page('first');
        break;
      case 'expunge':
@@ -656,9 +670,19 @@
          this.show_message(this.env.next_uid);
        break;
     case 'lastmessage':
        if (this.env.last_uid)
          this.show_message(this.env.last_uid);
        break;
      case 'previousmessage':
        if (this.env.prev_uid)
          this.show_message(this.env.prev_uid);
        break;
      case 'firstmessage':
        if (this.env.first_uid)
          this.show_message(this.env.first_uid);
        break;
      
      case 'checkmail':
@@ -1095,8 +1119,12 @@
    {
    if (page=='next')
      page = this.env.current_page+1;
    if (page=='last')
      page = this.env.pagecount;
    if (page=='prev' && this.env.current_page>1)
      page = this.env.current_page-1;
    if (page=='first' && this.env.current_page>1)
      page = 1;
      
    if (page > 0 && page <= this.env.pagecount)
      {
@@ -1232,17 +1260,20 @@
  // move selected messages to the specified mailbox
  this.move_messages = function(mbox)
    {
    // exit if no mailbox specified or if selection is empty
    var selection = this.message_list.get_selection();
    if (!mbox || !(selection.length || this.env.uid) || mbox==this.env.mailbox)
      return;
    // exit if current or no mailbox specified or if selection is empty
    if (!mbox || !this.env.uid || mbox==this.env.mailbox)
      {
      if (!this.message_list || !this.message_list.get_selection().length)
        return;
      }
    var a_uids = new Array();
    if (this.env.uid)
      a_uids[a_uids.length] = this.env.uid;
    else
      {
      var selection = this.message_list.get_selection();
      var id;
      for (var n=0; n<selection.length; n++)
        {
@@ -1270,16 +1301,19 @@
  this.permanently_remove_messages = function()
    {
    // exit if no mailbox specified or if selection is empty
    var selection = this.message_list.get_selection();
    if (!(selection.length || this.env.uid))
      return;
    if (!this.env.uid)
      {
      if (!this.message_list || !this.message_list.get_selection().length)
        return;
      }
    var a_uids = new Array();
    if (this.env.uid)
      a_uids[a_uids.length] = this.env.uid;
    else
      {
      var selection = this.message_list.get_selection();
      var id;
      for (var n=0; n<selection.length; n++)
        {
@@ -1300,13 +1334,22 @@
  this.delete_messages = function()
    {
    // exit if no mailbox specified or if selection is empty
    var selection = this.message_list.get_selection();
    if (!(selection.length || this.env.uid))
      return;
    if (!this.env.uid)
      {
      if (!this.message_list || !this.message_list.get_selection().length)
        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())
      this.move_messages(this.env.trash_mailbox);
      // if shift was pressed delete it immediately
      if (this.message_list.shiftkey)
        {
        if (confirm(this.get_label('deletemessagesconfirm')))
          this.permanently_remove_messages();
        }
      else
        this.move_messages(this.env.trash_mailbox);
    // if there is a trash mailbox defined but we *are* in it:
    else if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() == String(this.env.trash_mailbox).toLowerCase())
      this.permanently_remove_messages();
@@ -2626,7 +2669,9 @@
  this.set_page_buttons = function()
    {
    this.enable_command('nextpage', (this.env.pagecount > this.env.current_page));
    this.enable_command('lastpage', (this.env.pagecount > this.env.current_page));
    this.enable_command('previouspage', (this.env.current_page > 1));
    this.enable_command('firstpage', (this.env.current_page > 1));
    }
@@ -3110,7 +3155,7 @@
      case 'list':
        if (this.env.messagecount)
          this.enable_command('purge', (this.env.mailbox==this.env.trash_mailbox));
          this.enable_command('purge', (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox));
      case 'expunge':
        this.enable_command('select-all', 'select-none', 'expunge', this.env.messagecount ? true : false);