Jason Staack
eec89b802a
feat(14-02): add wireless station table, RF stats card, and links table components
...
- WirelessStationTable: per-station client table with signal/CCQ color coding
- RFStatsCard: per-interface RF environment stats display
- WirelessLinksTable: AP-CPE link topology grouped by AP with state badges
- Shared signalColor helper for consistent signal strength visualization
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-19 06:46:00 -05:00
Jason Staack
430cab98a8
feat(14-01): add site_id device filter, wireless data endpoints, and frontend API clients
...
- Add site_id and sector_id query parameters to devices list endpoint
- Add get_device_registrations and get_device_rf_stats to link_service
- Add RegistrationResponse, RFStatsResponse schemas to link.py
- Add /registrations and /rf-stats endpoints to links router
- Add sectorsApi frontend client (list, create, update, delete, assignDevice)
- Add wirelessApi frontend client (links, registrations, RF stats, unknown clients)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-19 06:42:08 -05:00
Jason Staack
98e328cd66
feat(11-03): add Site column, multi-select bulk assign, and site selector
...
- Add checkbox column and Site column to FleetTable
- Site names link to /tenants/{tenantId}/sites/{siteId}
- Multi-select checkboxes with select-all in header
- Bulk assign action bar with "Assign to site" dialog
- Device detail page includes site selector dropdown with assign/unassign
- Viewers see site name text, operators get a Select dropdown
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:53:06 -05:00
Jason Staack
ddb2b3e43a
feat(11-03): add site_id and site_name to DeviceResponse
...
- Add site_id (Optional[UUID]) and site_name (Optional[str]) to backend DeviceResponse schema
- Include site fields in _build_device_response helper
- Add selectinload(Device.site) to _device_with_relations for eager loading
- Add site_id and site_name to frontend DeviceResponse interface
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:50:57 -05:00
Jason Staack
e8c69fb6a6
feat(11-02): add Sites to sidebar navigation and tenant index page
...
- MapPin icon and Sites nav link in sidebar Fleet section
- Tenant index shows Sites count card in 3-column grid
- "Manage sites" link added to tenant index bottom links
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:46:53 -05:00
Jason Staack
40f2bcd9aa
feat(11-02): add SiteTable, site list page, and site detail page
...
- SiteTable with sortable columns, search, delete confirmation, unassigned row
- Site list page at /tenants/{tenantId}/sites with create/edit dialogs
- Site detail page at /tenants/{tenantId}/sites/{siteId} with health stats
- Route tree regenerated for new site routes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:46:00 -05:00
Jason Staack
3a965e0791
feat(11-02): add sitesApi client and SiteFormDialog component
...
- Sites API client with CRUD, device assignment, and bulk-assign methods
- SiteFormDialog handles create and edit with mutation and cache invalidation
- Form fields: name, address, lat/lng, elevation, notes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:42:56 -05:00
Jason Staack
fee40db073
fix: resolve review issues in DeviceLink rollout
...
- Fix import casing in AuditLogTable (DeviceLink → device-link)
- Remove DeviceLink from BatchConfigPanel device selector (nested interactive)
- Remove DeviceLink from TemplatePushWizard device selector (nested interactive)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:28:17 -05:00
Jason Staack
98c45d92ce
feat(wireless): make device hostnames clickable in wireless page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:24:41 -05:00
Jason Staack
fad52ade89
feat(traffic): make device hostnames clickable in traffic page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:24:10 -05:00
Jason Staack
26e3c90523
feat(vpn): make device hostnames clickable in VPN page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:23:40 -05:00
Jason Staack
a33a0acb35
feat(templates): make device hostnames clickable in template push and progress
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:22:51 -05:00
Jason Staack
4888e94b69
feat(operations): make device hostnames clickable in bulk command wizard
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:22:15 -05:00
Jason Staack
1be47d94fb
feat(config): make device hostnames clickable in batch config
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:21:22 -05:00
Jason Staack
7fc6f23960
feat(certs): make device names clickable in cert table
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:20:29 -05:00
Jason Staack
0c72242e72
feat(firmware): make device hostnames clickable in upgrade progress
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:19:58 -05:00
Jason Staack
213681c4e6
feat(firmware): make device hostnames clickable in firmware page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:19:13 -05:00
Jason Staack
e5a5d735a6
feat(dashboard): make device hostnames clickable in events timeline
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:18:40 -05:00
Jason Staack
7c45b18870
feat(dashboard): make AP hostnames clickable in wireless issues
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:17:58 -05:00
Jason Staack
9718a94d1d
feat(transparency): make device names clickable in transparency log
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:17:14 -05:00
Jason Staack
6713a8cf5b
feat(audit): make device names clickable in audit log
...
Add device_id to the audit log API response and frontend type, then
use DeviceLink to make device hostnames navigable in AuditLogTable.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:16:21 -05:00
Jason Staack
33be7a9522
feat(map): make device hostname clickable in map popup
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:14:27 -05:00
Jason Staack
e8ffbdbf7a
feat(alerts): use DeviceLink for device hostnames
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:13:33 -05:00
Jason Staack
e4b9eeae1d
feat(fleet): make device hostname a clickable link in fleet table
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:12:38 -05:00
Jason Staack
c3bbdb852d
feat(ui): add DeviceLink reusable component
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 11:11:25 -05:00
Jason Staack
f6283cff7c
fix(lint): remove unused FleetDevice import in traffic page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 19:03:31 -05:00
Jason Staack
c455fe4ed5
feat(ui): sweep remaining components for Deep Space consistency
...
Replace old design tokens and hardcoded colors across 29 files:
- bg-primary/text-primary-foreground -> bg-accent/text-white
- text-muted-foreground -> text-text-muted
- text-destructive/bg-destructive -> text-error/bg-error
- bg-muted -> bg-elevated (background usage)
- Hardcoded green/red/yellow/emerald/amber/slate -> semantic tokens
- Remove shadow-md/lg from cards, tooltips, topology nodes
- rounded-xl -> rounded-lg on cards/panels
- focus:ring-1 focus:ring-ring -> focus:border-accent on inputs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 19:00:36 -05:00
Jason Staack
25d4a80b73
feat(ui): polish command palette and login page for Deep Space
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:42:07 -05:00
Jason Staack
4924580a4b
feat(ui): polish remaining pages with Deep Space tokens
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:40:48 -05:00
Jason Staack
133e6e50e4
feat(ui): wire Wireless and Traffic pages to live data
...
Replace placeholder "coming soon" pages with functional implementations
that query the fleet APIs and display real-time wireless issues and
resource consumption data.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:36:44 -05:00
Jason Staack
1800330545
feat: expand config editor menu tree and add WiFi wave2 template
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:27:38 -05:00
Jason Staack
b8797c9b79
chore: remove deprecated Header component (replaced by ContextStrip)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:45:49 -05:00
Jason Staack
bdff65b9cf
chore: remove Geist font files and dependency
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:45:26 -05:00
Jason Staack
64dc6beb11
feat(ui): polish Config Editor with Deep Space styling
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:44:18 -05:00
Jason Staack
8fadfc4d7d
feat(ui): polish device table with Deep Space styling
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:43:31 -05:00
Jason Staack
06ac1b73b6
feat(ui): polish Fleet Overview with Deep Space styling
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:42:44 -05:00
Jason Staack
bea80b354f
feat(ui): add placeholder Wireless and Traffic routes
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:39:51 -05:00
Jason Staack
99215810a9
feat(ui): replace AppLayout with ContextStrip + rebuilt Sidebar
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:39:31 -05:00
Jason Staack
b9bbcf4a45
feat(ui): rebuild Sidebar with Fleet/Config/Admin structure
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:39:12 -05:00
Jason Staack
a10e609c02
feat(ui): add ContextStrip with org switcher, status, and user controls
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:38:24 -05:00
Jason Staack
76d7f5561d
feat(ui): restyle DropdownMenu and Popover
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:34:01 -05:00
Jason Staack
627c5af8da
feat(ui): restyle Select, Badge, Tabs, Checkbox
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:56 -05:00
Jason Staack
d5eaaafcfc
feat(ui): restyle Dialog with Deep Space overlay and borders
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:52 -05:00
Jason Staack
038a988c55
feat(ui): restyle Card — borders over shadows
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:48 -05:00
Jason Staack
b347d4bb89
feat(ui): restyle Input with Deep Space focus behavior
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:43 -05:00
Jason Staack
eea3321e7d
feat(ui): restyle Button with Deep Space variants
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:38 -05:00
Jason Staack
267724ccb6
feat(ui): add Deep Space transition defaults
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:30:52 -05:00
Jason Staack
304844c3ff
feat(ui): update Tailwind theme for Deep Space tokens
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:30:34 -05:00
Jason Staack
e7a5567f0c
feat(ui): replace color tokens with Deep Space palette
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:30:23 -05:00
Jason Staack
258a8fe8b4
feat(ui): swap Geist for Manrope + IBM Plex Mono
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:29:26 -05:00