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
|
$parent = $prop['parent']; // UTF7
|
||||||
$delimiter = $_SESSION['imap_delimiter'];
|
$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)
|
// sanity checks (from steps/settings/save_folder.inc)
|
||||||
if (!strlen($folder)) {
|
else if (!strlen($folder)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (strlen($folder) > 128) {
|
else if (strlen($folder) > 128) {
|
||||||
|
@ -223,9 +230,7 @@ class kolab_driver extends calendar_driver
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @TODO: $options
|
if (!empty($options) && ($options['protected'] || $options['norename'])) {
|
||||||
$options = array();
|
|
||||||
if ($options['protected'] || $options['norename']) {
|
|
||||||
$folder = $oldfolder;
|
$folder = $oldfolder;
|
||||||
}
|
}
|
||||||
else if (strlen($parent)) {
|
else if (strlen($parent)) {
|
||||||
|
@ -909,6 +914,13 @@ class kolab_driver extends calendar_driver
|
||||||
'name' => $this->rc->gettext('properties'),
|
'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)
|
// calendar name (default field)
|
||||||
$form['props']['fieldsets']['location'] = array(
|
$form['props']['fieldsets']['location'] = array(
|
||||||
'name' => $this->rc->gettext('location'),
|
'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
|
// prevent user from moving folder
|
||||||
$hidden_fields[] = array('name' => 'parent', 'value' => $path_imap);
|
$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
|
$path = trim(get_input_value('_parent', RCUBE_INPUT_POST, true)); // UTF7-IMAP
|
||||||
$delimiter = $_SESSION['imap_delimiter'];
|
$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)
|
// sanity checks (from steps/settings/save_folder.inc)
|
||||||
if (!strlen($folder)) {
|
else if (!strlen($folder)) {
|
||||||
$error = rcube_label('cannotbeempty');
|
$error = rcube_label('cannotbeempty');
|
||||||
}
|
}
|
||||||
else if (strlen($folder) > 128) {
|
else if (strlen($folder) > 128) {
|
||||||
|
@ -438,9 +445,7 @@ class kolab_addressbook extends rcube_plugin
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
// @TODO: $options
|
if (!empty($options) && ($options['protected'] || $options['norename'])) {
|
||||||
$options = array();
|
|
||||||
if ($options['protected'] || $options['norename']) {
|
|
||||||
$folder = $oldfolder;
|
$folder = $oldfolder;
|
||||||
}
|
}
|
||||||
else if (strlen($path)) {
|
else if (strlen($path)) {
|
||||||
|
|
|
@ -144,8 +144,13 @@ class kolab_addressbook_ui
|
||||||
'name' => $this->rc->gettext('properties'),
|
'name' => $this->rc->gettext('properties'),
|
||||||
);
|
);
|
||||||
|
|
||||||
$foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30));
|
if (!empty($options) && ($options['norename'] || $options['protected'])) {
|
||||||
$foldername = $foldername->show($name);
|
$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(
|
$form['props']['fieldsets']['location'] = array(
|
||||||
'name' => $this->rc->gettext('location'),
|
'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
|
// prevent user from moving folder
|
||||||
$hidden_fields[] = array('name' => '_parent', 'value' => $path_imap);
|
$hidden_fields[] = array('name' => '_parent', 'value' => $path_imap);
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,8 +348,14 @@ class rcube_kolab
|
||||||
$delim = $ns[1];
|
$delim = $ns[1];
|
||||||
// get username
|
// get username
|
||||||
$pos = strpos($folder, $delim);
|
$pos = strpos($folder, $delim);
|
||||||
$prefix = '('.substr($folder, 0, $pos).') ';
|
if ($pos) {
|
||||||
$folder = substr($folder, $pos+1);
|
$prefix = '('.substr($folder, 0, $pos).') ';
|
||||||
|
$folder = substr($folder, $pos+1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$prefix = '('.$folder.')';
|
||||||
|
$folder = '';
|
||||||
|
}
|
||||||
$found = true;
|
$found = true;
|
||||||
$folder_ns = 'other';
|
$folder_ns = 'other';
|
||||||
break;
|
break;
|
||||||
|
@ -427,12 +433,12 @@ class rcube_kolab
|
||||||
// get all folders of specified type
|
// get all folders of specified type
|
||||||
$folders = self::get_folders($type);
|
$folders = self::get_folders($type);
|
||||||
|
|
||||||
$delim = $_SESSION['delimiter'];
|
$delim = $_SESSION['imap_delimiter'];
|
||||||
$names = array();
|
$names = array();
|
||||||
$len = strlen($current);
|
$len = strlen($current);
|
||||||
|
|
||||||
if ($len && ($rpos = strrpos($current, $delim))) {
|
if ($len && ($rpos = strrpos($current, $delim))) {
|
||||||
$parent = substr($current, 0, $rpos-1);
|
$parent = substr($current, 0, $rpos);
|
||||||
$p_len = strlen($parent);
|
$p_len = strlen($parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -457,6 +463,11 @@ class rcube_kolab
|
||||||
$names[$name] = rcube_charset_convert($name, 'UTF7-IMAP');
|
$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
|
// Sort folders list
|
||||||
asort($names, SORT_LOCALE_STRING);
|
asort($names, SORT_LOCALE_STRING);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue