fix: alles auf eine Adresse, Rueckfrage wieder entfernt
Die Zustandsseite /zentrale/{durchwahl} war ein Fehlgriff. Sie wurde als
"Adresse fuer den Alltag" eingefuehrt und war damit eine zweite URL, die
man sich merken muss. Wer sie nicht hatte, kam nicht mehr aus der Zentrale
heraus: auf /zentrale sah man nur, dass jemand anderes eingetragen ist,
ohne einen Weg zum Freigeben.
Jetzt gibt es genau eine Adresse. Auf /zentrale die eigene Durchwahl
eintragen, und die Seite zeigt die Knoepfe, die fuer diese Person gerade
gelten - derselbe Weg fuehrt zum Uebernehmen und zum Freigeben. Das
Durchwahl-Feld ist immer da, auch wenn die Zentrale besetzt ist, und der
Hilfetext nennt beide Wege.
- /zentrale/{durchwahl} bleibt als Kurzform fuer QR-Codes, leitet aber nur
auf /zentrale?durchwahl=... um
- alle Aktionen leiten auf /zentrale zurueck statt auf eine Unterseite
- der Knopf heisst "Zentrale freigeben" statt "Zurueck auf mein
Tuerschild", weil das die Sicht des Bedienenden ist
- kein Hinweis mehr, sich eine persoenliche Adresse als Lesezeichen zu
merken - das war die Ursache der Verwirrung
Die Bestaetigungsstufe vor dem Verdraengen ist wieder raus, sie war nicht
gewuenscht. Die Unterscheidung der drei Faelle am Knopf bleibt, damit
sichtbar ist, was mit dem bisherigen Besetzer passiert.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+42
-65
@@ -70,8 +70,8 @@
|
||||
<strong>{{ target.name }}</strong>
|
||||
<small class="text-muted">(Segment {{ target.segment }})</small>
|
||||
<hr class="my-2">
|
||||
<small class="text-muted d-block">Aktuell besetzt von</small>
|
||||
{% if occupant %}
|
||||
<small class="text-muted d-block">Aktuell besetzt von</small>
|
||||
<strong class="{% if is_here %}text-primary{% else %}text-success{% endif %}">
|
||||
<i class="bi bi-person-fill"></i> {{ occupant.display_name }}
|
||||
{%- if is_here %} <span class="badge bg-primary">das bist du</span>{% endif %}
|
||||
@@ -80,7 +80,6 @@
|
||||
<div><small class="text-muted">Das ist der Stammplatz dieser Person.</small></div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<small class="text-muted d-block">Aktuell besetzt von</small>
|
||||
<span class="text-muted"><i class="bi bi-person-dash"></i> niemand - die Zentrale ist frei</span>
|
||||
{% endif %}
|
||||
{% if owner_waiting %}
|
||||
@@ -93,30 +92,37 @@
|
||||
</div>
|
||||
|
||||
{% if not user %}
|
||||
{# ── Schritt 1: Wer bist du? ──────────────────────────────────── #}
|
||||
{# ── Eintritt: Durchwahl. Derselbe Weg fuer Uebernehmen und Freigeben. ── #}
|
||||
<form method="get" action="/zentrale">
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Eigene Telefon-Durchwahl</label>
|
||||
<label class="form-label">Deine Telefon-Durchwahl</label>
|
||||
<input type="text" name="durchwahl" class="form-control form-control-lg text-center"
|
||||
inputmode="numeric" autocomplete="off" autofocus required
|
||||
value="{{ extension }}" placeholder="z.B. 123">
|
||||
<small class="text-muted">
|
||||
Im naechsten Schritt siehst du, was du tun kannst - es wird noch nichts geaendert.
|
||||
{% if occupant %}
|
||||
Damit uebernimmst du die Zentrale - oder gibst sie frei, wenn du selbst
|
||||
eingetragen bist. Im naechsten Schritt siehst du, was fuer dich gilt.
|
||||
{% else %}
|
||||
Damit besetzt du die Zentrale. Im naechsten Schritt siehst du, was fuer
|
||||
dich gilt - geaendert wird noch nichts.
|
||||
{% endif %}
|
||||
</small>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary w-100">
|
||||
<i class="bi bi-arrow-right-circle"></i> Weiter
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{% else %}
|
||||
{# ── Schritt 2: Zustand und passende Aktionen ──────────────────── #}
|
||||
{# ── Zustand dieser Person und die passenden Knoepfe ──────────────── #}
|
||||
<div class="text-center mb-3">
|
||||
<small class="text-muted d-block">Durchwahl {{ user.phone_extension }}</small>
|
||||
<strong>{{ user.display_name }}</strong>
|
||||
</div>
|
||||
|
||||
{% if is_owner and is_here %}
|
||||
<div class="alert alert-info py-2">
|
||||
<div class="alert alert-info py-2 mb-0">
|
||||
<small><i class="bi bi-house-check"></i>
|
||||
Die Zentrale ist dein eigener Platz und du sitzt darauf.
|
||||
Hier ist nichts zu tun - jemand anderes kann sie jederzeit uebernehmen,
|
||||
@@ -136,50 +142,17 @@
|
||||
<form method="post" action="/api/zentrale/verlassen" class="mb-2">
|
||||
<input type="hidden" name="extension" value="{{ user.phone_extension }}">
|
||||
<button type="submit" class="btn btn-primary w-100">
|
||||
<i class="bi bi-box-arrow-left"></i> Zurueck auf mein Tuerschild
|
||||
<i class="bi bi-box-arrow-left"></i> Zentrale freigeben
|
||||
</button>
|
||||
</form>
|
||||
{% if home_blocker %}
|
||||
<div class="alert alert-warning py-2 mb-0">
|
||||
<div class="alert alert-warning py-2">
|
||||
<small><i class="bi bi-exclamation-triangle"></i>
|
||||
Achtung: dein Tuerschild ist derzeit {{ home_blocker }} zugeordnet.
|
||||
Die Rueckkehr wird abgelehnt, solange das so ist.</small>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% elif done == 'bestaetigen' and occupant %}
|
||||
{# Zweiter Schritt: verdraengen ist nie ein Versehen #}
|
||||
<div class="alert alert-warning">
|
||||
<strong><i class="bi bi-exclamation-triangle"></i> Wirklich uebernehmen?</strong>
|
||||
<div class="mt-2"><small>
|
||||
<strong>{{ occupant.display_name }}</strong> ist derzeit auf der Zentrale
|
||||
eingetragen. Bitte nur uebernehmen, wenn diese Person den Empfang
|
||||
tatsaechlich verlassen hat.
|
||||
<br>
|
||||
{% if occupant_is_owner %}
|
||||
{{ occupant.display_name }} gehoert auf die Zentrale und kommt automatisch
|
||||
zurueck, sobald du sie wieder freigibst.
|
||||
{% elif occupant_has_home %}
|
||||
{{ occupant.display_name }} wird dabei auf das eigene Tuerschild
|
||||
zurueckgesetzt.
|
||||
{% else %}
|
||||
{{ occupant.display_name }} hat kein eigenes Tuerschild und gehoert damit
|
||||
auf die Zentrale. Die Person wird als Stamm-Besetzer vermerkt und kommt
|
||||
automatisch zurueck, sobald du wieder freigibst.
|
||||
{% endif %}
|
||||
</small></div>
|
||||
</div>
|
||||
<form method="post" action="/api/zentrale/uebernehmen" class="mb-2">
|
||||
<input type="hidden" name="extension" value="{{ user.phone_extension }}">
|
||||
<input type="hidden" name="confirm" value="ja">
|
||||
<button type="submit" class="btn btn-warning w-100">
|
||||
<i class="bi bi-check2-circle"></i> Ja, Zentrale uebernehmen
|
||||
</button>
|
||||
</form>
|
||||
<a href="/zentrale/{{ user.phone_extension }}" class="btn btn-outline-secondary w-100 btn-sm">
|
||||
Abbrechen
|
||||
</a>
|
||||
|
||||
{% else %}
|
||||
<form method="post" action="/api/zentrale/uebernehmen" class="mb-2">
|
||||
<input type="hidden" name="extension" value="{{ user.phone_extension }}">
|
||||
@@ -189,16 +162,14 @@
|
||||
</button>
|
||||
<small class="text-muted">
|
||||
{% if occupant and occupant_is_owner %}
|
||||
{{ occupant.display_name }} sitzt darauf und gehoert dorthin. Nach einer
|
||||
Uebernahme kommt sie oder er automatisch zurueck, sobald du freigibst.
|
||||
Du wirst noch um Bestaetigung gebeten.
|
||||
{{ occupant.display_name }} gehoert auf die Zentrale und kommt automatisch
|
||||
zurueck, sobald du wieder freigibst.
|
||||
{% elif occupant and occupant_has_home %}
|
||||
{{ occupant.display_name }} sitzt darauf und wird dabei auf das eigene
|
||||
Tuerschild zurueckgesetzt. Du wirst noch um Bestaetigung gebeten.
|
||||
{{ occupant.display_name }} wird dabei auf das eigene Tuerschild
|
||||
zurueckgesetzt.
|
||||
{% elif occupant %}
|
||||
{{ occupant.display_name }} sitzt darauf und gehoert auf die Zentrale,
|
||||
kommt also automatisch zurueck, sobald du freigibst.
|
||||
Du wirst noch um Bestaetigung gebeten.
|
||||
{{ occupant.display_name }} hat kein eigenes Tuerschild und gehoert damit
|
||||
auf die Zentrale - kommt also automatisch zurueck, sobald du freigibst.
|
||||
{% else %}
|
||||
Die Zentrale ist frei.
|
||||
{% endif %}
|
||||
@@ -206,11 +177,11 @@
|
||||
</form>
|
||||
|
||||
{% if home %}
|
||||
<form method="post" action="/api/zentrale/verlassen">
|
||||
<form method="post" action="/api/zentrale/verlassen" class="mb-2">
|
||||
<input type="hidden" name="extension" value="{{ user.phone_extension }}">
|
||||
<button type="submit" class="btn btn-outline-secondary w-100 btn-sm">
|
||||
<i class="bi bi-box-arrow-left"></i> Zurueck auf mein Tuerschild
|
||||
</button>
|
||||
<input type="hidden" name="extension" value="{{ user.phone_extension }}">
|
||||
<small class="text-muted">
|
||||
Gemerkt: {{ home.name or home.hostname }}, Segment {{ home.segment }}.
|
||||
</small>
|
||||
@@ -218,23 +189,29 @@
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<div class="text-center mt-3">
|
||||
<a href="/zentrale/{{ user.phone_extension }}" class="text-muted small me-3">
|
||||
<i class="bi bi-arrow-clockwise"></i> Aktualisieren
|
||||
</a>
|
||||
<a href="/zentrale" class="text-muted small">Andere Durchwahl</a>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<small class="text-secondary" style="font-size:0.7rem">
|
||||
Diese Seite als Lesezeichen: <code>/zentrale/{{ user.phone_extension }}</code>
|
||||
</small>
|
||||
</div>
|
||||
{% endif %}
|
||||
{# ── Andere Person: dasselbe Formular, dieselbe Adresse ──────────── #}
|
||||
<hr class="my-3">
|
||||
<form method="get" action="/zentrale" class="row g-2 align-items-end">
|
||||
<div class="col">
|
||||
<label class="form-label mb-1"><small class="text-muted">Andere Durchwahl</small></label>
|
||||
<input type="text" name="durchwahl" class="form-control form-control-sm"
|
||||
inputmode="numeric" autocomplete="off" required placeholder="z.B. 123">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="submit" class="btn btn-outline-secondary btn-sm">Weiter</button>
|
||||
</div>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
<div class="text-center mt-4">
|
||||
<small class="text-secondary" style="font-size:0.65rem">© cynfo GmbH</small>
|
||||
<a href="/zentrale" class="text-muted small">
|
||||
<i class="bi bi-arrow-clockwise"></i> Zentrale-Seite neu laden
|
||||
</a>
|
||||
<div class="mt-2">
|
||||
<small class="text-secondary" style="font-size:0.65rem">© cynfo GmbH</small>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user