new admin design with mnodules

This commit is contained in:
Mark Gregory
2026-07-24 09:35:18 +01:00
parent 5e9f95a5b4
commit c2a19a16e6
28 changed files with 205 additions and 42 deletions
@@ -0,0 +1,7 @@
<?php
namespace Modules\Settings\Http\Controllers;
use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Modules\Settings\Models\Setting;
final class SettingController extends Controller {
public function index(){ $settings=Setting::query()->orderBy('group')->orderBy('key')->get(); return view('settings::index',compact('settings')); }
public function update(Request $request){ $data=$request->validate(['settings'=>['array'],'settings.*'=>['nullable','string','max:5000']]); foreach($data['settings']??[] as $id=>$value){ Setting::whereKey($id)->update(['value'=>$value]); } return back()->with('status','Settings saved.'); }
}
@@ -0,0 +1 @@
<x-layouts.app :title="__('Settings')"><div class="max-w-4xl space-y-6"><div><h1 class="text-2xl font-semibold">Platform settings</h1><p class="mt-1 text-sm text-zinc-500">Shared configuration stored by the Settings module.</p></div>@if(session('status'))<div class="rounded-xl bg-emerald-50 p-3 text-sm text-emerald-800">{{ session('status') }}</div>@endif<form method="POST" action="{{ route('administration.settings.update') }}" class="space-y-4">@csrf @method('PUT')@forelse($settings->groupBy('group') as $group=>$items)<section class="rounded-xl border border-zinc-200 bg-white p-5 dark:border-zinc-700 dark:bg-zinc-900"><h2 class="mb-4 font-semibold capitalize">{{ $group }}</h2><div class="space-y-4">@foreach($items as $setting)<flux:input name="settings[{{ $setting->id }}]" :label="str($setting->key)->replace('_',' ')->title()" :value="$setting->value"/>@endforeach</div></section>@empty<div class="rounded-xl border border-dashed border-zinc-300 p-10 text-center text-sm text-zinc-500">No settings have been registered yet. SEO defaults can be configured from the SEO screen.</div>@endforelse<div class="flex justify-end"><flux:button type="submit" variant="primary">Save settings</flux:button></div></form></div></x-layouts.app>
+2 -4
View File
@@ -1,5 +1,3 @@
<?php
use Illuminate\Support\Facades\Route;
// Module routes are intentionally registered by each feature as it is enabled.
use Illuminate\Support\Facades\Route; use Modules\Settings\Http\Controllers\SettingController;
Route::middleware(['auth','verified'])->prefix('administration/settings')->name('administration.settings.')->group(function (): void { Route::get('/',[SettingController::class,'index'])->name('index'); Route::put('/',[SettingController::class,'update'])->name('update'); });