diff --git a/app/controllers/file.php b/app/controllers/file.php index cd60699c2ecbc9b6cab885df3a0e6bcabee44aeb..83152e3cf8b35d6f3b4611c85b07519e35a0b6b8 100644 --- a/app/controllers/file.php +++ b/app/controllers/file.php @@ -1973,11 +1973,6 @@ class FileController extends AuthenticatedController if (!$folder || !$folder->isEditable($GLOBALS['user']->id)) { throw new AccessDeniedException(); } - $parent_folder = $folder->getParent(); - $folder_types = FileManager::getAvailableFolderTypes( - $parent_folder ? $parent_folder->range_id : null, - $GLOBALS['user']->id - ); $this->name = Request::get('name', $folder->name); $this->description = Request::get('description', $folder->description); @@ -1986,13 +1981,16 @@ class FileController extends AuthenticatedController $this->folder_types = []; - if (!is_a($folder, 'VirtualFolderType') && $parent_folder) { + if (!is_a($folder, 'VirtualFolderType') && !is_a($folder, 'RootFolder')) { + $folder_types = FileManager::getAvailableFolderTypes( + $folder->range_id, + $GLOBALS['user']->id + ); foreach ($folder_types as $folder_type) { $folder_type_instance = new $folder_type( [ - 'range_id' => $parent_folder->range_id, - 'range_type' => $parent_folder->range_type, - 'parent_id' => $parent_folder->getId() + 'range_id' => $folder->range_id, + 'range_type' => $folder->range_type ] ); $this->folder_types[] = [ @@ -2002,7 +2000,8 @@ class FileController extends AuthenticatedController 'icon' => $folder_type_instance->getIcon('clickable') ]; } - } elseif (!$parent_folder) { + } else { + //It is a virtual folder or a root folder (folder without parent): $this->folder_types[] = [ 'class' => get_class($folder), 'instance' => $folder,