UniFi: settings tabs are deep-linkable path routes (/settings/{tab})

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jh8RnYXrC8E6z79LWs8ggd
This commit is contained in:
2026-06-21 20:19:05 -04:00
parent 462a1a3611
commit 71807c8815
3 changed files with 5 additions and 2 deletions

View File

@@ -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": {

View File

@@ -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'),

View File

@@ -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');