From c8775d38fd0af591ee459c461e428ea74745b1e8 Mon Sep 17 00:00:00 2001 From: Bernard Hanna Date: Mon, 30 Mar 2026 15:37:54 +0100 Subject: [PATCH 1/2] Revert "upload images to nova" --- app/Nova/Actions/BulkUploadMediaFiles.php | 119 ---------------------- app/Nova/MediaUpload.php | 18 ---- app/School.php | 7 -- 3 files changed, 144 deletions(-) delete mode 100644 app/Nova/Actions/BulkUploadMediaFiles.php diff --git a/app/Nova/Actions/BulkUploadMediaFiles.php b/app/Nova/Actions/BulkUploadMediaFiles.php deleted file mode 100644 index 52afb53c5..000000000 --- a/app/Nova/Actions/BulkUploadMediaFiles.php +++ /dev/null @@ -1,119 +0,0 @@ -files ?? request()->file('files'); - if (!$uploadedFiles) { - return Action::danger('Please select one or more files.'); - } - - if (!is_array($uploadedFiles)) { - $uploadedFiles = [$uploadedFiles]; - } - - $allowedExtensions = [ - 'jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', - 'pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'txt', - ]; - - $uploaded = 0; - $skipped = 0; - - foreach ($uploadedFiles as $file) { - if (!$file) { - $skipped++; - continue; - } - - $extension = strtolower((string) $file->getClientOriginalExtension()); - if (!in_array($extension, $allowedExtensions, true)) { - $skipped++; - continue; - } - - $baseName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME); - $safeBaseName = Str::slug($baseName) ?: 'upload-file'; - $destination = 'nova/uploads/' . now()->format('Y/m'); - $storedPath = $file->storeAs( - $destination, - $safeBaseName . '-' . Str::random(8) . '.' . $extension, - 'resources' - ); - - if (!$storedPath) { - $skipped++; - continue; - } - - MediaUpload::create([ - 'title' => trim(str_replace(['-', '_'], ' ', $baseName)), - 'file_path' => $storedPath, - 'disk' => 'resources', - ]); - - $uploaded++; - } - - return Action::message("Bulk upload completed: {$uploaded} uploaded, {$skipped} skipped."); - } - - /** - * Get the fields available on the action. - * - * @param \Laravel\Nova\Http\Requests\NovaRequest $request - * @return array - */ - public function fields(NovaRequest $request): array - { - return [ - File::make('Files', 'files') - ->withMeta([ - 'extraAttributes' => [ - 'multiple' => true, - 'accept' => '.jpg,.jpeg,.png,.gif,.webp,.svg,.pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx,.txt', - ], - ]) - ->rules('required') - ->help('Drag and drop multiple files or click to select. Supported: images, PDF, Office docs, and TXT.'), - ]; - } - - /** - * Indicate that this action can be run without any models. - */ - public function standalone() - { - return true; - } -} diff --git a/app/Nova/MediaUpload.php b/app/Nova/MediaUpload.php index c260d9a05..3cc7b83e3 100644 --- a/app/Nova/MediaUpload.php +++ b/app/Nova/MediaUpload.php @@ -2,12 +2,10 @@ namespace App\Nova; -use App\Nova\Actions\BulkUploadMediaFiles; use Illuminate\Http\Request; use Laravel\Nova\Fields\File; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Text; -use Laravel\Nova\Http\Requests\NovaRequest; class MediaUpload extends Resource { @@ -42,10 +40,6 @@ public function fields(Request $request): array ->nullable() ->help('Optional label to help identify this file in Nova.'), - Text::make('File Name', function () { - return basename((string) $this->file_path); - })->onlyOnIndex(), - File::make('File', 'file_path') ->disk('resources') ->path('nova/uploads') @@ -71,16 +65,4 @@ public function fields(Request $request): array })->onlyOnIndex(), ]; } - - public static function indexQuery(NovaRequest $request, $query) - { - return $query->orderBy('created_at', 'desc'); - } - - public function actions(Request $request): array - { - return [ - new BulkUploadMediaFiles, - ]; - } } diff --git a/app/School.php b/app/School.php index 9d83ec09c..7d21ec019 100644 --- a/app/School.php +++ b/app/School.php @@ -4,7 +4,6 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; -use Spatie\Activitylog\LogOptions; use Spatie\Activitylog\Traits\LogsActivity; /** @@ -50,12 +49,6 @@ public function getDescriptionForEvent(string $eventName): string protected static $logFillable = true; - public function getActivitylogOptions(): LogOptions - { - return LogOptions::defaults() - ->setDescriptionForEvent(fn (string $eventName) => "School {$this->id} has been {$eventName}"); - } - public function path() { return '/school/'.$this->id; From 8b1d0e75a6399c5eb63339f069fab845370830c2 Mon Sep 17 00:00:00 2001 From: Bernard Hanna Date: Mon, 30 Mar 2026 17:05:10 +0100 Subject: [PATCH 2/2] Revert "qc edits" --- app/Nova/Actions/BulkUploadMediaFiles.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/Nova/Actions/BulkUploadMediaFiles.php b/app/Nova/Actions/BulkUploadMediaFiles.php index e4d3c6de9..5c0a8c075 100644 --- a/app/Nova/Actions/BulkUploadMediaFiles.php +++ b/app/Nova/Actions/BulkUploadMediaFiles.php @@ -210,9 +210,8 @@ protected function storeFile(UploadedFile|string $file, string $destination, str $stored = Storage::disk('resources')->put($targetPath, $contents, 'public'); } - // Clean only this temp file. Deleting the whole directory can remove - // sibling files from the same multi-upload batch. - $data->deleteFile(); + // Clean temporary Filepond directory. + $data->deleteDirectory(); return $stored ? $targetPath : null; }