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() ->maxSize(10240) ->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'); } }