fix: einheitliches Input-Styling (CSS) + Neuen-Benutzer-Formular als aufklappbarer '+'-Button
This commit is contained in:
parent
8227eb5110
commit
fc08649626
22
app.py
22
app.py
|
|
@ -163,10 +163,12 @@ table.tickets tr.row:hover{background:var(--panel2)}
|
||||||
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
|
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
|
||||||
.svc-card{display:flex;justify-content:space-between;align-items:flex-start}
|
.svc-card{display:flex;justify-content:space-between;align-items:flex-start}
|
||||||
.svc-card .badge{padding:2px 9px;border-radius:99px;font-size:11px;background:#1a4a35;color:var(--ok)}
|
.svc-card .badge{padding:2px 9px;border-radius:99px;font-size:11px;background:#1a4a35;color:var(--ok)}
|
||||||
input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{
|
input,textarea,select{
|
||||||
background:var(--bg);border:1px solid var(--border);border-radius:6px;
|
background:var(--bg);border:1px solid var(--border);border-radius:6px;
|
||||||
color:var(--text);padding:8px 10px;font-size:13px;width:100%}
|
color:var(--text);padding:8px 10px;font-size:13px;width:100%}
|
||||||
textarea{min-height:70px;font-family:inherit}
|
textarea{min-height:70px;font-family:inherit}
|
||||||
|
details > summary{list-style:none;cursor:pointer}
|
||||||
|
details > summary::-webkit-details-marker{display:none}
|
||||||
.formrow{margin-bottom:10px}
|
.formrow{margin-bottom:10px}
|
||||||
.formrow label{display:block;font-size:12px;color:var(--sub);margin-bottom:4px}
|
.formrow label{display:block;font-size:12px;color:var(--sub);margin-bottom:4px}
|
||||||
#detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;z-index:40}
|
#detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;z-index:40}
|
||||||
|
|
@ -834,7 +836,10 @@ def _users_body(tenant_id, notice="", form_vals=None):
|
||||||
<th>E-Mail</th><th>Name</th><th>Rolle</th><th>Status</th><th>Telefon</th><th>Quelle</th><th>Letzte Anmeldung</th><th>Aktionen</th>
|
<th>E-Mail</th><th>Name</th><th>Rolle</th><th>Status</th><th>Telefon</th><th>Quelle</th><th>Letzte Anmeldung</th><th>Aktionen</th>
|
||||||
</tr></thead><tbody>%s</tbody></table>""" % ("".join(rows) or "<tr><td colspan='8' class='sz'>Keine Benutzer.</td></tr>")
|
</tr></thead><tbody>%s</tbody></table>""" % ("".join(rows) or "<tr><td colspan='8' class='sz'>Keine Benutzer.</td></tr>")
|
||||||
|
|
||||||
add_form = """<div class="panel"><h3 style="margin-top:0">Neuen Benutzer anlegen</h3>
|
open_attr = " open" if (notice or fv) else ""
|
||||||
|
add_form = """<details%s style="margin-top:16px">
|
||||||
|
<summary class="btn" style="width:auto;display:inline-block">+ Neuen Benutzer</summary>
|
||||||
|
<div class="panel" style="margin-top:10px"><h3 style="margin-top:0">Neuen Benutzer anlegen</h3>
|
||||||
<div class="sz" style="margin-bottom:10px">Manuelle Verwaltung. Eine AD/LDAP-Anbindung ist als naechste Ausbaustufe vorgesehen (Spalte "Quelle" zeigt dann "ldap" statt "local").</div>
|
<div class="sz" style="margin-bottom:10px">Manuelle Verwaltung. Eine AD/LDAP-Anbindung ist als naechste Ausbaustufe vorgesehen (Spalte "Quelle" zeigt dann "ldap" statt "local").</div>
|
||||||
<form method="post" action="/admin/users">
|
<form method="post" action="/admin/users">
|
||||||
<div class="grid-2">
|
<div class="grid-2">
|
||||||
|
|
@ -848,16 +853,17 @@ def _users_body(tenant_id, notice="", form_vals=None):
|
||||||
<div class="hint">Mindestens 10 Zeichen. Der Benutzer sollte das Passwort nach der ersten Anmeldung selbst aendern.</div>
|
<div class="hint">Mindestens 10 Zeichen. Der Benutzer sollte das Passwort nach der ersten Anmeldung selbst aendern.</div>
|
||||||
<h2 class="section-title">Details (optional)</h2>
|
<h2 class="section-title">Details (optional)</h2>
|
||||||
<div class="grid-2">
|
<div class="grid-2">
|
||||||
<div class="formrow"><label>Vorname</label><input name="vorname" value="%s"></div>
|
<div class="formrow"><label>Vorname</label><input type="text" name="vorname" value="%s"></div>
|
||||||
<div class="formrow"><label>Nachname</label><input name="nachname" value="%s"></div>
|
<div class="formrow"><label>Nachname</label><input type="text" name="nachname" value="%s"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid-2">
|
<div class="grid-2">
|
||||||
<div class="formrow"><label>Telefon</label><input name="telefon" value="%s"></div>
|
<div class="formrow"><label>Telefon</label><input type="text" name="telefon" value="%s"></div>
|
||||||
<div class="formrow"><label>Abteilung</label><input name="abteilung" value="%s"></div>
|
<div class="formrow"><label>Abteilung</label><input type="text" name="abteilung" value="%s"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="formrow"><label>Adresse</label><input name="adresse" value="%s"></div>
|
<div class="formrow"><label>Adresse</label><input type="text" name="adresse" value="%s"></div>
|
||||||
<button class="btn" type="submit">Anlegen</button>
|
<button class="btn" type="submit">Anlegen</button>
|
||||||
</form></div>""" % (
|
</form></div></details>""" % (
|
||||||
|
open_attr,
|
||||||
html.escape(fv.get("email", "")),
|
html.escape(fv.get("email", "")),
|
||||||
"selected" if fv.get("role") == "agent" or not fv.get("role") else "",
|
"selected" if fv.get("role") == "agent" or not fv.get("role") else "",
|
||||||
"selected" if fv.get("role") == "admin" else "",
|
"selected" if fv.get("role") == "admin" else "",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue