From b88ae3e9186b274a338d9f939018c2ddcd7e240f Mon Sep 17 00:00:00 2001 From: Thorsten Bus Date: Mon, 4 May 2026 00:26:56 +0200 Subject: [PATCH] feat(settings): SettingsController passes assignments, macros, labels, collections to Settings page --- app/Http/Controllers/SettingsController.php | 26 +++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 286fef3..22d29a2 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -2,6 +2,10 @@ namespace App\Http\Controllers; +use App\Models\Label; +use App\Models\Macro; +use App\Models\MacroAssignment; +use App\Models\MacroCollection; use App\Models\Setting; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -10,11 +14,7 @@ class SettingsController extends Controller { - private const MACRO_KEYS = [ - 'macro_name', - 'macro_uuid', - 'macro_collection_name', - 'macro_collection_uuid', + private const AGENDA_KEYS = [ 'agenda_start_title', 'agenda_end_title', 'agenda_announcement_position', @@ -24,19 +24,31 @@ class SettingsController extends Controller public function index(): Response { $settings = []; - foreach (self::MACRO_KEYS as $key) { + foreach (self::AGENDA_KEYS as $key) { $settings[$key] = Setting::get($key); } return Inertia::render('Settings', [ 'settings' => $settings, + 'assignments' => MacroAssignment::with(['macro', 'label'])->orderBy('part_type')->orderBy('order')->get(), + 'macros' => Macro::with('collections')->orderBy('name')->get(), + 'labels' => Label::orderBy('name')->get(), + 'collections' => MacroCollection::with('macros')->orderBy('name')->get(), + 'last_macros_import' => [ + 'at' => Setting::get('macros_last_imported_at'), + 'filename' => Setting::get('macros_last_imported_filename'), + ], + 'last_labels_import' => [ + 'at' => Setting::get('labels_last_imported_at'), + 'filename' => Setting::get('labels_last_imported_filename'), + ], ]); } public function update(Request $request): JsonResponse { $validated = $request->validate([ - 'key' => ['required', 'string', 'in:'.implode(',', self::MACRO_KEYS)], + 'key' => ['required', 'string', 'in:'.implode(',', self::AGENDA_KEYS)], 'value' => ['nullable', 'string', 'max:500'], ]);