diff --git a/VERSION b/VERSION index d4c4950..0c00f61 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.9 +1.3.10 diff --git a/app/Http/Controllers/LandingController.php b/app/Http/Controllers/LandingController.php index c244996..f6359f0 100644 --- a/app/Http/Controllers/LandingController.php +++ b/app/Http/Controllers/LandingController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Services\Billing\PlanCatalogue; +use App\Support\ProvisioningSettings; use Illuminate\Contracts\View\View; use Illuminate\Support\Facades\Log; use Throwable; @@ -38,7 +39,12 @@ class LandingController extends Controller 'managed_updates' => 'Updates & Wartung', 'daily_backups' => 'Tägliche Sicherung', 'monitoring' => 'Überwachung rund um die Uhr', - 'subdomain' => 'Adresse auf clupilot.cloud', + // Filled in from the configured zone by label(), because a + // hard-coded domain here is the same two-sources-of-truth mistake + // as a hard-coded price — and it shipped naming clupilot.cloud, a + // domain the company does not own, while provisioning was issuing + // addresses under whatever CLUPILOT_DNS_ZONE said. + 'subdomain' => 'Adresse auf :zone', 'custom_domain' => 'Eigene Domain', 'office' => 'Office im Browser', 'branding' => 'Ihr Logo & Ihre Farben', @@ -73,9 +79,13 @@ class LandingController extends Controller { $offered = array_merge(...array_column($plans, 'features')) ?: []; + // Through label(), like the plans themselves. Compared against the raw + // constant this stopped matching the moment one label gained a + // placeholder, and the row for it would simply have vanished from the + // comparison table — with nothing anywhere saying why. return array_values(array_filter( - self::FEATURES, - fn (string $label) => in_array($label, $offered, true), + array_map(fn (string $key) => $this->label($key), array_keys(self::FEATURES)), + fn (?string $label) => $label !== null && in_array($label, $offered, true), )); } @@ -114,6 +124,22 @@ class LandingController extends Controller return $plans; } + /** + * One feature, in the words a customer uses. + * + * The address the platform hands out is a setting, not a constant — a + * server can be installed against any zone — so the sentence naming it is + * assembled rather than written down twice. + */ + private function label(string $key): ?string + { + $label = self::FEATURES[$key] ?? null; + + return $label === null + ? null + : str_replace(':zone', ProvisioningSettings::dnsZone(), $label); + } + /** Currencies we have a symbol for; anything else prints its ISO code. */ private const SYMBOLS = ['EUR' => '€', 'CHF' => 'CHF', 'USD' => '$', 'GBP' => '£']; @@ -156,7 +182,7 @@ class LandingController extends Controller // the catalogue without a translation would otherwise appear on the // public page as "premium_sla". return array_values(array_filter(array_map( - fn (string $key) => self::FEATURES[$key] ?? null, + fn (string $key) => $this->label($key), $keys, ))); } diff --git a/public/fonts/ibm-plex-sans-latin-700-normal.woff2 b/public/fonts/ibm-plex-sans-latin-700-normal.woff2 new file mode 100644 index 0000000..953f94f Binary files /dev/null and b/public/fonts/ibm-plex-sans-latin-700-normal.woff2 differ diff --git a/resources/views/coming-soon.blade.php b/resources/views/coming-soon.blade.php index 4e82f36..4283586 100644 --- a/resources/views/coming-soon.blade.php +++ b/resources/views/coming-soon.blade.php @@ -73,9 +73,9 @@ and " Cloud", it spaced the brand out into three separate words — which is how the page went out reading "Clu Pilot Cloud". The wordmark is a single element now, and the gap only ever separates it from the mark. */ - .brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:34px} - .brand svg{width:44px;height:44px;flex:none;border-radius:11px} - .word{font-size:22px;font-weight:700;letter-spacing:-.025em;color:var(--ink)} + .brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:34px} + .brand svg{width:36px;height:36px;flex:none} + .word{font-size:20px;font-weight:700;letter-spacing:-.025em;color:var(--ink)} .word span{color:var(--muted);font-weight:600} h1{margin-top:26px;font-weight:700;font-size:clamp(2rem,6vw,2.9rem); diff --git a/resources/views/components/auth/brand.blade.php b/resources/views/components/auth/brand.blade.php index 0dd4e1b..a30efc4 100644 --- a/resources/views/components/auth/brand.blade.php +++ b/resources/views/components/auth/brand.blade.php @@ -18,10 +18,7 @@ -
- - CluPilot -
+

- - - CluPilot - +