Merge branch 'master' of ssh://git.kolabsys.com/git/roundcube
This commit is contained in:
commit
7e3a88996f
4 changed files with 49 additions and 16 deletions
|
@ -207,8 +207,15 @@ class kolab_driver extends calendar_driver
|
|||
$parent = $prop['parent']; // UTF7
|
||||
$delimiter = $_SESSION['imap_delimiter'];
|
||||
|
||||
if (strlen($oldfolder)) {
|
||||
$this->rc->imap_connect();
|
||||
$options = $this->rc->imap->mailbox_info($oldfolder);
|
||||
}
|
||||
|
||||
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||
}
|
||||
// sanity checks (from steps/settings/save_folder.inc)
|
||||
if (!strlen($folder)) {
|
||||
else if (!strlen($folder)) {
|
||||
return false;
|
||||
}
|
||||
else if (strlen($folder) > 128) {
|
||||
|
@ -223,9 +230,7 @@ class kolab_driver extends calendar_driver
|
|||
}
|
||||
}
|
||||
|
||||
// @TODO: $options
|
||||
$options = array();
|
||||
if ($options['protected'] || $options['norename']) {
|
||||
if (!empty($options) && ($options['protected'] || $options['norename'])) {
|
||||
$folder = $oldfolder;
|
||||
}
|
||||
else if (strlen($parent)) {
|
||||
|
@ -909,6 +914,13 @@ class kolab_driver extends calendar_driver
|
|||
'name' => $this->rc->gettext('properties'),
|
||||
);
|
||||
|
||||
// Disable folder name input
|
||||
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||
$input_name = new html_hiddenfield(array('name' => 'name', 'id' => 'calendar-name'));
|
||||
$formfields['name']['value'] = Q(str_replace($delimiter, ' » ', rcube_kolab::object_name($folder)))
|
||||
. $input_name->show($folder);
|
||||
}
|
||||
|
||||
// calendar name (default field)
|
||||
$form['props']['fieldsets']['location'] = array(
|
||||
'name' => $this->rc->gettext('location'),
|
||||
|
@ -917,7 +929,7 @@ class kolab_driver extends calendar_driver
|
|||
),
|
||||
);
|
||||
|
||||
if (!empty($options) && ($options['norename'] || $options['namespace'] != 'personal')) {
|
||||
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||
// prevent user from moving folder
|
||||
$hidden_fields[] = array('name' => 'parent', 'value' => $path_imap);
|
||||
}
|
||||
|
|
|
@ -420,8 +420,15 @@ class kolab_addressbook extends rcube_plugin
|
|||
$path = trim(get_input_value('_parent', RCUBE_INPUT_POST, true)); // UTF7-IMAP
|
||||
$delimiter = $_SESSION['imap_delimiter'];
|
||||
|
||||
if (strlen($oldfolder)) {
|
||||
$this->rc->imap_connect();
|
||||
$options = $this->rc->imap->mailbox_info($oldfolder);
|
||||
}
|
||||
|
||||
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||
}
|
||||
// sanity checks (from steps/settings/save_folder.inc)
|
||||
if (!strlen($folder)) {
|
||||
else if (!strlen($folder)) {
|
||||
$error = rcube_label('cannotbeempty');
|
||||
}
|
||||
else if (strlen($folder) > 128) {
|
||||
|
@ -438,9 +445,7 @@ class kolab_addressbook extends rcube_plugin
|
|||
}
|
||||
|
||||
if (!$error) {
|
||||
// @TODO: $options
|
||||
$options = array();
|
||||
if ($options['protected'] || $options['norename']) {
|
||||
if (!empty($options) && ($options['protected'] || $options['norename'])) {
|
||||
$folder = $oldfolder;
|
||||
}
|
||||
else if (strlen($path)) {
|
||||
|
|
|
@ -144,8 +144,13 @@ class kolab_addressbook_ui
|
|||
'name' => $this->rc->gettext('properties'),
|
||||
);
|
||||
|
||||
$foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30));
|
||||
$foldername = $foldername->show($name);
|
||||
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||
$foldername = Q(str_replace($delimiter, ' » ', rcube_kolab::object_name($folder)));
|
||||
}
|
||||
else {
|
||||
$foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30));
|
||||
$foldername = $foldername->show($name);
|
||||
}
|
||||
|
||||
$form['props']['fieldsets']['location'] = array(
|
||||
'name' => $this->rc->gettext('location'),
|
||||
|
@ -157,7 +162,7 @@ class kolab_addressbook_ui
|
|||
),
|
||||
);
|
||||
|
||||
if (!empty($options) && ($options['norename'] || $options['namespace'] != 'personal')) {
|
||||
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||
// prevent user from moving folder
|
||||
$hidden_fields[] = array('name' => '_parent', 'value' => $path_imap);
|
||||
}
|
||||
|
|
|
@ -348,8 +348,14 @@ class rcube_kolab
|
|||
$delim = $ns[1];
|
||||
// get username
|
||||
$pos = strpos($folder, $delim);
|
||||
$prefix = '('.substr($folder, 0, $pos).') ';
|
||||
$folder = substr($folder, $pos+1);
|
||||
if ($pos) {
|
||||
$prefix = '('.substr($folder, 0, $pos).') ';
|
||||
$folder = substr($folder, $pos+1);
|
||||
}
|
||||
else {
|
||||
$prefix = '('.$folder.')';
|
||||
$folder = '';
|
||||
}
|
||||
$found = true;
|
||||
$folder_ns = 'other';
|
||||
break;
|
||||
|
@ -427,12 +433,12 @@ class rcube_kolab
|
|||
// get all folders of specified type
|
||||
$folders = self::get_folders($type);
|
||||
|
||||
$delim = $_SESSION['delimiter'];
|
||||
$delim = $_SESSION['imap_delimiter'];
|
||||
$names = array();
|
||||
$len = strlen($current);
|
||||
|
||||
if ($len && ($rpos = strrpos($current, $delim))) {
|
||||
$parent = substr($current, 0, $rpos-1);
|
||||
$parent = substr($current, 0, $rpos);
|
||||
$p_len = strlen($parent);
|
||||
}
|
||||
|
||||
|
@ -457,6 +463,11 @@ class rcube_kolab
|
|||
$names[$name] = rcube_charset_convert($name, 'UTF7-IMAP');
|
||||
}
|
||||
|
||||
// Make sure parent folder is listed (might be skipped e.g. if it's namespace root)
|
||||
if ($p_len && !isset($names[$parent])) {
|
||||
$names[$parent] = rcube_charset_convert($parent, 'UTF7-IMAP');
|
||||
}
|
||||
|
||||
// Sort folders list
|
||||
asort($names, SORT_LOCALE_STRING);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue