CluPilotCloud/resources/views/livewire/admin
Claude 30a80b6c15 Report the estate from the database, and print the traffic that is sold
Three console pages were fiction. The front page claimed 42 customers, 39
instances, four hosts named pve-fsn-1..3 and €7,842 a month, over a twelve-month
growth curve; the instance list held seven invented machines; the revenue page
reported churn and a trend for a business with no recorded history. All of it
was hard-coded. It read like a running company and measured nothing.

They now read the database. Two figures are gone rather than approximated —
the revenue trend, which needs a monthly history nobody records, and churn,
which needs a base the data cannot supply. ARR stays, labelled as the
projection it is. The green "all systems normal" badge is computed from the
notice list instead of asserted, and the notices themselves come from failed
runs, hosts reporting errors or gone quiet, and monitoring that is down.

Host load is the one number that had to agree with something else: placement
counts the VM disk allocation, ignores a failed instance that never got a VM,
and subtracts the host's reserve. A dashboard doing its own arithmetic would
show a host as comfortable while orders were already being refused on it, so it
uses the host's own accounting — with the filter moved into a scope both share,
and the sum preloaded so listing hosts stays one query.

The instance list drops the Nextcloud version column: that version is not
recorded anywhere, and a column filled with a plausible number is worse than no
column. Statuses the lifecycle writes but nobody had translated no longer
render as "admin.status.failed".

The price sheet also gains the included traffic, which the catalogue has always
carried and the page simply never printed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 04:48:51 +02:00
..
confirm-delete-datacenter.blade.php fix(ui): make modal cancel buttons work; serve the app over the HTTPS domains 2026-07-25 21:24:03 +02:00
confirm-delete-plan-draft.blade.php feat(admin): a console for creating, pricing and scheduling plans 2026-07-26 12:41:51 +02:00
confirm-delete-vpn-peer.blade.php feat(admin): VPN access management with live peer state 2026-07-25 21:38:12 +02:00
confirm-remove-host.blade.php fix(ui): make modal cancel buttons work; serve the app over the HTTPS domains 2026-07-25 21:24:03 +02:00
customers.blade.php feat(admin): administrator access to a customer's Nextcloud 2026-07-26 05:30:59 +02:00
datacenters.blade.php fix(admin): no admin lockout (is_admin fallback); centered modal width; datacenter edit modal + country dropdown 2026-07-25 18:09:17 +02:00
edit-datacenter.blade.php fix(ui): make modal cancel buttons work; serve the app over the HTTPS domains 2026-07-25 21:24:03 +02:00
host-create.blade.php feat(admin): datacenters management (create + select) 2026-07-25 13:25:17 +02:00
host-detail.blade.php feat(admin): host reserve edit + maintenance drain; customer suspend/reactivate 2026-07-25 14:30:21 +02:00
hosts.blade.php feat(admin): scalable host list (search/filter/health) + host detail redesign 2026-07-25 14:27:53 +02:00
instance-admin-access.blade.php feat(admin): administrator access to a customer's Nextcloud 2026-07-26 05:30:59 +02:00
instances.blade.php Report the estate from the database, and print the traffic that is sold 2026-07-27 04:48:51 +02:00
maintenance.blade.php fix(maintenance): make the window form usable 2026-07-25 23:05:33 +02:00
overview.blade.php Report the estate from the database, and print the traffic that is sold 2026-07-27 04:48:51 +02:00
plan-versions.blade.php feat(admin): a console for creating, pricing and scheduling plans 2026-07-26 12:41:51 +02:00
plans.blade.php feat(admin): a console for creating, pricing and scheduling plans 2026-07-26 12:41:51 +02:00
provisioning.blade.php feat(admin): provisioning liveness — per-run progress bar, last-activity, stale warning 2026-07-25 18:11:17 +02:00
revenue.blade.php Report the estate from the database, and print the traffic that is sold 2026-07-27 04:48:51 +02:00
settings.blade.php feat(security): the console decides who may reach it, and the owner keeps the list 2026-07-26 20:27:26 +02:00
vpn-config-access.blade.php feat(vpn): ownership, a Developer role, and password-gated config retrieval 2026-07-25 22:31:54 +02:00
vpn.blade.php feat(vpn): explain a missing download, and offer a way out 2026-07-26 01:20:04 +02:00