From 5e4cb2767c9f9de75706998f3f4663c91bb46d7a Mon Sep 17 00:00:00 2001 From: Subash Date: Sun, 3 Aug 2025 12:10:14 +0545 Subject: [PATCH] feat: Enhance document upload functionality and improve resource template display --- .../Http/Controllers/DocumentController.php | 11 +- .../resources/views/document/form.blade.php | 183 +++++++++--------- .../views/document/partials/table.blade.php | 52 +++++ .../pages/resources-template.blade.php | 2 +- 4 files changed, 148 insertions(+), 100 deletions(-) create mode 100644 Modules/Document/resources/views/document/partials/table.blade.php diff --git a/Modules/Document/app/Http/Controllers/DocumentController.php b/Modules/Document/app/Http/Controllers/DocumentController.php index 67255d7..87f1530 100644 --- a/Modules/Document/app/Http/Controllers/DocumentController.php +++ b/Modules/Document/app/Http/Controllers/DocumentController.php @@ -12,6 +12,7 @@ use Modules\CCMS\Models\Test; use Modules\Document\Services\DocumentService; use Yajra\DataTables\Facades\DataTables; use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Facades\File; class DocumentController extends Controller @@ -48,11 +49,9 @@ class DocumentController extends Controller session()->flash('Document Deleted'); return response()->json(['status' => true, 'msg' => 'Document Deleted']); - } catch (\Throwable $th) { session()->flash('error', $th->getMessage()); } - } public function uploadDocument(Request $request) @@ -89,9 +88,9 @@ class DocumentController extends Controller return response()->json([ 'status' => true, 'msg' => 'Document has been uploaded!', - // 'view' => view('student::student.section.document.table', [ - // 'student' => $student, - // ])->render(), + 'view' => view('document::document.partials.table', [ + 'model' => $model, + ])->render(), ], 200); } catch (\Throwable $th) { return response()->json([ @@ -101,7 +100,7 @@ class DocumentController extends Controller } } - public function store(Request $request) + public function store(Request $request) { $path = storage_path('tmp/uploads'); diff --git a/Modules/Document/resources/views/document/form.blade.php b/Modules/Document/resources/views/document/form.blade.php index 611d54a..a8f4e10 100644 --- a/Modules/Document/resources/views/document/form.blade.php +++ b/Modules/Document/resources/views/document/form.blade.php @@ -2,113 +2,110 @@
- {{ html()->form('POST', route('documents.upload'))->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data', 'id' => 'documentForm'])->open() }} + {{ html()->form('POST', route('documents.upload'))->class(['needs-validation'])->attributes(['novalidate', 'enctype' => 'multipart/form-data', 'id' => 'documentForm'])->open() }} -
- {{ html()->label('Title')->for('title') }} - {{ html()->span('*')->class('text-danger') }} - {{ html()->text('title')->id('docTitle')->class('form-control')->placeholder('Enter Title')->required() }} +
+ {{ html()->label('Title')->for('title') }} + {{ html()->span('*')->class('text-danger') }} + {{ html()->text('title')->id('docTitle')->class('form-control')->placeholder('Enter Title')->required() }} +
+ +
+ {{ html()->label('Select Model')->class('form-label')->for('model') }} + {{ html()->span('*')->class('text-danger') }} + {{ html()->select('model')->id('modelSelect')->class('form-select select2')->required()->options(['' => '-- Select --'] + $modelOptions->toArray()) }} +
+ +
+ +
+ +
+
+
+
-
- {{ html()->label('Select Model')->class('form-label')->for('model') }} - {{ html()->span('*')->class('text-danger') }} - {{ html()->select('model')->id('modelSelect')->class('form-select select2')->required()->options(['' => '-- Select --'] + $modelOptions->toArray()) }} -
+ {{ html()->form()->close() }} -
- -
- -
-
- -
-
- - {{ html()->form()->close() }} -
- -@pushOnce('js') - + @pushOnce('js') + - const url = $(this).attr('action'); - const formData = new FormData(this); - const button = $(this).find('button[type="submit"]'); + -@endPushOnce + } + }, + error: (xhr) => { + if (xhr.status === 422) { + const errors = xhr.responseJSON.errors; + $('.error-message').remove(); + + for (const [key, value] of Object.entries(errors)) { + const errorMessage = $( + '

').text( + value[0]); + $(`#${key}`).after(errorMessage); + } + } else { + console.error(xhr); + } + }, + complete: () => { + button.text('Upload'); + // button.prop('disabled', true); + } + }); + }); + + @endPushOnce diff --git a/Modules/Document/resources/views/document/partials/table.blade.php b/Modules/Document/resources/views/document/partials/table.blade.php new file mode 100644 index 0000000..492fa42 --- /dev/null +++ b/Modules/Document/resources/views/document/partials/table.blade.php @@ -0,0 +1,52 @@ +@foreach ($model->documents as $document) + @php + $extension = $document->getExtension(); + $assetUrl = $document->getUrl(); + $fileSize = $document->getSize(); + @endphp + + + + + +
+ + @if ($document->isImageFile()) +
+ + + +
+ @else + + @endif + +
+
{{ $document->title }}
+
+
+ + {{ $extension }} + {{-- {{ $fileSize }} --}} + {{ $document->created_at?->format('d M, y') }} + +
+ + +
+ + +@endforeach diff --git a/resources/views/client/raffles/pages/resources-template.blade.php b/resources/views/client/raffles/pages/resources-template.blade.php index 16c3588..1167c58 100644 --- a/resources/views/client/raffles/pages/resources-template.blade.php +++ b/resources/views/client/raffles/pages/resources-template.blade.php @@ -266,7 +266,7 @@ @endphp - {{$docss->index + 1}} + {{$loop->index + 1}} {{$docss->title}}