summaryrefslogtreecommitdiff
path: root/program/steps/settings/edit_folder.inc
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-05-05 12:46:54 +0000
committeralecpl <alec@alec.pl>2011-05-05 12:46:54 +0000
commitd08333ea578e3b6c6ab42bed05f808a2b7b93cf1 (patch)
tree58aa053d41963c5f452b614497d06aaf73c5a76a /program/steps/settings/edit_folder.inc
parent4764079c6af092a6dfa18306601e1b33482fb756 (diff)
- Fix problems with subfolders of INBOX folder on some IMAP servers (#1487725)
- Fix handling of folders that doesn't belong to any namespace (#1487637)
Diffstat (limited to 'program/steps/settings/edit_folder.inc')
-rw-r--r--program/steps/settings/edit_folder.inc20
1 files changed, 17 insertions, 3 deletions
diff --git a/program/steps/settings/edit_folder.inc b/program/steps/settings/edit_folder.inc
index 34dc064b5..c57ec69d7 100644
--- a/program/steps/settings/edit_folder.inc
+++ b/program/steps/settings/edit_folder.inc
@@ -54,6 +54,20 @@ function rcube_folder_form($attrib)
else {
$options = array();
$path = $parent_imap;
+
+ // allow creating subfolders of INBOX folder
+ if ($path == 'INBOX') {
+ $path = $RCMAIL->imap->mod_mailbox($path, 'in');
+ }
+ }
+
+ // remove personal namespace prefix
+ if (strlen($path)) {
+ $path_id = $path;
+ $path = $RCMAIL->imap->mod_mailbox($path.$delimiter);
+ if ($path[strlen($path)-1] == $delimiter) {
+ $path = substr($path, 0, -1);
+ }
}
$form = array();
@@ -93,15 +107,15 @@ function rcube_folder_form($attrib)
);
if (strlen($path)) {
- if ($options['norename'] || $options['namespace'] != 'personal') {
+ if (!empty($options) && ($options['norename'] || $options['namespace'] != 'personal')) {
// prevent user from moving folder
$hidden_path = new html_hiddenfield(array('name' => '_parent', 'value' => $path));
$form['props']['fieldsets']['location']['content']['name']['value'] .= $hidden_path->show();
}
else {
$radio1 = new html_radiobutton(array('name' => '_parent', 'value' => ''));
- $radio2 = new html_radiobutton(array('name' => '_parent', 'value' => $path));
- $selected = isset($_POST['_parent']) ? $_POST['_parent'] : $path;
+ $radio2 = new html_radiobutton(array('name' => '_parent', 'value' => $path_id));
+ $selected = isset($_POST['_parent']) ? $_POST['_parent'] : $path_id;
$html_path = str_replace($delimiter, ' &raquo; ', rcmail_localize_folderpath($path));