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)
{
$storage = $this->rc->get_storage();
$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);
return explode('.', (string)kolab_storage::folder_type($folder));
}
/**
@ -380,7 +373,7 @@ class kolab_folders extends rcube_plugin
$namespace = $storage->get_namespace();
// 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));
foreach ($folderdata as $folder => $data) {
@ -402,14 +395,6 @@ class kolab_folders extends rcube_plugin
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
*

View file

@ -595,7 +595,14 @@ class kolab_storage
*/
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;
}