refactor: flatten admin routes, redesign core pages, single access tier - #41
Merged
Conversation
Removes role and canAccessVault from the user model, plus the whole per-feature grant system (userFeature table, features.ts, /features page, FEATURE_ROUTES middleware logic). Every approved account is now full-access; the approve/deactivate onboarding gate is unchanged. Vault entries move from an admin-always-reads model to per-entry grants for everyone, with the creator auto-granted on create.
TableHead/TableCell no longer force whitespace-nowrap globally; date and currency columns opt in explicitly where wrapping would look bad. EmptyState replaces the duplicated "not configured" block on the Onshape and GitHub admin pages.
Drops the /admin/* URL prefix. Merges each admin/member page pair into one page: /orders (personal + team + queue), /minecraft (status + whitelist + collapsible server control), /network (status + device management). /finance moves to top-level unchanged. New /members page replaces admin/users + admin/onshape + admin/github as a tabbed view. Sidebar/topnav collapse to one flat nav list now that every route is ungated by role.
Pushes the neutral scale (background/card/muted/border/sidebar) darker to match the docs site's mood; primary/secondary/foreground unchanged. Contrast re-checked at the new values (all ratios >= 5:1). Sign-in page gets a CSS-only layered background (radial color blobs + a slowly drifting dot grid) instead of a flat fill. Dashboard home drops the admin-ops-console layout (stats grid, SystemVitals) for a landing page everyone sees: greeting + clock, live Minecraft/network status tiles, and a quick-links grid to every top-level page.
Dashboard: replace the live-status tiles with an Action Items list (orders needing triage/approval, approved orders awaiting purchase, pending member approvals, open whitelist requests) so the landing page surfaces work to do instead of passive infra stats. Minecraft: merge the personal whitelist-request form and the admin whitelist-management table into one section. Wires up the already-scaffolded but unused whitelistDirectAddSchema/addedDirectly fields into a real POST /api/admin/whitelist endpoint, since the two-step member-request -> admin-approve flow was pure friction now that every approved account can approve. Network: drop the redundant NodeList (device management table already shows everything), restyle the status summary to match the page background instead of a raised card, and replace the OS text column with a small icon next to each device name. Increases left padding on the online/offline dot column. Members: tab switcher is now a prominent primary-colored segmented control with icons instead of the small default Tabs style. Site-wide: TopNav now carries a title + description per route, so every dashboard page drops its own redundant <h1>/<p> header block.
New order: Dashboard, Orders, Finance, Members, API Keys, Network, Minecraft. Quick Access mirrors it, minus Dashboard itself.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Collapses the two-tier permission system to a single access tier. Removes
roleandcanAccessVaultfrom the user model, plus the entire per-feature grant system (userFeaturetable,features.ts,/featurespage,FEATURE_ROUTESmiddleware logic). Every approved account is now full-access; the approve/deactivate onboarding gate is unchanged. Vault entries move from an admin-always-reads model to per-entry grants for everyone, with the creator auto-granted on create.Drops the
/admin/*URL prefix and merges each admin/member page pair into one page:/orders: personal + team + queue/minecraft: status + whitelist + collapsible server control/network: status + device management/finance: moved to top-level unchanged/members: new tabbed page replacing admin/users, admin/onshape, and admin/githubSidebar and top nav collapse to one flat nav list now that every route is ungated by role. Nav order is Dashboard, Orders, Finance, Members, API Keys, Network, Minecraft; Quick Access mirrors it minus Dashboard itself.
Adds
TabsandEmptyStateprimitives.TableHead/TableCellno longer forcewhitespace-nowrapglobally; date and currency columns opt in explicitly where wrapping would look bad.EmptyStatereplaces the duplicated "not configured" block on the Onshape and GitHub admin pages.Darkens the neutral scale (background/card/muted/border/sidebar) to match the docs site; primary/secondary/foreground unchanged, contrast re-checked at the new values (all ratios >= 5:1). Sign-in page gets a CSS-only layered background (radial color blobs + a slowly drifting dot grid). Dashboard home drops the admin-ops-console layout (stats grid,
SystemVitals) for a landing page everyone sees: greeting + clock, live Minecraft/network status tiles, and a quick-links grid to every top-level page.Redesigns per feedback:
whitelistDirectAddSchema/addedDirectlyfields into a realPOST /api/admin/whitelistendpoint since the two-step member-request/admin-approve flow was pure friction now that every approved account can approveNodeList(device management table already shows everything), restyles the status summary to match the page background instead of a raised card, replaces the OS text column with a small icon next to each device name, increases left padding on the online/offline dot columnTabsstyleTopNavnow carries a title + description per route, so every dashboard page drops its own redundant<h1>/<p>header blockReworks order floating windows and adds improved blur/scroll behavior. Adds more finance buckets to the seed script. Refactors staging scripts (
stage-server.sh->stage-server.ts, addscopy-prod-db-for-staging.tsandwipe-staging-sessions.ts).Includes migration
0013_lowly_dagger.sqlfor the schema changes above.