diff --git a/app/Handlers/Handler.php b/app/Handlers/Handler.php index dc470407..a6305096 100644 --- a/app/Handlers/Handler.php +++ b/app/Handlers/Handler.php @@ -38,7 +38,7 @@ abstract class Handler implements AppHandler 'basicInfo' => 'admin.content.formParts.basicInformation', 'meta' => 'admin.content.formParts.metaInformation', 'publication' => 'admin.content.formParts.publicationSetup', - 'appearance' => 'admin.content.formParts.appearance', + 'appearance' => 'admin.content.formParts.appearance', ]; } @@ -93,11 +93,7 @@ abstract class Handler implements AppHandler $sub->route('content.overview', trans('admin/mainMenu.contentPageOverview'), [], 20, ['icon' => 'fa fa-list']); }, 15, ['icon' => 'fa fa-database']); - $menu->dropdown(trans('admin/mainMenu.fileManager'), function ($sub) { - $sub->route('upload.directories', trans('admin/mainMenu.directories'), [], 1, ['icon' => 'fa fa-folder']); - $sub->route('upload.file', trans('admin/mainMenu.uploadFile'), [], 10, ['icon' => 'fa fa-file']); - $sub->route('upload.overview', trans('admin/mainMenu.uploadedFiles'), [], 150, ['icon' => 'fa fa-files-o']); - }, 25, ['icon' => 'fa fa-film']); + $menu->route('upload.overview', trans('admin/mainMenu.fileManager'), [], 30, ['icon' => 'fa fa-folder']); $menu->dropdown(trans('admin/mainMenu.widgets'), function ($sub) { // create list of all widget types $sub->dropdown(trans('admin/mainMenu.newWidget'), function ($sub) { diff --git a/app/Http/Controllers/Admin/UploadFile.php b/app/Http/Controllers/Admin/UploadFile.php index 3c403615..8e933a44 100644 --- a/app/Http/Controllers/Admin/UploadFile.php +++ b/app/Http/Controllers/Admin/UploadFile.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers\Admin; use App\Http\Requests\UploadFileRequest; -use App\Http\Requests\UploadImageRequest; use App\Models\File; use Symfony\Component\HttpFoundation\File\Exception\FileException; @@ -19,10 +18,6 @@ class UploadFile extends Controller $this->file = $file; } - public function getFile() - { - return view('admin/fileManager.newFile'); - } /** * Uploads any file @@ -47,7 +42,7 @@ class UploadFile extends Controller // upload was not performed via ajax, redirect user return redirect() - ->route('upload.file') + ->route('upload.overview', ['directory' => $request->directoryId]) ->with('success', trans('admin/fileManager.uploadSuccessfull')); } catch (FileException $e) { return $this->invalidUpload('invalidFile'); diff --git a/app/Http/Controllers/Admin/UploadedFilesOverview.php b/app/Http/Controllers/Admin/UploadedFilesOverview.php index 93721771..6b5c0a21 100644 --- a/app/Http/Controllers/Admin/UploadedFilesOverview.php +++ b/app/Http/Controllers/Admin/UploadedFilesOverview.php @@ -4,30 +4,46 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests; +use App\Models\Directory; use App\Models\File; +use Illuminate\Support\Facades\Input; class UploadedFilesOverview extends Controller { - public function getOverview($type = null, $subtype = null) + /** + * List of all files and directories + * + * @param null $directoryId + * @param null $fileType + * @param null $fileSubtype + * + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function getOverview($directoryId = null, $fileType = null, $fileSubtype = null) { - $directories = []; + // get directory information + $directory = is_null($directoryId) ? new Directory() : Directory::findOrFail($directoryId); - $files = File::orderBy('updated_at', 'DESC'); + // get all files in this directory + $files = File::orderBy('updated_at', 'DESC') + ->where('directory_id', $directory->id); // try to filter by given type - if (!is_null($type)) { - if (is_null($subtype)) - $files = $files->where('mime_type', 'LIKE', $type.'%'); - else { - $files = $files->where('mime_type', $type.'/'.$subtype); + if (!is_null($fileType)) { + if (is_null($fileSubtype)) { + $files = $files->where('mime_type', 'LIKE', $fileType . '%'); + } else { + $files = $files->where('mime_type', $fileType . '/' . $fileSubtype); } } - $files = $files->paginate(18); + // include hidden directories? + $includeHidden = Input::get('hidden'); return view('admin.fileManager.overview', [ - 'direcories' => $directories, - 'files' => $files + 'directory' => $directory, + 'subdirectories' => $directory->subdirectories($includeHidden), + 'files' => $files->get() ]); } } diff --git a/app/Http/Requests/UploadRequest.php b/app/Http/Requests/UploadRequest.php index 7d05410e..ebfe5c2f 100644 --- a/app/Http/Requests/UploadRequest.php +++ b/app/Http/Requests/UploadRequest.php @@ -17,7 +17,8 @@ abstract class UploadRequest extends Request { // some globaly defined rules $rules = [ - 'keywords' => 'max:255' + 'keywords' => 'max:255', + 'directoryId' => 'exists:directories,id' ]; // setup additional rules diff --git a/app/Http/routes.php b/app/Http/routes.php index 37166940..4eb5d6d9 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -184,8 +184,6 @@ Route::group([ ->name('widgets.makeAssociation'); // uploader methods - Route::get('upload/file', 'UploadFile@getFile') - ->name('upload.file'); Route::get('directories/new/{id?}', 'CreateNewDirectory@getNew') ->name('upload.newDirectory'); diff --git a/app/Models/File.php b/app/Models/File.php index 86ffc192..447950ff 100644 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -101,9 +101,10 @@ class File extends Model $newFile->hash_algorithm = self::HASH_ALGORITHM; $newFile->mime_type = $file->getMimeType(); $newFile->file_size = $file->getSize(); + $newFile->directory_id = $request->directoryId; // save optional fields - $optionalFields = ['description', 'keywords', 'directory']; + $optionalFields = ['description', 'keywords']; foreach ($optionalFields as $field) { if ($request->has($field)) { $newFile->$field = $request->$field; diff --git a/resources/views/admin/fileManager/filesTiles.blade.php b/resources/views/admin/fileManager/filesTiles.blade.php new file mode 100644 index 00000000..9cf3fa31 --- /dev/null +++ b/resources/views/admin/fileManager/filesTiles.blade.php @@ -0,0 +1,32 @@ +