Cut off folder type suffix from shared annotation values (#1105); small code cleanup to reduce redundancy

This commit is contained in:
Thomas Bruederli 2012-10-17 12:12:45 +02:00
parent fad8e68fe7
commit d356302759
2 changed files with 10 additions and 18 deletions

View file

@ -337,14 +337,7 @@ class kolab_folders extends rcube_plugin
*/ */
function get_folder_type($folder) function get_folder_type($folder)
{ {
$storage = $this->rc->get_storage(); return explode('.', (string)kolab_storage::folder_type($folder));
$folderdata = $storage->get_metadata($folder, array(kolab_storage::CTYPE_KEY_PRIVATE, kolab_storage::CTYPE_KEY));
if (!($ctype = $folderdata[$folder][kolab_storage::CTYPE_KEY_PRIVATE])) {
$ctype = $folderdata[$folder][kolab_storage::CTYPE_KEY];
}
return explode('.', $ctype);
} }
/** /**
@ -380,7 +373,7 @@ class kolab_folders extends rcube_plugin
$namespace = $storage->get_namespace(); $namespace = $storage->get_namespace();
// get all folders of specified type // get all folders of specified type
$folderdata = array_map(array($this, 'folder_select_metadata'), $folderdata); $folderdata = array_map(array('kolab_storage', 'folder_select_metadata'), $folderdata);
$folderdata = array_intersect($folderdata, array($type)); $folderdata = array_intersect($folderdata, array($type));
foreach ($folderdata as $folder => $data) { foreach ($folderdata as $folder => $data) {
@ -402,14 +395,6 @@ class kolab_folders extends rcube_plugin
return null; return null;
} }
/**
* Callback for array_map to select the correct annotation value
*/
private function folder_select_metadata($types)
{
return $types[kolab_storage::CTYPE_KEY_PRIVATE] ?: $types[kolab_storage::CTYPE_KEY];
}
/** /**
* Returns CSS class name for specified folder type * Returns CSS class name for specified folder type
* *

View file

@ -595,7 +595,14 @@ class kolab_storage
*/ */
static function folder_select_metadata($types) static function folder_select_metadata($types)
{ {
return $types[self::CTYPE_KEY_PRIVATE] ?: $types[self::CTYPE_KEY]; if (!empty($types[self::CTYPE_KEY_PRIVATE])) {
return $types[self::CTYPE_KEY_PRIVATE];
}
else if (!empty($types[self::CTYPE_KEY])) {
list($ctype, $suffix) = explode('.', $types[self::CTYPE_KEY]);
return $ctype;
}
return null;
} }