Skip to content

refactor(admin-dash): blade -> react; ui(admin-dash): fit user dashboard - #72

Closed
itzzjustmateo wants to merge 29 commits into
BlueprintFramework:mainfrom
itzzjustmateo:feat/admin-dash-improvement
Closed

refactor(admin-dash): blade -> react; ui(admin-dash): fit user dashboard#72
itzzjustmateo wants to merge 29 commits into
BlueprintFramework:mainfrom
itzzjustmateo:feat/admin-dash-improvement

Conversation

@itzzjustmateo

Copy link
Copy Markdown
Contributor

WIP: Admin dashboard migration and improvements

- Extend API client with servers, nodes, databases, mounts, buckets CRUD
- Consolidate standalone dashboard micro-app into main SPA
- Add full CRUD for all admin sections: API, Databases, Buckets, Mounts,
  Users, Locations, Nodes, and Servers
- Refactor settings tabs from useEffect to SWR
- Add AdminRouter nav link for Mounts
- Remove standalone admin entry from vite.config.ts
- Fix TypeScript errors (catch types, unused imports, Recharts casts)
…rovement

# Conflicts:
#	resources/scripts/components/layout/sidebar/sidebar-modern.css
#	resources/views/admin/s3/new.blade.php
#	resources/views/admin/s3/view/details.blade.php
#	resources/views/admin/s3/view/index.blade.php
@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

Broken rn

