Fixed folder renaming; added confirmation after deleting a folder

release-0.6
thomascube 20 years ago
parent fe79b1bcf8
commit f9c107afbe

@ -6,6 +6,8 @@ CHANGELOG RoundCube Webmail
- Alter links in HTML messages (Bug #1326402)
- Added fallback if host not found in 'mail_domain' array
- Applied patch of Charles to highlight droptargets (Ticket #1473034)
- Fixed folder renaming (Bug #1483914)
- Added confirmation message after deleting a folder
2006/07/25 (thomasb)

@ -1245,28 +1245,29 @@ class rcube_imap
// set a new name to an existing mailbox
function rename_mailbox($mbox_name, $new_name, $subscribe=TRUE)
function rename_mailbox($mbox_name, $new_name)
{
$result = FALSE;
// replace backslashes
$name = preg_replace('/[\\\]+/', '-', $new_name);
// encode mailbox name and reduce it to 100 chars
$name_enc = substr(UTF7EncodeString($new_name), 0, 100);
$name_enc = UTF7EncodeString($new_name);
// reduce mailbox name to 100 chars
$name_enc = substr($name_enc, 0, 100);
// make absolute path
$mailbox = $this->_mod_mailbox($mbox_name);
$abs_name = $this->_mod_mailbox($name_enc);
$a_mailbox_cache = $this->get_cache('mailboxes');
if (strlen($abs_name) && (!is_array($a_mailbox_cache) || !in_array($abs_name, $a_mailbox_cache)))
$result = iil_C_RenameFolder($this->conn, $mbox_name, $abs_name);
// update mailboxlist cache
if ($result && $subscribe)
$this->unsubscribe($mbox_name);
$this->subscribe($name_enc);
if (strlen($abs_name))
$result = iil_C_RenameFolder($this->conn, $mailbox, $abs_name);
// clear cache
if ($result)
{
$this->clear_message_cache($mailbox.'.msg');
$this->clear_cache('mailboxes');
}
return $result ? $name : FALSE;
}

@ -2848,10 +2848,12 @@ function rcube_webmail()
row.cells[3].firstChild.onclick = new Function(this.ref+".command('delete-folder','"+name.replace('\'','\\\'')+"')");
// add new folder to rename-folder list and clear input field
if (!replace && (form = this.gui_objects.editform) && form.elements['_folder_name'])
if (!replace && (form = this.gui_objects.editform))
{
form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
form.elements['_folder_name'].value = '';
if (form.elements['_folder_oldname'])
form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
if (form.elements['_folder_name'])
form.elements['_folder_name'].value = '';
}
};
@ -2909,7 +2911,8 @@ function rcube_webmail()
}
}
form.elements['_folder_newname'].value = '';
if (form && form.elements['_folder_newname'])
form.elements['_folder_newname'].value = '';
};
@ -3151,7 +3154,7 @@ function rcube_webmail()
if (!this.gui_objects.message)
return false;
if (this.message_timer)
clearTimeout(this.message_timer);

@ -102,5 +102,7 @@ $messages['checking'] = 'Prüfe...';
$messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden';
$messages['folderdeleted'] = 'Ordner erfolgreich gelöscht';
?>

@ -104,4 +104,6 @@ $messages['checking'] = 'Prüfe...';
$messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden';
$messages['folderdeleted'] = 'Ordner erfolgreich gelöscht';
?>

@ -90,4 +90,17 @@ $messages['nocontactsreturned'] = 'No contacts were found';
$messages['nosearchname'] = 'Please enter a contact name or email address';
$messages['searchsuccessful'] = '$nr messages found';
$messages['searchnomatch'] = 'Search returned no matches';
$messages['searching'] = 'Searching...';
$messages['checking'] = 'Checking...';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'Folder successfully deleted';
?>

@ -104,5 +104,7 @@ $messages['checking'] = 'Checking...';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'Folder successfully deleted';
?>

@ -67,7 +67,7 @@ else if ($_action=='create-folder')
else if ($_action=='rename-folder')
{
if (!empty($_GET['_folder_oldname']) && !empty($_GET['_folder_newname']))
$rename = $IMAP->rename_mailbox(get_input_value('_folder_oldname', RCUBE_INPUT_GET), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET)), TRUE);
$rename = $IMAP->rename_mailbox(get_input_value('_folder_oldname', RCUBE_INPUT_GET), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET)));
if ($rename && $REMOTE_REQUEST)
{
@ -89,11 +89,15 @@ else if ($_action=='rename-folder')
// delete an existing IMAP mailbox
else if ($_action=='delete-folder')
{
if (strlen($_GET['_mboxes']))
$deleted = $IMAP->delete_mailbox(array($_GET['_mboxes']));
if (!empty($_GET['_mboxes']))
$deleted = $IMAP->delete_mailbox(array(get_input_value('_mboxes', RCUBE_INPUT_GET)));
if ($REMOTE_REQUEST && $deleted)
rcube_remote_response(sprintf("this.remove_folder_row('%s')", rep_specialchars_output($_GET['_mboxes'], 'js')));
{
$commands = sprintf("this.remove_folder_row('%s');\n", rep_specialchars_output(get_input_value('_mboxes', RCUBE_INPUT_GET), 'js'));
$commands .= show_message('folderdeleted', 'confirmation');
rcube_remote_response($commands);
}
else if ($REMOTE_REQUEST)
{
$commands = show_message('errorsaving', 'error');

Loading…
Cancel
Save