From d7130f72eb13cfb0bdb2a56f0d0f399ce8ad5281 Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Wed, 11 May 2022 12:36:27 +0200 Subject: [PATCH] Clean Document Model / Controller / .. --- app/Http/Controllers/API/SyncController.php | 2 +- app/Http/Controllers/DocumentsController.php | 64 ++++++++----------- app/Http/Resources/DocumentsCollection.php | 1 - app/Models/Directories.php | 2 +- app/Models/{Documents.php => Document.php} | 13 ++-- app/Providers/RouteServiceProvider.php | 2 +- .../js/components/EditDocumentComponent.vue | 4 +- .../create.blade.php} | 0 .../{documents => document}/edit.blade.php | 0 .../{documents => document}/index.blade.php | 26 ++++---- resources/views/layouts/app.blade.php | 2 +- 11 files changed, 55 insertions(+), 61 deletions(-) rename app/Models/{Documents.php => Document.php} (66%) rename resources/views/{documents/add.blade.php => document/create.blade.php} (100%) rename resources/views/{documents => document}/edit.blade.php (100%) rename resources/views/{documents => document}/index.blade.php (65%) diff --git a/app/Http/Controllers/API/SyncController.php b/app/Http/Controllers/API/SyncController.php index 6ce894c..8e339ff 100644 --- a/app/Http/Controllers/API/SyncController.php +++ b/app/Http/Controllers/API/SyncController.php @@ -32,7 +32,7 @@ class SyncController extends Controller } public function getDocuments(Request $request) { - return new \App\Http\Resources\DocumentsCollection(\App\Models\Documents::where('published', 1)->get()); + return new \App\Http\Resources\DocumentsCollection(\App\Models\Document::where('published', 1)->get()); } public function getVersion(Request $request) { diff --git a/app/Http/Controllers/DocumentsController.php b/app/Http/Controllers/DocumentsController.php index cb406fa..4f0ffee 100644 --- a/app/Http/Controllers/DocumentsController.php +++ b/app/Http/Controllers/DocumentsController.php @@ -3,7 +3,7 @@ namespace App\Http\Controllers; use App\Models\Directories; -use App\Models\Documents; +use App\Models\Document; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Storage; use Pion\Laravel\ChunkUpload\Exceptions\UploadMissingFileException; @@ -14,23 +14,19 @@ use Illuminate\Http\Request; class DocumentsController extends Controller { - public function __construct() + public function index() { - $this->middleware('auth', ['except' => ['download']]); + return view('document.index', ['documents' => Document::where('lang', '=', 'fr')->get()]); } - public function index(Request $request) { - return view('documents.index', ['documents' => Documents::where('lang', '=', 'fr')->get()]); - } - - public function add(Request $request) { - $folders = Directories::all(); - return view('documents.add', ['folders' => $folders, 'docsFR' => Documents::where('lang', '=', 'fr')->orderBy('title', 'asc')->get()]); + public function create() + { + return view('document.create', ['folders' => Directories::all(), 'docsFR' => Document::where('lang', '=', 'fr')->orderBy('title', 'asc')->get()]); } public function store(Request $request) { $tmp = $request->document; - $doc = new Documents(); + $doc = new Document(); $doc->uuid = $tmp['uuid']; $doc->title = $tmp['title']; $doc->type = $tmp['type']; @@ -49,31 +45,29 @@ class DocumentsController extends Controller return 'NOK'; } - public function edit(Request $request) { - $requestId = $request->id; - $doc = Documents::findOrFail($requestId); - $folders = Directories::all(); - return view('documents.edit', ['document' => $doc, 'folders' => $folders]); + public function edit(Document $document) + { + return view('document.edit', ['document' => $document, 'folders' => Directories::all()]); } - public function update(Request $request) { + public function update(Request $request, Document $document) + { $tmp = $request->document; - $doc = Documents::findOrFail($tmp['id']); - $doc->uuid = $tmp['uuid']; - $doc->title = $tmp['title']; - $doc->type = $tmp['type']; - $doc->directory = $tmp['directory']; - $doc->path = $tmp['path']; + $document->uuid = $tmp['uuid']; + $document->title = $tmp['title']; + $document->type = $tmp['type']; + $document->directory = $tmp['directory']; + $document->path = $tmp['path']; if ($tmp['published'] === true || $tmp['published'] === 1){ - $doc->published = 1; + $document->published = 1; }else{ - $doc->published = 0; + $document->published = 0; } - $doc->save(); + $document->save(); - if ($doc->lang === 'fr') { - foreach ($doc->others_lang as $item) { - $item->directory = $doc->directory; + if ($document->lang === 'fr') { + foreach ($document->others_lang as $item) { + $item->directory = $document->directory; $item->save(); } } @@ -125,22 +119,20 @@ class DocumentsController extends Controller /** Download the document */ public function download(Request $request, $uuid) { - $doc = Documents::where('uuid', $uuid)->firstOrFail(); + $doc = Document::where('uuid', $uuid)->firstOrFail(); $pathToFile = public_path() . Storage::url('docs/' . $doc->uuid . '.' . $doc->type); return response()->download($pathToFile, $doc->path); } - public function delete(Request $request) + public function destroy(Request $request, Document $document) { - $doc = Documents::findOrFail($request->id); - - if ($doc->lang === 'fr') { - foreach ($doc->others_lang as $item) { + if ($document->lang === 'fr') { + foreach ($document->others_lang as $item) { $item->delete(); } } - $doc->delete(); + $document->delete(); return ['status' => 'OK']; } diff --git a/app/Http/Resources/DocumentsCollection.php b/app/Http/Resources/DocumentsCollection.php index 2509d8b..b171739 100644 --- a/app/Http/Resources/DocumentsCollection.php +++ b/app/Http/Resources/DocumentsCollection.php @@ -2,7 +2,6 @@ namespace App\Http\Resources; -use App\Models\Documents; use Illuminate\Http\Resources\Json\ResourceCollection; class DocumentsCollection extends ResourceCollection diff --git a/app/Models/Directories.php b/app/Models/Directories.php index 2616323..d5b0755 100644 --- a/app/Models/Directories.php +++ b/app/Models/Directories.php @@ -21,6 +21,6 @@ class Directories extends Model public function documents() { - return $this->hasMany(Documents::class, 'directory', 'id'); + return $this->hasMany(Document::class, 'directory', 'id'); } } diff --git a/app/Models/Documents.php b/app/Models/Document.php similarity index 66% rename from app/Models/Documents.php rename to app/Models/Document.php index 345ebd1..74fd5cc 100644 --- a/app/Models/Documents.php +++ b/app/Models/Document.php @@ -4,18 +4,21 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; -class Documents extends Model +class Document extends Model { - public function getOthersLangAttribute() { - return Documents::where('parent', '=', $this->id)->get(); + public function getOthersLangAttribute() + { + return Document::where('parent', '=', $this->id)->get(); } - public function getParentsAttribute() { + public function getParentsAttribute() + { return $this->constructParents($this->directory); } - private function constructParents($id, $parents = []) { + private function constructParents($id, $parents = []) + { $tmp = Directories::find($id); array_push($parents, $tmp); if ($tmp->parent != NULL) { diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 269fabb..fd86f72 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -14,7 +14,7 @@ class RouteServiceProvider extends ServiceProvider * * @var string */ - protected $namespace = 'App\Http\Controllers'; + protected $namespace = null; /** * The path to the "home" route for your application. diff --git a/resources/js/components/EditDocumentComponent.vue b/resources/js/components/EditDocumentComponent.vue index 07d7caf..1bb0fbc 100644 --- a/resources/js/components/EditDocumentComponent.vue +++ b/resources/js/components/EditDocumentComponent.vue @@ -118,7 +118,7 @@ if (this.documentDatas.title.length > 3){ this.error = ''; let _this2 = this; - axios.post('/documents/' + this.documentDatas.id + '/update', { + axios.put('/documents/' + this.documentDatas.id, { document: this.documentDatas, }) .then(function (response) { @@ -172,7 +172,7 @@ $('#DeleteModal').modal('show'); }, deleteDocument() { - axios.post('/documents/' + this.documentDatas.id + '/delete') + axios.delete('/documents/' + this.documentDatas.id) .then(response => { if (response.data.status === 'OK'){ window.location.href = '/documents'; diff --git a/resources/views/documents/add.blade.php b/resources/views/document/create.blade.php similarity index 100% rename from resources/views/documents/add.blade.php rename to resources/views/document/create.blade.php diff --git a/resources/views/documents/edit.blade.php b/resources/views/document/edit.blade.php similarity index 100% rename from resources/views/documents/edit.blade.php rename to resources/views/document/edit.blade.php diff --git a/resources/views/documents/index.blade.php b/resources/views/document/index.blade.php similarity index 65% rename from resources/views/documents/index.blade.php rename to resources/views/document/index.blade.php index 16dab80..d6d016d 100644 --- a/resources/views/documents/index.blade.php +++ b/resources/views/document/index.blade.php @@ -3,24 +3,24 @@

- - - - - + + + + + @foreach($documents as $document) - + @foreach($document->others_lang as $doc) - + diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 3134d60..de20a9d 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -60,7 +60,7 @@ Dossiers
TitreTypeDossierLanguePubliƩ ?{{ __('Titre') }}{{ __('Type') }}{{ __('Dossier') }}{{ __('Langue') }}{{ __('PubliƩ') }} ?
{{$document->title}}{{$document->title}} {{$document->type}} @foreach($document->parents as $parent) @@ -30,15 +30,15 @@ {{strtoupper($document->lang)}} @if ($document->published === 1) - Oui + {{ __('Oui') }} @else - Non + {{ __('Non') }} @endif
--- {{$doc->title}}--- {{$doc->title}} {{$doc->type}} @foreach($doc->parents as $parent) @@ -47,10 +47,10 @@ {{strtoupper($doc->lang)}} - @if ($doc->published === 1) - Oui + @if ($document->published === 1) + {{ __('Oui') }} @else - Non + {{ __('Non') }} @endif