naterfute and others added 9 commits July 20, 2026 02:29
Fixed a bug where when viewing a user React crashed
- Custom compact header with inline badges
- Profile card with gravatar, email, name
- Read-only info tiles with edit-toggle pattern
- Servers tab with server list table
- Enhanced danger zone with icon header
- Pill/segment tab navigation with hugeicons
- Support for ?include=servers in API layer
- Fixed React hooks ordering (error #310)
- Fixed Fractal item response unwrap (no data wrapper)
@itzzjustmateo itzzjustmateo changed the title feat: Admin Dashboard Improvements refactor(admin-dash): blade -> react; ui(admin-dash): fit user dashboard Jul 20, 2026
@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

actively working on it :D

- AdminSettingsContainer: pill/segment tabs with Hugeicons icons
- GeneralSettingsTab: profile card, info tiles, edit-toggle, toasts
- MailSettingsTab: profile card, SMTP config with edit-toggle, toasts
- CaptchaSettingsTab: profile card, provider config, edit-toggle, toasts
- DomainsSettingsTab: profile card, styled table, Dialog.Confirm for delete, toasts
- BrandingSettingsTab: profile card, Dialog.Confirm for revert, toasts
- AdvancedSettingsTab: profile card, HTTP/allocation cards with edit-toggle
- Nest/Egg view pages: also remade with same design patterns
- AdminSettingsController: user-friendly mail test error messages
@Blueberryboom

Copy link
Copy Markdown
Contributor

Looks 🔥 but its buggy as hell

@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

Looks 🔥 but its buggy as hell

Mh… I have no issues currently…? What issues do you have?

@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

@naterfute thanks for keeping it upstream again :p

@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

Gonna fix the tests now :D

@Blueberryboom

Copy link
Copy Markdown
Contributor

Bugs/missing thingies/gripes:

  • The Internal FQDN field is missing from the node configuration.
  • In many places (such as the Nodes page and Server pages), locations, users, and other related items are displayed only by their ID instead of showing their name alongside the ID.
  • Server creation is currently incomplete and creating a server does not work. Several fields are missing, including Allocations, Backup Storage Limit, Overhead Memory, and OOM Killer: to keep the interface clean, some of the less commonly used options could be placed under an Advanced section??
  • The sidebar cannot be opened on mobile devices.
  • No DNS providers are displayed in the Domains settings page.
  • There is no way to search for users when performing actions such as creating a server.
  • There is no option to add a single egg; only bulk nest management is available.

Also a few things that could be worth adding now:

  • "Help" and "Contribute" buttons to the right of the "Overview" header on the main admin page or underneath on mobile that open menus for each respective thing (e.g. help opens a popup with options like "Join the Discord" or "Read the Documentation")
  • Panel version info on the main admin page
  • Maybe search functionality for the user page???

Can't wait to see this merged :D
Hopefully this isn't just my dev env being cursed

@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

Bugs/missing thingies/gripes:

* The Internal FQDN field is missing from the node configuration.

* In many places (such as the Nodes page and Server pages), locations, users, and other related items are displayed only by their ID instead of showing their name alongside the ID.

* Server creation is currently incomplete and creating a server does not work. Several fields are missing, including Allocations, Backup Storage Limit, Overhead Memory, and OOM Killer: to keep the interface clean, some of the less commonly used options could be placed under an Advanced section??

* The sidebar cannot be opened on mobile devices.

* No DNS providers are displayed in the Domains settings page.

* There is no way to search for users when performing actions such as creating a server.

* There is no option to add a single egg; only bulk nest management is available.

Also a few things that could be worth adding now:

* "Help" and "Contribute" buttons to the right of the "Overview" header on the main admin page or underneath on mobile that open menus for each respective thing (e.g. help opens a popup with options like "Join the Discord" or "Read the Documentation")

* Panel version info on the main admin page

* Maybe search functionality for the user page???

Can't wait to see this merged :D Hopefully this isn't just my dev env being cursed

Ah okay lol I actually had the third issue too, the DNS thing got fixed ig, but I can look at it tomorrow again. The server creation in general is messed up and I am remaking that soon-to-be more similar on how it was before. Gonna look into everything :p

Copy PNGs from public/assets/images/ into storage/app/public/nests/
and persist the path to nests.icon during seeding. Extends
NestCreationService::handle() to accept an optional icon key in $data.
Covers Minecraft, Hytale, Source Engine, Rust, Vintage Story, and
Voice Servers nests.
…tion handler fatal error

- Fix all 216 biome lint/formatting errors across 25+ frontend files
  (noLabelWithoutControl, noExplicitAny, noSvgWithoutTitle, useButtonType,
   useTemplate, noUnusedImports, and more)
- Add is_dir() guard in EggSeeder to skip missing egg directories gracefully
- Wrap Connection resolution in Handler::render() with bound() check to
  prevent ReflectionException when DatabaseServiceProvider hasn't booted
…olish containers

- Dashboard: improve resource health section with gradient dividers and better spacing
- Database hosts: catch PDOException in API store/update for user-friendly errors
- Database hosts: convert create modal to Dialog overlay with styled error banner
- Locations: redesign view with pill-style tabs, back arrow, and card layout
- Mounts: add info tooltip with InformationCircleIcon
- Users: redesign create modal with reordered fields, language select, cancel/create footer
- Remove legacy docker-compose.develop.yml and docker-compose.example.yml
@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

I hope I just did not undo anything

itzzjustmateo and others added 5 commits July 24, 2026 13:27
…s history

- Add custom tooltips to ResourceGauge, LoadBarChart, CountsBarChart
- Replace text action buttons with @hugeicons icon buttons across all admin entity pages
- Add @nivo/line chart for metrics timeline with CPU/memory/disk series
- Add PHP metrics history ring buffer endpoint for storing samples
- Increase dashboard section spacing for better visual breathing room
- Standardize icon library usage to @hugeicons across admin panel
…ive mobile/tablet design

- Widget framework: 11 widget types, DashboardDataContext for live SWR data, barrel exports
- DashboardGrid: react-grid-layout v2 responsive wrapper, vertical card stack on mobile
- useDashboardLayout: layout state hook with localStorage + SWR backend persistence
- ChartCard: drag handle, remove button, edit-mode styling, responsive padding
- WidgetSelectorModal: add-widget dialog with responsive grid
- EditModeToggle: customize/done toggle button
- AdminBottomNav: mobile bottom navigation (11 admin routes)
- AdminDashboardContainer: refactored with grid system, responsive headings, dual card/table for recent servers
- SkeletonCards: responsive 2/3/6 column grid with compact mobile padding
- PageContentBlock: responsive background padding

Co-authored-by: opencode <opencode@opencode.ai>
…docs

Backend:
- Fix API key creation: auto-assign user_id from authenticated user
- Fix allocation creation: send ports array instead of singular port

Dashboard:
- Remove widget editing system (drag-drop, add/remove, edit mode)
- Switch dashboard + bottom nav icons from HugeIcons to Gravity UI
- Fix grid: disable dragging, fix tablet overflow, add desktop gap
- Migrate to react-grid-layout v2 API

Servers:
- Complete server creation form (description, overhead memory, backup
  storage, OOM killer, skip scripts) with collapsible advanced section
- Resolve user/node names on server list via SWR lookup maps

Nodes:
- Add internal FQDN to node create, overview, and settings tabs
- Resolve location names on nodes list via SWR lookup map
- Replace alert() with toast() for error handling

Project:
- Add justfile with 31 recipes (dev, build, test, docker, etc.)
- Add mise.toml (PHP 8.4, Node 22, pnpm 11.3, just)
- Rename LICENSE_MIT to LICENSE_MIT.md
- Update README.md with development section and mise/just setup
- Update SECURITY.md with version support table (6.0.0+ only)
- Fix all 7 biome check errors (formatting, import sorting, a11y)
- Add htmlFor/id to OOM Killer and Skip Scripts checkbox labels
- Replace broken .env symlink (→ /app/var/.env) with real .env file
  so mise/vite resolves APP_URL correctly in local dev
- Update mise.toml: PHP 8.5, Node 26, pnpm 11.17, just latest
- Keep composer.json at ^8.4 for backwards compatibility
- Update Dockerfile to PHP 8.5 base image
- Update package.json engines to Node >=26, pnpm@11.17.0
@naterfute

Copy link
Copy Markdown
Member

I'm sorry, but after careful review of all the code. I don't believe this code is of a quality that I would consider merging into the panel. For starter it fails to use many of the components already defined in other parts of the app, and other than that, I'm not against the use of ai, but this doesn't look like foresight was put behind this implementation. I'll start a branch and start working on this. I'm sorry I didn't review it sooner, but I was busy.

@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

oesn't look like foresight was put behind this impleme

Okay... D:

@itzzjustmateo

Copy link
Copy Markdown
Contributor Author

I just wanted to say that I stayed up multiple days, just to finish it, but it is your decision

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants