From 53f2b950028797043ce84ecf3f921a849f9cdd60 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 16 Sep 2026 08:46:06 +0530 Subject: [PATCH] Added upload daily report page --- app/Filament/Pages/UploadDailyReport.php | 136 ++++++++++++++++++ .../pages/upload-daily-report.blade.php | 20 +++ 2 files changed, 156 insertions(+) create mode 100644 app/Filament/Pages/UploadDailyReport.php create mode 100644 resources/views/filament/pages/upload-daily-report.blade.php diff --git a/app/Filament/Pages/UploadDailyReport.php b/app/Filament/Pages/UploadDailyReport.php new file mode 100644 index 0000000..7f237ef --- /dev/null +++ b/app/Filament/Pages/UploadDailyReport.php @@ -0,0 +1,136 @@ +form->fill(); + } + + public function form(Form $form): Form + { + return $form->schema([ + Forms\Components\Section::make('Upload Daily Task Report') + ->schema([ + Forms\Components\TextInput::make('file_name') + ->label('File Name') + ->reactive(), + Forms\Components\FileUpload::make('report_pdf') + ->label('Daily Report PDF') + ->disk('local') + ->directory('task_updates') + ->acceptedFileTypes(['application/pdf']) + ->required() + ->preserveFilenames(), + ]) + ->columns(2), + ])->statePath('filters'); + } + + public function uploadTaskPdf(): void + { + $state = $this->form->getState(); // triggers upload/validation + $currentFile = $state['report_pdf']; + $directory = 'task_updates'; + $filename = trim(basename($currentFile)); + + $path = 'task_updates/' . $filename; + + // $duplicateExists = Storage::disk('local')->exists($path); + + // if ($duplicateExists) { + // // Remove the just-uploaded file since it's a duplicate + // // Storage::disk('local')->delete($currentFile); + + // Notification::make() + // ->title('File already exists') + // ->body("A file named \"{$filename}\" is already uploaded.") + // ->danger() + // ->send(); + + // $this->form->fill(['report_pdf' => null]); + // return; + // } + // else{ + Notification::make() + ->title('PDF uploaded successfully') + ->success() + ->send(); + + $this->form->fill(['report_pdf' => null]); + // } + } + + public function removeTaskPdf(){ + $fileName = $this->filters['file_name'] ?? null; + + if (!$fileName) { + Notification::make() + ->title('File Name Required') + ->body('Please enter a file name before removing the PDF.') + ->danger() + ->send(); + + return; + } + + $filePath = "task_updates/{$fileName}.pdf"; + + if (!Storage::disk('local')->exists($filePath)) { + Notification::make() + ->title('PDF Not Found') + ->body('The selected PDF does not exist.') + ->danger() + ->send(); + $this->form->fill(['file_name' => null]); + return; + } + + if (Storage::disk('local')->exists($filePath)) { + if (Storage::disk('local')->delete($filePath)) { + Notification::make() + ->title('PDF Removed Successfully') + ->body('The PDF was removed successfully.') + ->success() + ->send(); + return; + } + else{ + Notification::make() + ->title('PDF Removed Failed') + ->body('Unable to remove the PDF. Please try again...') + ->success() + ->send(); + return; + } + } + } + + public static function canAccess(): bool + { + return Auth::check() && Auth::user()->can('view upload daily report page'); + } + +} diff --git a/resources/views/filament/pages/upload-daily-report.blade.php b/resources/views/filament/pages/upload-daily-report.blade.php new file mode 100644 index 0000000..97b4bd2 --- /dev/null +++ b/resources/views/filament/pages/upload-daily-report.blade.php @@ -0,0 +1,20 @@ + +{{ $this->form }} + +
+ + +
+