Changeset 868 in subversion


Ignore:
Timestamp:
Oct 15, 2007 6:05:45 AM (6 years ago)
Author:
robin
Message:

After renaming/moving a folder, rename/move the children as well.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/steps/settings/manage_folders.inc

    r866 r868  
    7272else if ($_action=='rename-folder') 
    7373  { 
     74  $a_mboxes = array_merge($IMAP->list_mailboxes(), $IMAP->list_unsubscribed()); 
     75  $delimiter = $IMAP->get_hierarchy_delimiter(); 
     76 
    7477  if (!empty($_POST['_folder_oldname']) && !empty($_POST['_folder_newname'])) 
    7578    $rename = $IMAP->rename_mailbox(($oldname = get_input_value('_folder_oldname', RCUBE_INPUT_POST)), trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, FALSE, 'UTF-7'))); 
     
    8285    $display_rename = str_repeat('    ', $level) . rcube_charset_convert($foldersplit[$level], 'UTF-7'); 
    8386    $OUTPUT->command('replace_folder_row', $oldname, $rename, $display_rename); 
     87    foreach ($a_mboxes as $mbox) 
     88      if (preg_match('/^'.preg_quote($oldname.$delimiter).'/', $mbox)) 
     89        { 
     90        $c_rename = preg_replace('/^'.preg_quote($oldname).'/', $rename, $mbox); 
     91        $foldersplit = explode($delimiter, $c_rename); 
     92        $level = count($foldersplit) - 1; 
     93        $display_rename = str_repeat('    ', $level) . rcube_charset_convert($foldersplit[$level], 'UTF-7'); 
     94        $OUTPUT->command('replace_folder_row', $mbox, $c_rename, $display_rename); 
     95        } 
    8496    $OUTPUT->command('reset_folder_rename'); 
    8597    $OUTPUT->send(); 
Note: See TracChangeset for help on using the changeset viewer.