When a parent folder is deleted, delete the children immediately, instead of one-by-one as r833 did.
| | |
| | | else if (is_string($mbox_name) && strlen($mbox_name)) |
| | | $a_mboxes = explode(',', $mbox_name); |
| | | |
| | | $all_mboxes = iil_C_ListMailboxes($this->conn, $this->_mod_mailbox($root), '*'); |
| | | |
| | | if (is_array($a_mboxes)) |
| | | foreach ($a_mboxes as $mbox_name) |
| | | { |
| | |
| | | $result = iil_C_DeleteFolder($this->conn, $mailbox); |
| | | if ($result>=0) |
| | | $deleted = TRUE; |
| | | |
| | | foreach ($all_mboxes as $c_mbox) |
| | | if (preg_match('/^'.preg_quote($mailbox.$this->delimiter).'/', $c_mbox)) |
| | | { |
| | | iil_C_UnSubscribe($this->conn, $c_mbox); |
| | | $result = iil_C_DeleteFolder($this->conn, $c_mbox); |
| | | if ($result>=0) |
| | | $deleted = TRUE; |
| | | } |
| | | } |
| | | |
| | | // clear mailboxlist cache |
| | |
| | | // delete an existing IMAP mailbox |
| | | else if ($_action=='delete-folder') |
| | | { |
| | | $a_mboxes = array_merge($IMAP->list_mailboxes(), $IMAP->list_unsubscribed()); |
| | | $delimiter = $IMAP->get_hierarchy_delimiter(); |
| | | |
| | | if ($mboxes = get_input_value('_mboxes', RCUBE_INPUT_POST)) |
| | | $deleted = $IMAP->delete_mailbox(array($mboxes)); |
| | | |
| | | if ($OUTPUT->ajax_call && $deleted) |
| | | { |
| | | $OUTPUT->command('remove_folder_row', get_input_value('_mboxes', RCUBE_INPUT_POST)); |
| | | foreach ($a_mboxes as $mbox) |
| | | if (preg_match('/^'.preg_quote(get_input_value('_mboxes', RCUBE_INPUT_POST).$delimiter).'/', $mbox)) |
| | | $OUTPUT->command('remove_folder_row', $mbox); |
| | | $OUTPUT->show_message('folderdeleted', 'confirmation'); |
| | | $OUTPUT->send(); |
| | | } |