diff --git a/app/controllers/file.php b/app/controllers/file.php index 15bca3dbe084517ca15d248e984d913966cfcb0b..06c5ea94386e25cca8d9cd3e3ad3b03058df1824 100644 --- a/app/controllers/file.php +++ b/app/controllers/file.php @@ -737,6 +737,7 @@ class FileController extends AuthenticatedController } $this->copymode = $copymode; $this->fileref_id = $fileref_id; + $this->is_folder = false; if (Request::get("from_plugin")) { if (is_array($fileref_id)) { @@ -756,13 +757,16 @@ class FileController extends AuthenticatedController throw new Trails_Exception(404, _('Plugin existiert nicht.')); } - if (!Request::get("isfolder")) { - $this->file_ref = $plugin->getPreparedFile($file_id); - } else { - $this->parent_folder = $plugin->getFolder($file_id); + $this->file_ref = $plugin->getPreparedFile($file_id); + if (!$this->file_ref) { + //Maybe it is a folder: + $folder = $plugin->getFolder($file_id); + if ($folder instanceof FolderType) { + $this->parent_folder = $folder->getParent(); + $this->is_folder = true; + } } } else { - if (is_array($fileref_id)) { $this->file_ref = FileRef::find($fileref_id[0]); } else { @@ -782,6 +786,7 @@ class FileController extends AuthenticatedController if ($folder) { $this->parent_folder = Folder::find($folder->parent_id); $this->parent_folder = $this->parent_folder->getTypedFolder(); + $this->is_folder = true; } } elseif (!$this->parent_folder) { throw new AccessDeniedException(); diff --git a/app/views/file/choose_destination.php b/app/views/file/choose_destination.php index 21ecb1387513f055a6b9e260cc835f7c13e2d3f1..fa5e73d6e4ff08938c0d2fd09efa39677621da8c 100644 --- a/app/views/file/choose_destination.php +++ b/app/views/file/choose_destination.php @@ -3,8 +3,9 @@ $options = array_filter([ 'from_plugin' => Request::get('from_plugin'), 'to_folder_id' => Request::get('to_folder_id'), 'copymode' => Request::get('copymode', $copymode), - 'isfolder' => Request::get('isfolder'), + 'isfolder' => Request::get('isfolder', $is_folder), 'fileref_id' => Request::getArray('fileref_id') ?: $fileref_id, + 'ids' => Request::getArray('ids'), 'direct_parent' => true, ], function ($value) { return $value !== null;