Enable subscription option for already subscribed "virtual" folders,

small code improvements
pull/32/merge
Aleksander Machniak 12 years ago
parent a370a702ca
commit ab08544520

@ -299,8 +299,13 @@ function rcube_subscription_form($attrib)
$disabled = (($protected && $subscribed) || $noselect);
// Below we will disable subscription option for "virtual" folders
// according to namespaces, but only if they aren't already subscribed.
// User should be able to unsubscribe from the folder
// even if it doesn't exists or is not accessible (OTRS:1000059)
if (!$subscribed && !$disabled && !empty($namespace) && $folder['virtual']) {
// check if the folder is a namespace prefix, then disable subscription option on it
if (!$disabled && $folder['virtual'] && $folder['level'] == 0 && !empty($namespace)) {
if (!$disabled && $folder['level'] == 0) {
$fname = $folder['id'] . $delimiter;
foreach ($namespace as $ns) {
if (is_array($ns)) {
@ -314,9 +319,7 @@ function rcube_subscription_form($attrib)
}
}
// check if the folder is an other users virtual-root folder, then disable subscription option on it
if (!$disabled && $folder['virtual'] && $folder['level'] == 1
&& !empty($namespace) && !empty($namespace['other'])
) {
if (!$disabled && $folder['level'] == 1 && !empty($namespace['other'])) {
$parts = explode($delimiter, $folder['id']);
$fname = $parts[0] . $delimiter;
foreach ($namespace['other'] as $item) {
@ -327,7 +330,7 @@ function rcube_subscription_form($attrib)
}
}
// check if the folder is shared, then disable subscription option on it (if not subscribed already)
if (!$disabled && !$subscribed && $folder['virtual'] && !empty($namespace)) {
if (!$disabled) {
$tmp_ns = array_merge((array)$namespace['other'], (array)$namespace['shared']);
foreach ($tmp_ns as $item) {
if (strpos($folder['id'], $item[0]) === 0) {
@ -336,6 +339,7 @@ function rcube_subscription_form($attrib)
}
}
}
}
$table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes),
'foldername' => $folder['id']));

Loading…
Cancel
Save