feat(ui): Serverseitig gerenderte Oberflaeche ohne Build-Schritt
Eigenes CSS statt Framework, Vanilla-JavaScript, heller und dunkler Modus. Ohne JavaScript bleibt alles bedienbar; das Liniendiagramm faellt auf eine selbst gezeichnete Balkendarstellung zurueck, wenn das CDN nicht erreichbar ist. Chart.js ist auf eine Version festgelegt und per Subresource Integrity an seinen Hash gebunden. Die Domain-Seite enthaelt eine Schritt-fuer-Schritt-Anleitung fuer DNS, Hosting-Panel und Zertifikat samt Fehlersuche.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Freundliche 404-Seite fuer unbekannte oder deaktivierte Kurzlinks.
|
||||
*
|
||||
* @var string $slug
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="card card--narrow center">
|
||||
<div class="bignum" aria-hidden="true">404</div>
|
||||
<h1>Dieser Kurzlink führt ins Leere</h1>
|
||||
<p class="muted">
|
||||
<?php if (($slug ?? '') !== ''): ?>
|
||||
Für <code>/<?= $e($slug) ?></code> gibt es kein Ziel – der Link wurde entfernt, deaktiviert
|
||||
oder enthält einen Tippfehler.
|
||||
<?php else: ?>
|
||||
Die aufgerufene Adresse gibt es hier nicht.
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
<p class="muted small">Wenn du den Link von jemandem bekommen hast, frag am besten dort noch einmal nach.</p>
|
||||
</div>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @var string|null $detail Nur im Entwicklungsmodus gefuellt.
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="card card--narrow center">
|
||||
<div class="bignum" aria-hidden="true">500</div>
|
||||
<h1>Da ist etwas schiefgelaufen</h1>
|
||||
<p class="muted">Die Anfrage konnte nicht verarbeitet werden. Details stehen im Fehlerprotokoll des Servers.</p>
|
||||
|
||||
<?php if (($detail ?? null) !== null): ?>
|
||||
<pre class="trace"><?= $e($detail) ?></pre>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @var string $title
|
||||
* @var string $message
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="card card--narrow center">
|
||||
<h1><?= $e($title ?? 'Fehler') ?></h1>
|
||||
<p class="muted"><?= $e($message ?? 'Es ist ein Fehler aufgetreten.') ?></p>
|
||||
<p><a class="btn" href="<?= $e($url('/admin/links')) ?>">Zur Übersicht</a></p>
|
||||
</div>
|
||||
Reference in New Issue
Block a user