alecpl
2008-06-24 ddd776b2a3a264777233410e4bb311233fd24d3c
- Allow trash/junk subfolders to be purged (#1485085)


4 files modified
25 ■■■■ changed files
CHANGELOG 4 ●●●● patch | view | raw | blame | history
program/js/app.js 11 ●●●● patch | view | raw | blame | history
program/steps/mail/folders.inc 9 ●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 1 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,10 @@
CHANGELOG RoundCube Webmail
---------------------------
2008/06/24 (alec)
----------
- Allow trash/junk subfolders to be purged (#1485085)
2008/06/20 (alec)
----------
- Added Azerbaijani translation
program/js/app.js
@@ -203,7 +203,10 @@
        if (this.env.messagecount)
          this.enable_command('select-all', 'select-none', 'expunge', true);
        if (this.env.messagecount && (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox))
        if (this.env.messagecount
        && (this.env.mailbox == this.env.trash_mailbox || this.env.mailbox == this.env.junk_mailbox
        || this.env.mailbox.match('^' + RegExp.escape(this.env.trash_mailbox) + RegExp.escape(this.env.delimiter))
        || this.env.mailbox.match('^' + RegExp.escape(this.env.junk_mailbox) + RegExp.escape(this.env.delimiter))))
          this.enable_command('purge', true);
        this.set_page_buttons();
@@ -3559,7 +3562,11 @@
      case 'check-recent':
      case 'getunread':
    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)));
    var mailboxtest = (this.env.mailbox == this.env.trash_mailbox || this.env.mailbox == this.env.junk_mailbox
        || this.env.mailbox.match('^' + RegExp.escape(this.env.trash_mailbox) + RegExp.escape(this.env.delimiter))
        || this.env.mailbox.match('^' + RegExp.escape(this.env.junk_mailbox) + RegExp.escape(this.env.delimiter))) ? true : false;
    this.enable_command('purge', (this.env.messagecount && mailboxtest));
    break;
program/steps/mail/folders.inc
@@ -39,8 +39,13 @@
// clear mailbox
else if ($RCMAIL->action=='purge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST)))
{
  // we should only be purging trash and junk
  if($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'])
  $delimiter = $IMAP->get_hierarchy_delimiter();
  $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/';
  $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/';
  // we should only be purging trash and junk (or their subfolders)
  if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox']
    || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox))
  {
    $success = $IMAP->clear_mailbox($mbox);
  
program/steps/mail/func.inc
@@ -57,6 +57,7 @@
// set current mailbox in client environment
$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
$OUTPUT->set_env('quota', $IMAP->get_capability('quota'));
$OUTPUT->set_env('delimiter', $IMAP->get_hierarchy_delimiter());
if ($CONFIG['trash_mbox'])
  $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);