| 2026-06-02 |
Add toast feedback for device reboot in list and detail views
Eugene Sukhodolskiy
committed
13 hours ago
|
Fix area assignment button on detail pages
...
- Rename submitAssign -> submitAssignCore in useAreaAssign composable
to avoid name collision with local page handlers.
- Rename local page handlers -> handleAssignSubmit on Area, Device,
and Script detail pages so event bindings call the wrapper correctly.
- Fix AppEmptyState.vue to forward #action slot into GnEmptyState's
#actions slot so the Assign button renders for unassigned items.
Eugene Sukhodolskiy
committed
13 hours ago
|
Improve AppErrorState with statusCode, type, and copyable details (Phase 4)
...
- Add error prop to AppErrorState accepting normalized client error object
- Show type, statusCode, and errorAlias as inline badges
- Add GnCopyButton to copy JSON-serialized error details to clipboard
- displayMessage falls back to error.message when message prop is omitted
- Update all call sites to pass full error object instead of only .message
- Add tests for error badges, copy button visibility, and clipboard content
Eugene Sukhodolskiy
committed
14 hours ago
|
Add toast notifications for mutations (Phase 3)
...
- Wrap RouterView in GnToastProvider in App.vue
- Replace inline rebootError alert in DeviceDetailPage with toast
- Replace inline resultAlert in ScriptDetailPage and ScriptsActionsPage with toast
- Add success toasts after successful edit, assign, remove, rename, create, setup
- Keep inline GnAlert inside modals for form-level errors
Eugene Sukhodolskiy
committed
15 hours ago
|
Fix critical error handling gaps in page mutations
...
- AreaDetailPage: submitRemove now checks result.ok before redirecting;
replace GnConfirmDialog with GnModal to display remove errors inline.
- DeviceDetailPage: submitRemove now checks result.ok before redirecting;
replace GnConfirmDialog with GnModal. reboot() now awaits and shows
error via inline GnAlert instead of silently failing.
- ScriptDetailPage: toggleState now checks result.ok and shows success/
danger resultAlert feedback instead of ignoring API errors.
All 126 Vitest tests pass.
Eugene Sukhodolskiy
committed
15 hours ago
|
Pack detail-page header actions into GnDropdown component
Eugene Sukhodolskiy
committed
16 hours ago
|
| 2026-06-01 |
Vue client: add shared area assignment to scripts and devices
...
- Add useAreaAssign composable for reusable area assignment logic
- Add AreaBadgeLink and AreaAssignSection shared components
- Integrate area assignment into ScriptDetailPage (actions/regular)
- Integrate area assignment into DeviceDetailPage
- Update scriptsStore with assignToArea / unassignFromArea + reactivity fixes
- Update API modules: scripts.placeInArea, devices.assignToArea
- Update list views: show area badges in actions/regular cards and tables
- Add tests and mock handlers for script area operations
- Update AppShell nav and routes for detail pages
- Add prism-theme.css for code highlighting
- 125 tests passing, build green
Eugene Sukhodolskiy
committed
1 day ago
|