fix: organize admin patches and profile menu layering
This commit is contained in:
@@ -8,6 +8,10 @@
|
||||
<link rel="stylesheet" href="/static/css/style.css">
|
||||
<style>
|
||||
.patch-admin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
|
||||
.patch-admin-groups { display:grid; gap:12px; }
|
||||
.patch-admin-group { padding:12px; background:#0b0b0b; border:1px solid var(--border); border-radius:10px; }
|
||||
.patch-admin-group > summary { color:#fca5a5; cursor:pointer; font-size:1.05rem; font-weight:700; }
|
||||
.patch-admin-group .patch-admin-grid { margin-top:14px; }
|
||||
.patch-admin-card { display: grid; gap: 12px; align-content: start; }
|
||||
.patch-preview { width: 140px; height: 140px; object-fit: contain; padding: 4px; background: #242424; border: 2px dashed #78716c; border-radius: 12px; }
|
||||
.patch-placeholder { display: grid; place-items: center; font-size: 2.5rem; }
|
||||
@@ -21,18 +25,25 @@
|
||||
<div class="page-title"><h1>🧵 Patch-Bilder</h1><p>Grafiken für die Patches auf der virtuellen Kutte verwalten.</p></div>
|
||||
{% set admin_section = 'patches' %}{% include '_admin_nav.html' %}
|
||||
<section class="admin-section">
|
||||
<div class="patch-admin-grid">
|
||||
{% for patch in patches %}
|
||||
<article class="admin-row patch-admin-card">
|
||||
{% if patch.image_path %}<img class="patch-preview" src="{{ patch.image_path }}" alt="{{ patch.name }}">{% else %}<div class="patch-preview patch-placeholder">{{ patch.icon }}</div>{% endif %}
|
||||
<div><strong>{{ patch.name }}</strong><div class="admin-meta">{{ patch.description }} · {{ patch.code }}</div></div>
|
||||
<form class="patch-upload" method="post" action="/admin/patches/{{ patch.code }}" enctype="multipart/form-data">
|
||||
<input type="file" name="image" accept="image/jpeg,image/png,image/webp" required>
|
||||
<span class="patch-upload-status">Das Bild wird vor dem Upload automatisch optimiert.</span>
|
||||
<button class="button" type="submit">{% if patch.image_path %}Bild ersetzen{% else %}Bild hochladen{% endif %}</button>
|
||||
</form>
|
||||
{% if patch.image_path %}<form method="post" action="/admin/patches/{{ patch.code }}/delete" onsubmit="return confirm('Patch-Bild entfernen und wieder das Symbol verwenden?');"><button class="admin-danger" type="submit">Bild entfernen</button></form>{% endif %}
|
||||
</article>
|
||||
<div class="patch-admin-groups">
|
||||
{% for group in patch_groups %}
|
||||
<details class="patch-admin-group">
|
||||
<summary>{{ group.label }} · {{ group.patches|length }}</summary>
|
||||
<div class="patch-admin-grid">
|
||||
{% for patch in group.patches %}
|
||||
<article class="admin-row patch-admin-card">
|
||||
{% if patch.image_path %}<img class="patch-preview" src="{{ patch.image_path }}" alt="{{ patch.name }}">{% else %}<div class="patch-preview patch-placeholder">{{ patch.icon }}</div>{% endif %}
|
||||
<div><strong>{{ patch.name }}</strong><div class="admin-meta">{{ patch.description }} · {{ patch.code }}</div></div>
|
||||
<form class="patch-upload" method="post" action="/admin/patches/{{ patch.code }}" enctype="multipart/form-data">
|
||||
<input type="file" name="image" accept="image/jpeg,image/png,image/webp" required>
|
||||
<span class="patch-upload-status">Das Bild wird vor dem Upload automatisch optimiert.</span>
|
||||
<button class="button" type="submit">{% if patch.image_path %}Bild ersetzen{% else %}Bild hochladen{% endif %}</button>
|
||||
</form>
|
||||
{% if patch.image_path %}<form method="post" action="/admin/patches/{{ patch.code }}/delete" onsubmit="return confirm('Patch-Bild entfernen und wieder das Symbol verwenden?');"><button class="admin-danger" type="submit">Bild entfernen</button></form>{% endif %}
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</details>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user