@include('pos.settings._branches-section')
+ @include('pos.settings._devices-section')
+
@if (! empty($canManageTeam))
@include('pos.settings._team-section')
@endif
diff --git a/resources/views/pos/settings/_devices-section.blade.php b/resources/views/pos/settings/_devices-section.blade.php
new file mode 100644
index 0000000..b6deb63
--- /dev/null
+++ b/resources/views/pos/settings/_devices-section.blade.php
@@ -0,0 +1,35 @@
+
+ @if ($devices->isNotEmpty())
+
+ @foreach ($devices as $device)
+ -
+
+
+ {{ $device->name }}
+
+ {{ $device->isOnline() ? 'Online' : ucfirst($device->status) }}
+
+
+
+ {{ $deviceTypes[$device->type] ?? $device->type }}
+ · {{ $device->location?->name ?? 'All branches' }}
+ @if ($device->last_online_at)
+ · last online {{ $device->last_online_at->diffForHumans() }}
+ @endif
+
+
+ Manage
+
+ @endforeach
+
+ @else
+ No devices yet. Add a register, customer display, kitchen screen, or printer.
+ @endif
+
+
+
diff --git a/routes/web.php b/routes/web.php
index 24797ee..e88a76b 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -153,13 +153,17 @@ Route::middleware(['auth', 'platform.session'])->group(function () {
Route::get('/settings', [SettingsController::class, 'index'])->name('pos.settings');
Route::put('/settings', [SettingsController::class, 'update'])->name('pos.settings.update');
- Route::get('/devices', [DeviceController::class, 'index'])->name('pos.devices.index');
- Route::get('/devices/create', [DeviceController::class, 'create'])->name('pos.devices.create');
- Route::post('/devices', [DeviceController::class, 'store'])->name('pos.devices.store');
- Route::get('/devices/{device}/edit', [DeviceController::class, 'edit'])->name('pos.devices.edit');
- Route::put('/devices/{device}', [DeviceController::class, 'update'])->name('pos.devices.update');
- Route::delete('/devices/{device}', [DeviceController::class, 'destroy'])->name('pos.devices.destroy');
- Route::post('/devices/{device}/regenerate-token', [DeviceController::class, 'regenerateToken'])->name('pos.devices.regenerate-token');
+ Route::get('/settings/devices', [DeviceController::class, 'index'])->name('pos.devices.index');
+ Route::get('/settings/devices/create', [DeviceController::class, 'create'])->name('pos.devices.create');
+ Route::post('/settings/devices', [DeviceController::class, 'store'])->name('pos.devices.store');
+ Route::get('/settings/devices/{device}/edit', [DeviceController::class, 'edit'])->name('pos.devices.edit');
+ Route::put('/settings/devices/{device}', [DeviceController::class, 'update'])->name('pos.devices.update');
+ Route::delete('/settings/devices/{device}', [DeviceController::class, 'destroy'])->name('pos.devices.destroy');
+ Route::post('/settings/devices/{device}/regenerate-token', [DeviceController::class, 'regenerateToken'])->name('pos.devices.regenerate-token');
+ // Legacy /devices URLs → settings
+ Route::redirect('/devices', '/settings/devices');
+ Route::redirect('/devices/create', '/settings/devices/create');
+ Route::get('/devices/{device}/edit', fn (string $device) => redirect("/settings/devices/{$device}/edit"));
Route::get('/settings/branches', [LocationController::class, 'index'])->name('pos.branches.index');
Route::get('/settings/branches/create', [LocationController::class, 'create'])->name('pos.branches.create');