Use Media class to retrieve files in AdminController#taskGetFilesInFolder (#842)

Using the same class that's used to list media when rendering
pages ensures a consistent experience. The goal here was to avoid
listing image alternatives, but retain all the files available
through $page->media()->all()
This commit is contained in:
Fredrik Ekelund
2016-10-27 11:28:09 +02:00
committed by Flavio Copes
parent f82661abea
commit a42fd33c4f

View File

@@ -349,7 +349,7 @@ class AdminController
protected function taskGetFilesInFolder() protected function taskGetFilesInFolder()
{ {
if (!$this->authorizeTask('save', $this->dataPermissions())) { if (!$this->authorizeTask('save', $this->dataPermissions())) {
return false; return false;
} }
$data = $this->view == 'pages' ? $this->admin->page(true) : $this->prepareData([]); $data = $this->view == 'pages' ? $this->admin->page(true) : $this->prepareData([]);
@@ -374,7 +374,12 @@ class AdminController
$folder = Folder::getRelativePath(rtrim($folder, '/')); $folder = Folder::getRelativePath(rtrim($folder, '/'));
$folder = $this->admin->getPagePathFromToken($folder); $folder = $this->admin->getPagePathFromToken($folder);
$available_files = Folder::all($folder, ['recursive' => false]); $media = new Media($folder);
$available_files = [];
foreach ($media->all() as $name => $medium) {
$available_files[] = $name;
}
// Peak in the flashObject for optimistic filepicker updates // Peak in the flashObject for optimistic filepicker updates
$pending_files = []; $pending_files = [];
@@ -407,8 +412,8 @@ class AdminController
$this->admin->json_response = [ $this->admin->json_response = [
'status' => 'success', 'status' => 'success',
'files' => $available_files, 'files' => array_values($available_files),
'pending' => $pending_files, 'pending' => array_values($pending_files),
'folder' => $folder 'folder' => $folder
]; ];