From 71807c8815a6276f714f80446912e0eb89e8b520 Mon Sep 17 00:00:00 2001 From: jwed Date: Sun, 21 Jun 2026 20:19:05 -0400 Subject: [PATCH] UniFi: settings tabs are deep-linkable path routes (/settings/{tab}) Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Jh8RnYXrC8E6z79LWs8ggd --- composer.json | 2 +- src/Http/Controllers/UnifiSettingsController.php | 3 ++- src/routes/unifi.php | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 347b960..0486932 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "dashboard/unifi", "description": "UniFi network management, WiFi stats, and captive portal authentication for the Dashboard platform", - "version": "1.13.0", + "version": "1.13.1", "type": "library", "license": "MIT", "autoload": { diff --git a/src/Http/Controllers/UnifiSettingsController.php b/src/Http/Controllers/UnifiSettingsController.php index c63c039..31ebe07 100644 --- a/src/Http/Controllers/UnifiSettingsController.php +++ b/src/Http/Controllers/UnifiSettingsController.php @@ -10,9 +10,10 @@ use Inertia\Inertia; class UnifiSettingsController extends Controller { - public function edit() + public function edit(?string $tab = null) { return Inertia::render('Unifi/Settings', [ + 'activeTab' => $tab, 'controllerUrl' => Setting::get('unifi.controller_url', ''), 'hasApiKey' => (bool) Setting::get('unifi.api_key'), 'site' => Setting::get('unifi.site', 'default'), diff --git a/src/routes/unifi.php b/src/routes/unifi.php index e08e181..e6a929f 100644 --- a/src/routes/unifi.php +++ b/src/routes/unifi.php @@ -69,6 +69,8 @@ Route::middleware(['web', 'auth', 'app.access:unifi']) // ── Settings ───────────────────────────────────────────────────────── Route::middleware('permission:unifi.settings')->group(function () { Route::get('/settings', [UnifiSettingsController::class, 'edit']) ->name('settings'); + Route::get('/settings/{tab}', [UnifiSettingsController::class, 'edit']) + ->where('tab', 'connection|tasks|logs|access')->name('settings.tab'); Route::post('/settings', [UnifiSettingsController::class, 'update']) ->name('settings.update'); Route::post('/settings/test', [UnifiSettingsController::class, 'testConnection'])->name('settings.test'); Route::post('/settings/sites', [UnifiSettingsController::class, 'fetchSites']) ->name('settings.sites');