diff --git a/app/Helpers/FileManager.php b/app/Helpers/FileManager.php new file mode 100644 index 00000000..53794a3e --- /dev/null +++ b/app/Helpers/FileManager.php @@ -0,0 +1,66 @@ +mime_type); + + switch ($type) { + case 'image': + + // try to check if file have thumbnail + if (file_exists(config('app.thumbnail_url') . '/' . $file->filename)) { + $url = config('app.thumbnail_url') . '/' . $file->filename; + } else { + $url = config('app.upload_url') . '/' . $file->filename; + } + + return '' . $file->description . ''; + break; + case 'text': + return ''; + break; + case 'application': + switch ($subtype) { + case 'pdf': + return ''; + break; + default: + return ''; + break; + } + break; + default: + return ''; + break; + } + } + + /** + * + * + * @param File $file + * + * @return string + */ + public static function getFormattedSize(File $file) + { + $bytes = $file->file_size; + + $label = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']; + for ($i = 0; $bytes >= 1024 && $i < (count($label) - 1); $bytes /= 1024, $i++) { + ; + } + + return (round($bytes, 2) . " " . $label[$i]); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/UploadedFilesOverview.php b/app/Http/Controllers/Admin/UploadedFilesOverview.php index 95d0ca34..1d9e2ef5 100644 --- a/app/Http/Controllers/Admin/UploadedFilesOverview.php +++ b/app/Http/Controllers/Admin/UploadedFilesOverview.php @@ -2,12 +2,27 @@ namespace App\Http\Controllers\Admin; -use Illuminate\Http\Request; - -use App\Http\Requests; use App\Http\Controllers\Controller; +use App\Http\Requests; +use App\Models\File; class UploadedFilesOverview extends Controller { - // + public function getOverview($type = null) + { + $directories = []; + + $files = File::orderBy('updated_at', 'DESC') + ->paginate(18); + + // try to filter by given type + if (!is_null($type)) { + $files = $files->where('mime_type', 'LIKE', $type); + } + + return view('admin.fileManager.overview', [ + 'direcories' => $directories, + 'files' => $files + ]); + } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 12c55292..240b2fe2 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -96,7 +96,8 @@ Route::group([ Route::get('upload/image', 'UploadFile@getImage') ->name('upload.image'); - Route::get('upload/overview', function () {})->name('upload.overview'); + Route::get('upload/overview', 'UploadedFilesOverview@getOverview') + ->name('upload.overview'); // uploader methods Route::post('upload/file', 'UploadFile@postFile') diff --git a/config/app.php b/config/app.php index 7bd0922e..ec80c633 100644 --- a/config/app.php +++ b/config/app.php @@ -93,6 +93,9 @@ return [ * Upload path used for storing all uploaded files */ 'upload_path' => env('UPLOAD_PATH', public_path('uploads')), + 'upload_url' => env('UPLOAD_URL', url('uploads')), + 'thumbnail_path' => env('THUMBNAIL_PATH', public_path('uploads/thumbnails')), + 'thumbnail_url' => env('THUMBNAIL_URL', url('uploads/thumbnails')), /* |-------------------------------------------------------------------------- diff --git a/resources/assets/css/admin.css b/resources/assets/css/admin.css index 483d5e27..75acb08e 100644 --- a/resources/assets/css/admin.css +++ b/resources/assets/css/admin.css @@ -43,6 +43,32 @@ ins { list-style-type: none; } +.tile-overview .item { + position: relative; + padding-bottom: 3em; +} + +.tile-overview .controls { + position: absolute; + bottom: 0; +} + +.tile-overview .controls .button { + margin-bottom: 0; +} + +.tile-overview .small { + font-size: 80%; +} + +.tile-overview .preview { + font-size: 350%; + text-align: center; + line-height: 3em; + max-height: 3em; + overflow:hidden; +} + #static-page-overview .page { position: relative; padding-bottom: 3em; diff --git a/resources/lang/en/admin/fileManager.php b/resources/lang/en/admin/fileManager.php index 31d17081..c180b464 100644 --- a/resources/lang/en/admin/fileManager.php +++ b/resources/lang/en/admin/fileManager.php @@ -1,5 +1,6 @@ 'List of all files', 'upload' => 'Upload new file', 'newFile' => 'New file', 'invalidFile' => 'The file you submitted is somehow not valid file!', diff --git a/resources/views/admin/fileManager/overview.blade.php b/resources/views/admin/fileManager/overview.blade.php index e69de29b..b2d116f6 100644 --- a/resources/views/admin/fileManager/overview.blade.php +++ b/resources/views/admin/fileManager/overview.blade.php @@ -0,0 +1,42 @@ +@extends('admin.layout') + +@section('pageName', @trans('admin/fileManager.overview')) + +@section('content') + +
+

@lang('admin/fileManager.overview')

+
+ +
+ @forelse($files as $file) + +
+
+
+ {!! \App\Helpers\FileManager::getPreview($file) !!} +
+
+
+ {{str_limit($file->original_filename, 15)}} +
+
+ {{$file->mime_type}} +
+
+ +
+ + +
+
+
+ @empty + @lang('admin/fileManager.noFiles') + @endforelse +
+ +
+ {!! $files->render() !!} +
+@stop \ No newline at end of file