From f7a98e4fa0f8c320aff6fd1f76c36f06db2b7226 Mon Sep 17 00:00:00 2001 From: Juzaweb Date: Sat, 12 Aug 2023 16:02:34 +0700 Subject: [PATCH] :+1: Make theme setting UI --- .../Controllers/Themes/SettingController.php | 18 ++++++++++++++++-- themes/default-inertia/register.json | 6 +++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/modules/DevTool/Http/Controllers/Themes/SettingController.php b/modules/DevTool/Http/Controllers/Themes/SettingController.php index cf27076f5..9dbbf9855 100644 --- a/modules/DevTool/Http/Controllers/Themes/SettingController.php +++ b/modules/DevTool/Http/Controllers/Themes/SettingController.php @@ -17,6 +17,7 @@ use Inertia\Response; use Juzaweb\CMS\Contracts\LocalThemeRepositoryContract; use Juzaweb\CMS\Interfaces\Theme\ThemeInterface; +use Juzaweb\CMS\Models\ThemeConfig; use Juzaweb\DevTool\Http\Controllers\Controller; class SettingController extends Controller @@ -63,14 +64,27 @@ function ($item) { protected function getSettingFields(ThemeInterface $theme): array { - return collect($theme->getRegister('configs')) + $collection = collect($theme->getRegister('configs')) ->map( function ($item, $key) { if (!is_numeric($key)) { $item['name'] = $key; } + + return $item; + } + ); + + $settings = ThemeConfig::where('theme', $theme->getName()) + ->whereIn('code', $collection->pluck('name')->toArray()) + ->get() + ->keyBy('code'); + + return $collection + ->map( + function ($item) use ($settings) { // Cannot be edit name filed added - $item['nameReadonly'] = true; + $item['nameReadonly'] = $settings->has($item['name']); return $item; } ) diff --git a/themes/default-inertia/register.json b/themes/default-inertia/register.json index 40feee012..8adeafc4a 100644 --- a/themes/default-inertia/register.json +++ b/themes/default-inertia/register.json @@ -71,6 +71,10 @@ "test_config_2": { "label": "Test Config 2", "type": "textarea" + }, + "cxvxcv": { + "label": "Cxvxcv", + "type": "text" } }, "taxonomies": { @@ -84,4 +88,4 @@ "menu_position": "20" } } -} +} \ No newline at end of file