alecpl
2008-04-07 d41d67add6d2bc226544148730928ca31a2c4313
- better commands enabling/disabling after get/post response, fixes:
when delete last (selected) message in mailbox content in preview
pane should be cleaned, when delete last (selected) message in mailbox
sellect-all, purge and others commands should be disabled,
and probably other related bugs


2 files modified
25 ■■■■ changed files
program/js/app.js 24 ●●●● patch | view | raw | blame | history
program/steps/mail/move_del.inc 1 ●●●● patch | view | raw | blame | history
program/js/app.js
@@ -3453,25 +3453,37 @@
    // process the response data according to the sent action
    switch (request_obj.__action)
      {
      case 'delete':
      case 'moveto':
        if (this.env.action=='show')
          this.command('list');
        else if (this.message_list)
          this.message_list.init();
        break;
      case 'purge':
      case 'expunge':
    if (!this.env.messagecount)
          {
        // clear preview pane content
        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);
      }
    break;
      case 'list':
    this.enable_command('purge', (this.env.messagecount && (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox)));
    this.msglist_select(this.message_list);
      case 'check-recent':
      case 'getunread':
    this.enable_command('sort', (this.env.messagecount > 0));
    this.enable_command('show', 'expunge', 'select-all', 'select-none', 'sort', (this.env.messagecount > 0));
    this.enable_command('purge', (this.env.messagecount && (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);
        break;
    break;
      }
program/steps/mail/move_del.inc
@@ -80,6 +80,7 @@
// update message count display
$OUTPUT->set_env('pagecount', $pages);
$OUTPUT->set_env('messagecount', $msg_count);
$OUTPUT->set_env('current_page', $IMAP->list_page);
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));