From 87eb869dad60af5bca40e2ce3f57b8fbae5dade1 Mon Sep 17 00:00:00 2001 From: Hui Yang Date: Thu, 9 Jun 2022 22:22:51 +0800 Subject: [PATCH 1/5] fix field type not found error when build settings models --- src/Providers/FusionServiceProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Providers/FusionServiceProvider.php b/src/Providers/FusionServiceProvider.php index c6486044..4fef2317 100644 --- a/src/Providers/FusionServiceProvider.php +++ b/src/Providers/FusionServiceProvider.php @@ -156,10 +156,10 @@ private function registerAddonManifest() */ private function registerProviders() { + $this->app->register(FieldtypeServiceProvider::class); $this->app->register(BladeServiceProvider::class); $this->app->register(ConfigServiceProvider::class); $this->app->register(EventServiceProvider::class); - $this->app->register(FieldtypeServiceProvider::class); $this->app->register(MenuServiceProvider::class); $this->app->register(SettingServiceProvider::class); $this->app->register(ThemeServiceProvider::class); From 8133d75ce94d1cba322f0121279d4bc56e9a16d9 Mon Sep 17 00:00:00 2001 From: Hui Yang Date: Fri, 28 Apr 2023 12:51:30 +0800 Subject: [PATCH 2/5] let new setting to take effect after the value of setting is updated --- src/Http/Controllers/API/SettingController.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Http/Controllers/API/SettingController.php b/src/Http/Controllers/API/SettingController.php index f52b1574..5dd23d3d 100755 --- a/src/Http/Controllers/API/SettingController.php +++ b/src/Http/Controllers/API/SettingController.php @@ -65,6 +65,9 @@ public function update(SettingRequest $request, Setting $setting) foreach ($setting->blueprint->relationships() as $relationship) { $relationship->type()->persistRelationship($setting->settings, $relationship); } + + // Let new setting to take effect after the value of setting is updated + cache()->flush(); } From 7ecba0c922dd5559f44dd998351e4888015bcdca Mon Sep 17 00:00:00 2001 From: Hui Yang Date: Wed, 5 Jul 2023 17:40:42 +0800 Subject: [PATCH 3/5] fix bug where when setting field value cannot be saved if the field is not required --- src/Console/Actions/SyncSettings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Console/Actions/SyncSettings.php b/src/Console/Actions/SyncSettings.php index 469ed4ae..c8f40bad 100755 --- a/src/Console/Actions/SyncSettings.php +++ b/src/Console/Actions/SyncSettings.php @@ -194,7 +194,7 @@ private function formatSettingOptions($options = []) private function determineValidation($setting): array { if (!isset($setting['required'])) { - return []; + return ['value' => null]; } return $setting['required'] === true ? ['value' => 'required'] : []; From be431aa0db66c201df39c9f80d51d393bc64143d Mon Sep 17 00:00:00 2001 From: Hui Yang Date: Sun, 30 Jun 2024 22:17:26 +0800 Subject: [PATCH 4/5] enable to add field settings for setting field --- src/Console/Actions/SyncSettings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Console/Actions/SyncSettings.php b/src/Console/Actions/SyncSettings.php index c8f40bad..320fa55d 100755 --- a/src/Console/Actions/SyncSettings.php +++ b/src/Console/Actions/SyncSettings.php @@ -147,7 +147,7 @@ public function syncSettingFields(Section $section, $fields = []) 'help' => $item['description'] ?? '', 'order' => ++$order, 'validation' => $this->determineValidation($item), - 'settings' => array_merge($fieldtype->getSettings(), [ + 'settings' => array_merge($fieldtype->getSettings(), ($item['settings'] ?? []), [ 'default' => $item['default'] ?? '', 'override' => $item['override'] ?? false, 'options' => $this->formatSettingOptions($item['options'] ?? []), From 5ddccfc99293842b6b20cbaccabff51f78d266b8 Mon Sep 17 00:00:00 2001 From: Hui Yang Date: Mon, 23 Jun 2025 23:42:10 +0800 Subject: [PATCH 5/5] fix setting field cannot be saved when it is set as non-required --- src/Console/Actions/SyncSettings.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Console/Actions/SyncSettings.php b/src/Console/Actions/SyncSettings.php index 320fa55d..67277b81 100755 --- a/src/Console/Actions/SyncSettings.php +++ b/src/Console/Actions/SyncSettings.php @@ -193,11 +193,10 @@ private function formatSettingOptions($options = []) */ private function determineValidation($setting): array { - if (!isset($setting['required'])) { - return ['value' => null]; + if (isset($setting['required']) && $setting['required'] === true) { + return ['value' => 'required']; } - - return $setting['required'] === true ? ['value' => 'required'] : []; + return ['value' => null]; } /**