From e9251862cfb2b2d9bf1563d29a22b127122a27a9 Mon Sep 17 00:00:00 2001 From: pxpm Date: Mon, 14 Jul 2025 12:18:04 +0100 Subject: [PATCH 1/2] wip --- .../Controllers/Admin/CaveCrudController.php | 12 +++ .../Controllers/Admin/DummyCrudController.php | 12 +++ .../Admin/ProductCrudController.php | 6 +- .../Controllers/Admin/StoryCrudController.php | 12 +++ app/Http/Requests/CaveRequest.php | 4 +- app/Http/Requests/DummyRequest.php | 4 +- app/Http/Requests/StoryRequest.php | 4 +- app/PageTemplates.php | 4 +- composer.lock | 98 +++++++++---------- 9 files changed, 99 insertions(+), 57 deletions(-) diff --git a/app/Http/Controllers/Admin/CaveCrudController.php b/app/Http/Controllers/Admin/CaveCrudController.php index b7b791e2c..66b84a1a0 100644 --- a/app/Http/Controllers/Admin/CaveCrudController.php +++ b/app/Http/Controllers/Admin/CaveCrudController.php @@ -18,6 +18,7 @@ class CaveCrudController extends CrudController use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation; + use \Backpack\Pro\Http\Controllers\Operations\AjaxUploadOperation { ajaxUpload as traitAjaxUpload; } /** * Configure the CrudPanel object. Apply settings to all operations. @@ -147,4 +148,15 @@ public static function getMonsterSubfields() return $subfields; } + + public function ajaxUpload() + { + if (app('env') === 'production') { + return response()->json(['errors' => [ + 'message' => 'Uploads are disabled in production.', + ]], 500); + } + + return $this->traitAjaxUpload(); + } } diff --git a/app/Http/Controllers/Admin/DummyCrudController.php b/app/Http/Controllers/Admin/DummyCrudController.php index 64c0a5f7d..771e8b1ec 100644 --- a/app/Http/Controllers/Admin/DummyCrudController.php +++ b/app/Http/Controllers/Admin/DummyCrudController.php @@ -21,6 +21,7 @@ class DummyCrudController extends CrudController use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\FetchOperation; + use \Backpack\Pro\Http\Controllers\Operations\AjaxUploadOperation { ajaxUpload as traitAjaxUpload; } public function setup() { @@ -186,4 +187,15 @@ protected function groups() return $groups; } + + public function ajaxUpload() + { + if (app('env') === 'production') { + return response()->json(['errors' => [ + 'message' => 'Uploads are disabled in production.', + ]], 500); + } + + return $this->traitAjaxUpload(); + } } diff --git a/app/Http/Controllers/Admin/ProductCrudController.php b/app/Http/Controllers/Admin/ProductCrudController.php index b3e1ca961..ce6acbee4 100644 --- a/app/Http/Controllers/Admin/ProductCrudController.php +++ b/app/Http/Controllers/Admin/ProductCrudController.php @@ -17,7 +17,7 @@ class ProductCrudController extends CrudController use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\InlineCreateOperation; - use \Backpack\Pro\Http\Controllers\Operations\DropzoneOperation { dropzoneUpload as traitDropzoneUpload; } + use \Backpack\Pro\Http\Controllers\Operations\AjaxUploadOperation { ajaxUpload as traitAjaxUpload; } public function setup() { @@ -292,7 +292,7 @@ protected function setupUpdateOperation() $this->setupCreateOperation(); } - public function dropzoneUpload() + public function ajaxUpload() { if (app('env') === 'production') { return response()->json(['errors' => [ @@ -301,6 +301,6 @@ public function dropzoneUpload() ], 500); } - return $this->traitDropzoneUpload(); + return $this->traitAjaxUpload(); } } diff --git a/app/Http/Controllers/Admin/StoryCrudController.php b/app/Http/Controllers/Admin/StoryCrudController.php index 95de5bbbd..1c9b8ebeb 100644 --- a/app/Http/Controllers/Admin/StoryCrudController.php +++ b/app/Http/Controllers/Admin/StoryCrudController.php @@ -18,6 +18,7 @@ class StoryCrudController extends CrudController use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation; + use \Backpack\Pro\Http\Controllers\Operations\AjaxUploadOperation { ajaxUpload as traitAjaxUpload; } /** * Configure the CrudPanel object. Apply settings to all operations. @@ -80,4 +81,15 @@ public static function getMonsterSubfields() { return CaveCrudController::getMonsterSubfields(); } + + public function ajaxUpload() + { + if (app('env') === 'production') { + return response()->json(['errors' => [ + 'message' => 'This operation is not available in production.', + ]], 500); + } + + return $this->traitAjaxUpload(); + } } diff --git a/app/Http/Requests/CaveRequest.php b/app/Http/Requests/CaveRequest.php index 3e8099a38..c646d033d 100644 --- a/app/Http/Requests/CaveRequest.php +++ b/app/Http/Requests/CaveRequest.php @@ -27,6 +27,7 @@ public function rules() return [ 'name' => 'required|string', 'monster.*.text' => 'required|string', + 'monster.*.status' => 'required', ]; } @@ -50,7 +51,8 @@ public function attributes() public function messages() { return [ - // + 'monster.*.text.required' => 'The "Monster > Text" field is required.', + 'monster.*.status.required' => 'The "Monster > Status" field is required.', ]; } } diff --git a/app/Http/Requests/DummyRequest.php b/app/Http/Requests/DummyRequest.php index af0ad305b..d97916f9b 100644 --- a/app/Http/Requests/DummyRequest.php +++ b/app/Http/Requests/DummyRequest.php @@ -52,7 +52,9 @@ public function attributes() public function messages() { return [ - // + 'simple.*.text.required' => 'The "Simple > Text" field is required.', + 'simple.*.text.min' => 'The "Simple > Text" field must be at least :min characters long.', + 'simple.*.email.required' => 'The "Simple > Email" field is required.', ]; } } diff --git a/app/Http/Requests/StoryRequest.php b/app/Http/Requests/StoryRequest.php index 43bf2e981..ec508f2ca 100644 --- a/app/Http/Requests/StoryRequest.php +++ b/app/Http/Requests/StoryRequest.php @@ -27,6 +27,7 @@ public function rules() return [ 'name' => 'required|string', 'monsters.*.text' => 'required|string', + 'monsters.*.status' => 'required', ]; } @@ -50,7 +51,8 @@ public function attributes() public function messages() { return [ - // + 'monsters.*.text.required' => 'The "Monsters > Text" field is required.', + 'monsters.*.status.required' => 'The "Monsters > Status" field is required.', ]; } } diff --git a/app/PageTemplates.php b/app/PageTemplates.php index 694af28b3..9884e0292 100644 --- a/app/PageTemplates.php +++ b/app/PageTemplates.php @@ -54,7 +54,7 @@ private function services() $this->crud->addField([ 'name' => 'content', 'label' => 'Content', - 'type' => 'wysiwyg', + 'type' => 'summernote', 'placeholder' => 'Your content here', ]); } @@ -64,7 +64,7 @@ private function about_us() $this->crud->addField([ 'name' => 'content', 'label' => 'Content', - 'type' => 'wysiwyg', + 'type' => 'summernote', 'placeholder' => 'Your content here', ]); } diff --git a/composer.lock b/composer.lock index 806a42729..eccd2a90f 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.349.2", + "version": "3.349.3", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "63cc727845f077d17cb94791deb327249e1626ce" + "reference": "b2d4718786398f47626add9c29840fc416175ef2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/63cc727845f077d17cb94791deb327249e1626ce", - "reference": "63cc727845f077d17cb94791deb327249e1626ce", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b2d4718786398f47626add9c29840fc416175ef2", + "reference": "b2d4718786398f47626add9c29840fc416175ef2", "shasum": "" }, "require": { @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.349.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.349.3" }, - "time": "2025-07-03T18:08:27+00:00" + "time": "2025-07-09T18:10:17+00:00" }, { "name": "backpack/activity-log", @@ -483,16 +483,16 @@ }, { "name": "backpack/crud", - "version": "7.0.0-beta.7", + "version": "7.0.0-beta.8", "source": { "type": "git", "url": "https://github.com/Laravel-Backpack/CRUD.git", - "reference": "81e2317cc2b132b6d7f20bde2f91ce2a7a08b77f" + "reference": "3de5eeb1bc9e911c2ab3bee44064764c9f70b6fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Backpack/CRUD/zipball/81e2317cc2b132b6d7f20bde2f91ce2a7a08b77f", - "reference": "81e2317cc2b132b6d7f20bde2f91ce2a7a08b77f", + "url": "https://api.github.com/repos/Laravel-Backpack/CRUD/zipball/3de5eeb1bc9e911c2ab3bee44064764c9f70b6fe", + "reference": "3de5eeb1bc9e911c2ab3bee44064764c9f70b6fe", "shasum": "" }, "require": { @@ -571,9 +571,9 @@ ], "support": { "issues": "https://github.com/Laravel-Backpack/CRUD/issues", - "source": "https://github.com/Laravel-Backpack/CRUD/tree/7.0.0-beta.7" + "source": "https://github.com/Laravel-Backpack/CRUD/tree/7.0.0-beta.8" }, - "time": "2025-07-08T14:23:43+00:00" + "time": "2025-07-14T11:11:16+00:00" }, { "name": "backpack/editable-columns", @@ -650,12 +650,12 @@ "source": { "type": "git", "url": "https://github.com/Laravel-Backpack/FileManager.git", - "reference": "c78ff4d3e939309af4fbd332587f21a27568f3db" + "reference": "3e5f9ff4055f388338fd56dafa46987c60a79fd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Backpack/FileManager/zipball/c78ff4d3e939309af4fbd332587f21a27568f3db", - "reference": "c78ff4d3e939309af4fbd332587f21a27568f3db", + "url": "https://api.github.com/repos/Laravel-Backpack/FileManager/zipball/3e5f9ff4055f388338fd56dafa46987c60a79fd1", + "reference": "3e5f9ff4055f388338fd56dafa46987c60a79fd1", "shasum": "" }, "require": { @@ -701,7 +701,7 @@ "issues": "https://github.com/Laravel-Backpack/FileManager/issues", "source": "https://github.com/Laravel-Backpack/FileManager/tree/next" }, - "time": "2025-07-08T14:34:10+00:00" + "time": "2025-07-14T09:58:52+00:00" }, { "name": "backpack/language-switcher", @@ -2585,21 +2585,21 @@ }, { "name": "doctrine/dbal", - "version": "4.2.4", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "b37d160498ea91a2382a2ebe825c4ea6254fc0ec" + "reference": "5fe09532be619202d59c70956c6fb20e97933ee3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/b37d160498ea91a2382a2ebe825c4ea6254fc0ec", - "reference": "b37d160498ea91a2382a2ebe825c4ea6254fc0ec", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/5fe09532be619202d59c70956c6fb20e97933ee3", + "reference": "5fe09532be619202d59c70956c6fb20e97933ee3", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3|^1", - "php": "^8.1", + "doctrine/deprecations": "^1.1.5", + "php": "^8.2", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, @@ -2610,7 +2610,7 @@ "phpstan/phpstan": "2.1.17", "phpstan/phpstan-phpunit": "2.0.6", "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "10.5.46", + "phpunit/phpunit": "11.5.23", "slevomat/coding-standard": "8.16.2", "squizlabs/php_codesniffer": "3.13.1", "symfony/cache": "^6.3.8|^7.0", @@ -2671,7 +2671,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.2.4" + "source": "https://github.com/doctrine/dbal/tree/4.3.0" }, "funding": [ { @@ -2687,7 +2687,7 @@ "type": "tidelift" } ], - "time": "2025-06-15T23:15:01+00:00" + "time": "2025-06-16T19:31:04+00:00" }, { "name": "doctrine/deprecations", @@ -3728,16 +3728,16 @@ }, { "name": "laravel/framework", - "version": "v12.19.3", + "version": "v12.20.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "4e6ec689ef704bb4bd282f29d9dd658dfb4fb262" + "reference": "1b9a00f8caf5503c92aa436279172beae1a484ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/4e6ec689ef704bb4bd282f29d9dd658dfb4fb262", - "reference": "4e6ec689ef704bb4bd282f29d9dd658dfb4fb262", + "url": "https://api.github.com/repos/laravel/framework/zipball/1b9a00f8caf5503c92aa436279172beae1a484ff", + "reference": "1b9a00f8caf5503c92aa436279172beae1a484ff", "shasum": "" }, "require": { @@ -3939,7 +3939,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-06-18T12:56:23+00:00" + "time": "2025-07-08T15:02:21+00:00" }, { "name": "laravel/legacy-factories", @@ -3999,16 +3999,16 @@ }, { "name": "laravel/prompts", - "version": "v0.3.5", + "version": "v0.3.6", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1" + "reference": "86a8b692e8661d0fb308cec64f3d176821323077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/57b8f7efe40333cdb925700891c7d7465325d3b1", - "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1", + "url": "https://api.github.com/repos/laravel/prompts/zipball/86a8b692e8661d0fb308cec64f3d176821323077", + "reference": "86a8b692e8661d0fb308cec64f3d176821323077", "shasum": "" }, "require": { @@ -4052,9 +4052,9 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.5" + "source": "https://github.com/laravel/prompts/tree/v0.3.6" }, - "time": "2025-02-11T13:34:40+00:00" + "time": "2025-07-07T14:17:42+00:00" }, { "name": "laravel/serializable-closure", @@ -7423,16 +7423,16 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.92.4", + "version": "1.92.6", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c" + "reference": "afa90e37741a953d33728e7106a1f24a13fdd808" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d20b1969f836d210459b78683d85c9cd5c5f508c", - "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/afa90e37741a953d33728e7106a1f24a13fdd808", + "reference": "afa90e37741a953d33728e7106a1f24a13fdd808", "shasum": "" }, "require": { @@ -7472,7 +7472,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.4" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.6" }, "funding": [ { @@ -7480,7 +7480,7 @@ "type": "github" } ], - "time": "2025-04-11T15:27:14+00:00" + "time": "2025-07-14T08:02:47+00:00" }, { "name": "spatie/laravel-permission", @@ -11496,16 +11496,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.26", + "version": "11.5.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4ad8fe263a0b55b54a8028c38a18e3c5bef312e0" + "reference": "446d43867314781df7e9adf79c3ec7464956fd8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4ad8fe263a0b55b54a8028c38a18e3c5bef312e0", - "reference": "4ad8fe263a0b55b54a8028c38a18e3c5bef312e0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/446d43867314781df7e9adf79c3ec7464956fd8f", + "reference": "446d43867314781df7e9adf79c3ec7464956fd8f", "shasum": "" }, "require": { @@ -11515,7 +11515,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.1", + "myclabs/deep-copy": "^1.13.3", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", @@ -11577,7 +11577,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.26" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.27" }, "funding": [ { @@ -11601,7 +11601,7 @@ "type": "tidelift" } ], - "time": "2025-07-04T05:58:21+00:00" + "time": "2025-07-11T04:10:06+00:00" }, { "name": "sebastian/cli-parser", From 413bcecc3939193b68dd26caaa5c485baa669a99 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Mon, 14 Jul 2025 11:18:25 +0000 Subject: [PATCH 2/2] Apply fixes from StyleCI --- app/Http/Requests/CaveRequest.php | 6 +++--- app/Http/Requests/DummyRequest.php | 4 ++-- app/Http/Requests/StoryRequest.php | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/Http/Requests/CaveRequest.php b/app/Http/Requests/CaveRequest.php index c646d033d..6292cfe84 100644 --- a/app/Http/Requests/CaveRequest.php +++ b/app/Http/Requests/CaveRequest.php @@ -25,8 +25,8 @@ public function authorize() public function rules() { return [ - 'name' => 'required|string', - 'monster.*.text' => 'required|string', + 'name' => 'required|string', + 'monster.*.text' => 'required|string', 'monster.*.status' => 'required', ]; } @@ -51,7 +51,7 @@ public function attributes() public function messages() { return [ - 'monster.*.text.required' => 'The "Monster > Text" field is required.', + 'monster.*.text.required' => 'The "Monster > Text" field is required.', 'monster.*.status.required' => 'The "Monster > Status" field is required.', ]; } diff --git a/app/Http/Requests/DummyRequest.php b/app/Http/Requests/DummyRequest.php index d97916f9b..7395cfe9d 100644 --- a/app/Http/Requests/DummyRequest.php +++ b/app/Http/Requests/DummyRequest.php @@ -52,8 +52,8 @@ public function attributes() public function messages() { return [ - 'simple.*.text.required' => 'The "Simple > Text" field is required.', - 'simple.*.text.min' => 'The "Simple > Text" field must be at least :min characters long.', + 'simple.*.text.required' => 'The "Simple > Text" field is required.', + 'simple.*.text.min' => 'The "Simple > Text" field must be at least :min characters long.', 'simple.*.email.required' => 'The "Simple > Email" field is required.', ]; } diff --git a/app/Http/Requests/StoryRequest.php b/app/Http/Requests/StoryRequest.php index ec508f2ca..fe98bfce6 100644 --- a/app/Http/Requests/StoryRequest.php +++ b/app/Http/Requests/StoryRequest.php @@ -25,8 +25,8 @@ public function authorize() public function rules() { return [ - 'name' => 'required|string', - 'monsters.*.text' => 'required|string', + 'name' => 'required|string', + 'monsters.*.text' => 'required|string', 'monsters.*.status' => 'required', ]; } @@ -51,7 +51,7 @@ public function attributes() public function messages() { return [ - 'monsters.*.text.required' => 'The "Monsters > Text" field is required.', + 'monsters.*.text.required' => 'The "Monsters > Text" field is required.', 'monsters.*.status.required' => 'The "Monsters > Status" field is required.', ]; }