From 97a656643866f16289264954be961aa3f314ac20 Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Mon, 15 Oct 2007 05:17:08 -0400
Subject: [PATCH] When a parent folder is deleted, delete the children immediately, instead of one-by-one as r833 did.

---
 program/steps/settings/manage_folders.inc |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/program/steps/settings/manage_folders.inc b/program/steps/settings/manage_folders.inc
index 344e404..4d5882f 100644
--- a/program/steps/settings/manage_folders.inc
+++ b/program/steps/settings/manage_folders.inc
@@ -97,12 +97,18 @@
 // 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();
     }

--
Gitblit v1.9.1