|
tests / pest (push) Failing after 7m50s
Details
tests / assets (push) Successful in 21s
Details
tests / release (push) Has been skipped
Details
Prices. The sheet quoted net, which is the wrong number for one of its two readers: a private customer has no way to add 20 % in their head and no business being surprised by it at checkout. The gross figure is now the big one, with the net underneath for a company's books, and the same rule applies to the module prices further down — a sheet that quotes the package with VAT and the module without it is a sheet whose numbers cannot be added up. The rate is the one on the Finance page, the same one an invoice uses; a percentage written into the template would be the second source that makes the two disagree. "zzgl. einmaliger Einrichtung" had run for months without ever naming a figure, which leaves a visitor knowing only that there is one. It is a field on the Finance page now and prints with the price. Zero removes the sentence — and the comparison card that listed the fee as the honest downside of the offer — rather than admitting to a cost that is not charged. Layout. Four packages in 1120px left each card 202px of text, which is what broke "Bereitstellung in 2-3 Werktagen" over two lines and made the cards look pressed against each other. The pricing section is wider than the rest of the page (only it: the reading columns elsewhere are narrow on purpose, a price sheet is four columns that must be comparable at a glance), the gap between cards is larger, and the delivery line is short enough to fit with whitespace-nowrap to keep it that way. Navigation. VPN moves from Betrieb to System: the tunnel is not a task of the day, it is how the console reaches the estate at all. Settings. The page had grown to three headed sections in one column with the operator's own password somewhere in the middle. It is tabbed now, and two-factor enrolment is one of the tabs instead of a menu entry of its own — it is a setting, and it was the one thing an operator had to leave this page to change about their own access. Same component, no second copy of the enrolment logic; it still answers at its own route because RequireOperatorTwoFactor sends an operator there who may not open anything else yet, this page included. The open tab lives in the query string, so a reload, a bookmark and the back button all land where the operator was. That matters here more than elsewhere: the installation tab refreshes itself while an update runs, and a tab kept only in the component would drop them back to the first one mid-deployment. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Capacity.php | ||
| ConfirmDeleteDatacenter.php | ||
| ConfirmDeleteIncident.php | ||
| ConfirmDeletePlanDraft.php | ||
| ConfirmDeleteVpnPeer.php | ||
| ConfirmDisableTwoFactor.php | ||
| ConfirmEndOtherSessions.php | ||
| ConfirmForgetSecret.php | ||
| ConfirmReissueVpnPeer.php | ||
| ConfirmRemoveHost.php | ||
| ConfirmRestartInstance.php | ||
| ConfirmSaveEnv.php | ||
| ConfirmSaveSecret.php | ||
| Customers.php | ||
| Datacenters.php | ||
| EditDatacenter.php | ||
| EditExportTarget.php | ||
| EditInvoiceSeries.php | ||
| EditPlanFamily.php | ||
| Finance.php | ||
| GrantPlan.php | ||
| HostCreate.php | ||
| HostDetail.php | ||
| Hosts.php | ||
| Incidents.php | ||
| InstanceAdminAccess.php | ||
| Instances.php | ||
| Integrations.php | ||
| Invoices.php | ||
| Mail.php | ||
| Maintenance.php | ||
| Overview.php | ||
| PlanVersions.php | ||
| Plans.php | ||
| Provisioning.php | ||
| Revenue.php | ||
| Sessions.php | ||
| Settings.php | ||
| TwoFactorSetup.php | ||
| Vpn.php | ||
| VpnConfigAccess.php | ||