From c3d4c0a4109f6243578dc89b0802a66e8e772445 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Fri, 4 Aug 2017 11:18:20 +0800 Subject: [PATCH] Added file upload validation, added master and file lang --- app/Http/Controllers/Projects/FilesController.php | 11 +++--- resources/lang/id/file.php | 30 ++++++++++++++++ resources/lang/id/master.php | 43 +++++++++++++---------- resources/lang/id/project.php | 3 ++ resources/views/projects/files.blade.php | 31 ++++++++-------- tests/Feature/Projects/UploadFilesTest.php | 10 +++--- 6 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 resources/lang/id/file.php diff --git a/app/Http/Controllers/Projects/FilesController.php b/app/Http/Controllers/Projects/FilesController.php index 3960b10..8409c57 100644 --- a/app/Http/Controllers/Projects/FilesController.php +++ b/app/Http/Controllers/Projects/FilesController.php @@ -26,6 +26,12 @@ class FilesController extends Controller public function create(Request $request, $fileableId) { + $this->validate($request, [ + 'file' => 'required|file|max:10000', + 'title' => 'required|max:60', + 'description' => 'nullable|max:255', + ]); + $fileableExist = array_search($request->get('fileable_type'), $this->fileableTypes); if ($fileableExist) { @@ -43,11 +49,8 @@ class FilesController extends Controller private function proccessPhotoUpload($data, $fileableType, $fileableId) { - // dd(get_class_methods($data['files'])); - $file = $data['files']; - // $fileName = md5(uniqid(rand(), true)).'.'.$file->getClientOriginalExtension(); + $file = $data['file']; $fileName = $file->hashName(); - // dd($fileName); $fileData['fileable_id'] = $fileableId; $fileData['fileable_type'] = $fileableType; diff --git a/resources/lang/id/file.php b/resources/lang/id/file.php new file mode 100644 index 0000000..b540724 --- /dev/null +++ b/resources/lang/id/file.php @@ -0,0 +1,30 @@ + 'File', + 'list' => 'Daftar File', + 'search' => 'Cari File', + 'not_found' => 'File tidak ditemukan', + 'empty' => 'Belum ada File', + 'back_to_index' => 'Kembali ke daftar File', + + // Actions + 'create' => 'Upload File Baru', + 'created' => 'Upload File baru telah berhasil.', + 'edit' => 'Edit File', + 'update' => 'Update File', + 'updated' => 'Update data File telah berhasil.', + 'delete' => 'Hapus File', + 'delete_confirm' => 'Anda yakin akan menghapus File ini?', + 'deleted' => 'Hapus data File telah berhasil.', + 'undeleted' => 'Data File gagal dihapus.', + 'undeleteable' => 'Data File tidak dapat dihapus.', + 'select' => 'Pilih File', + 'upload' => 'Upload File', + 'download' => 'Download File', + + // Attributes + 'name' => 'Nama File', + 'description' => 'Deskripsi File', +]; diff --git a/resources/lang/id/master.php b/resources/lang/id/master.php index 09250f5..517a03c 100644 --- a/resources/lang/id/master.php +++ b/resources/lang/id/master.php @@ -1,21 +1,28 @@ 'Master', - 'masters' => 'Daftar Master', - 'name' => 'Nama Master', - 'create' => 'Input Master Baru', - 'created' => 'Input Master baru telah berhasil.', - 'show' => 'Detail Master', - 'edit' => 'Edit Master', - 'update' => 'Update Master', - 'updated' => 'Update data Master telah berhasil.', - 'delete' => 'Hapus Master', - 'deleted' => 'Hapus data Master telah berhasil.', - 'undeleted' => 'Data Master gagal dihapus.', - 'search' => 'Cari Master', - 'found' => 'Master ditemukan', - 'not_found' => 'Master tidak ditemukan', - 'empty' => 'Belum ada Master', - 'back_to_index' => 'Kembali ke daftar Master', -]; \ No newline at end of file + // Labels + 'master' => 'Master', + 'list' => 'Daftar Master', + 'search' => 'Cari Master', + 'not_found' => 'Master tidak ditemukan', + 'empty' => 'Belum ada Master', + 'back_to_index' => 'Kembali ke daftar Master', + + // Actions + 'create' => 'Input Master Baru', + 'created' => 'Input Master baru telah berhasil.', + 'show' => 'Detail Master', + 'edit' => 'Edit Master', + 'update' => 'Update Master', + 'updated' => 'Update data Master telah berhasil.', + 'delete' => 'Hapus Master', + 'delete_confirm' => 'Anda yakin akan menghapus Master ini?', + 'deleted' => 'Hapus data Master telah berhasil.', + 'undeleted' => 'Data Master gagal dihapus.', + 'undeleteable' => 'Data Master tidak dapat dihapus.', + + // Attributes + 'name' => 'Nama Master', + 'description' => 'Deskripsi Master', +]; diff --git a/resources/lang/id/project.php b/resources/lang/id/project.php index 7f20a61..a34a33c 100644 --- a/resources/lang/id/project.php +++ b/resources/lang/id/project.php @@ -36,4 +36,7 @@ return [ 'not_found' => 'Project tidak ditemukan', 'empty' => 'Belum ada Project', 'back_to_index' => 'Kembali ke daftar Project', + + // Attribute + 'files' => 'List Dokumen', ]; \ No newline at end of file diff --git a/resources/views/projects/files.blade.php b/resources/views/projects/files.blade.php index 53e5b5c..7cff760 100755 --- a/resources/views/projects/files.blade.php +++ b/resources/views/projects/files.blade.php @@ -19,20 +19,23 @@ - - + + @forelse($files as $key => $file) - - - + + + @empty - + @endforelse
{{ trans('app.table_no') }}{{ trans('file.title') }}{{ trans('file.description') }}{{ trans('file.file') }}{{ trans('file.download') }} {{ trans('app.action') }}
{{ 1 + $key }}{{ $file->title }}{{ $file->description }} + {{ $file->title }} +
{{ $file->description }}
+
edit
{{ trans('file.empty') }}
{{ trans('file.empty') }}
@@ -40,15 +43,15 @@
-

Upload new File

+

{{ trans('file.create') }}

- {!! Form::open(['route' => ['files.upload', $project->id], 'id' => 'upload-files', 'files' => true]) !!} - {{ Form::hidden('fileable_type', get_class($project)) }} - {!! FormField::file('files', ['label' => 'Upload File', 'placeholder' => 'Pilih File']) !!} - {!! FormField::text('title') !!} - {!! FormField::textarea('description') !!} - {!! Form::submit(trans('app.upload_files'), ['class' => 'btn btn-info']) !!} - {!! Form::close() !!} + {!! Form::open(['route' => ['files.upload', $project->id], 'id' => 'upload-file', 'files' => true]) !!} + {{ Form::hidden('fileable_type', get_class($project)) }} + {!! FormField::file('file', ['label' => trans('file.select')]) !!} + {!! FormField::text('title') !!} + {!! FormField::textarea('description') !!} + {!! Form::submit(trans('file.upload'), ['class' => 'btn btn-info']) !!} + {!! Form::close() !!}
diff --git a/tests/Feature/Projects/UploadFilesTest.php b/tests/Feature/Projects/UploadFilesTest.php index 652cb8d..56f0ed0 100644 --- a/tests/Feature/Projects/UploadFilesTest.php +++ b/tests/Feature/Projects/UploadFilesTest.php @@ -13,14 +13,14 @@ class UploadFilesTest extends TestCase $user = $this->adminUserSigningIn(); $project = factory(Project::class)->create(['owner_id' => $user->id]); $this->visit(route('projects.files', $project->id)); - $this->seeElement('form', ['id' => 'upload-files']); - $this->seeElement('input', ['id' => 'files']); - $this->seeElement('input', ['type' => 'submit', 'value' => trans('app.upload_files')]); + $this->seeElement('form', ['id' => 'upload-file']); + $this->seeElement('input', ['id' => 'file']); + $this->seeElement('input', ['type' => 'submit', 'value' => trans('file.upload')]); - $this->attach(storage_path('app/guitar-640.jpg'), 'files'); + $this->attach(storage_path('app/guitar-640.jpg'), 'file'); $this->type('Judul file', 'title'); $this->type('Deskripsi file yang diuplod.', 'description'); - $this->press(trans('app.upload_files')); + $this->press(trans('file.upload')); $this->assertCount(1, $project->files);