P2: Typografie-Hierarchie — Seiten-/Karten-/Tabellen-Header

- h1: text-2xl font-bold text-slate-900
- Karten-h2: text-base font-semibold text-slate-800
- th: text-xs font-medium uppercase tracking-wider text-slate-500
This commit is contained in:
Flo Hartmann
2026-08-26 09:12:22 +00:00
parent f90c0de46d
commit 968333bf45
15 changed files with 76 additions and 76 deletions

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
<p class="text-slate-600 max-w-3xl mb-4"> <p class="text-slate-600 max-w-3xl mb-4">
Sicherungsdatei der Redaktion: Titel, deren Erscheinungs- bzw. Eintragsdatum Sicherungsdatei der Redaktion: Titel, deren Erscheinungs- bzw. Eintragsdatum
mehr als 12 Monate zur&uuml;ckliegt, werden t&auml;glich automatisch aus den mehr als 12 Monate zur&uuml;ckliegt, werden t&auml;glich automatisch aus den
@@ -112,16 +112,16 @@
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]"> <thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
<tr> <tr>
<th class="px-4 py-3 font-medium">Cover</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Cover</th>
<th class="px-4 py-3 font-medium">Spieltitel</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Spieltitel</th>
<th class="px-4 py-3 font-medium">Herkunft</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Herkunft</th>
<th class="px-4 py-3 font-medium">Verlag</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Verlag</th>
<th class="px-4 py-3 font-medium">Jahr / Ausgabe</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Jahr / Ausgabe</th>
<th class="px-4 py-3 font-medium">Status</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Status</th>
<th class="px-4 py-3 font-medium">Rezensent</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Rezensent</th>
<th class="px-4 py-3 font-medium">Archiviert am</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Archiviert am</th>
<th class="px-4 py-3 font-medium">Grund</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Grund</th>
<th class="px-4 py-3 font-medium">Aktionen</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktionen</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %} {% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-1">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-1">{{ titel }}</h1>
<p class="text-slate-600 mb-4 text-sm"> <p class="text-slate-600 mb-4 text-sm">
Protokoll aller relevanten Ereignisse — nur für Administratoren sichtbar. Protokoll aller relevanten Ereignisse — nur für Administratoren sichtbar.
</p> </p>
@@ -65,12 +65,12 @@
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]"> <thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
<tr> <tr>
<th class="px-4 py-2 font-medium whitespace-nowrap">Zeitpunkt</th> <th class="px-4 py-2 font-medium whitespace-nowrap text-xs uppercase tracking-wider">Zeitpunkt</th>
<th class="px-4 py-2 font-medium">Benutzer</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Benutzer</th>
<th class="px-4 py-2 font-medium">Aktion</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Aktion</th>
<th class="px-4 py-2 font-medium">Objekt</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Objekt</th>
<th class="px-4 py-2 font-medium">Änderung / Details</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Änderung / Details</th>
<th class="px-4 py-2 font-medium">IP</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">IP</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel }} &mdash; {{ app_name }}{% endblock %} {% block titel %}{{ titel }} &mdash; {{ app_name }}{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-1">Benachrichtigungen &mdash; Einstellungen</h1> <h1 class="text-2xl font-bold text-slate-900 mb-1">Benachrichtigungen &mdash; Einstellungen</h1>
<p class="text-slate-600 mb-4"> <p class="text-slate-600 mb-4">
W&auml;hlen Sie, &uuml;ber welche Kan&auml;le Sie Benachrichtigungen erhalten. W&auml;hlen Sie, &uuml;ber welche Kan&auml;le Sie Benachrichtigungen erhalten.
Mehrere Kan&auml;le sind gleichzeitig m&ouml;glich. Mehrere Kan&auml;le sind gleichzeitig m&ouml;glich.

View File

@@ -2,7 +2,7 @@
{% block titel %}{{ titel }} &mdash; {{ app_name }}{% endblock %} {% block titel %}{{ titel }} &mdash; {{ app_name }}{% endblock %}
{% block inhalt %} {% block inhalt %}
<div class="flex flex-wrap items-center gap-3 mb-1"> <div class="flex flex-wrap items-center gap-3 mb-1">
<h1 class="text-2xl font-bold">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900">{{ titel }}</h1>
<span class="inline-flex items-center rounded-full px-2.5 py-0.5 text-sm font-medium <span class="inline-flex items-center rounded-full px-2.5 py-0.5 text-sm font-medium
{% if ungelesen %}bg-red-100 text-red-700{% else %}bg-slate-200 text-slate-500{% endif %}"> {% if ungelesen %}bg-red-100 text-red-700{% else %}bg-slate-200 text-slate-500{% endif %}">
{{ ungelesen }} ungelesen {{ ungelesen }} ungelesen

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
<p class="text-slate-600 mb-4"> <p class="text-slate-600 mb-4">
Die Prüfung läuft automatisch bei jeder Eintragung in die Planungsliste. Die Prüfung läuft automatisch bei jeder Eintragung in die Planungsliste.
Hier kann sie auch von Hand für einen Titel ausgeführt werden. Hier kann sie auch von Hand für einen Titel ausgeführt werden.
@@ -27,7 +27,7 @@
</div> </div>
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6"> <div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
<h2 class="font-semibold mb-3">Titel pr&uuml;fen</h2> <h2 class="text-base font-semibold text-slate-800 mb-3">Titel pr&uuml;fen</h2>
<form method="post" action="/dedup/pruefen" class="flex flex-wrap items-end gap-3"> <form method="post" action="/dedup/pruefen" class="flex flex-wrap items-end gap-3">
<div> <div>
<label for="titel" class="block text-xs font-medium text-slate-500 mb-1">Spieltitel *</label> <label for="titel" class="block text-xs font-medium text-slate-500 mb-1">Spieltitel *</label>
@@ -83,16 +83,16 @@
</div> </div>
<div class="bg-white border border-slate-200 rounded-xl shadow-sm overflow-x-auto"> <div class="bg-white border border-slate-200 rounded-xl shadow-sm overflow-x-auto">
<h2 class="font-semibold px-4 pt-4 pb-2">Letzte Pr&uuml;fungen</h2> <h2 class="text-base font-semibold text-slate-800 px-4 pt-4 pb-2">Letzte Pr&uuml;fungen</h2>
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="bg-slate-50 text-left text-slate-500"> <thead class="bg-slate-50 text-left text-slate-500">
<tr> <tr>
<th class="px-4 py-2 font-medium">Zeitpunkt</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Zeitpunkt</th>
<th class="px-4 py-2 font-medium">Titel</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Titel</th>
<th class="px-4 py-2 font-medium">Verlag</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Verlag</th>
<th class="px-4 py-2 font-medium">BGG-ID</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">BGG-ID</th>
<th class="px-4 py-2 font-medium">Gepr&uuml;ft von</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Gepr&uuml;ft von</th>
<th class="px-4 py-2 font-medium">Befund</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Befund</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">Ausgabe bearbeiten</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">Ausgabe bearbeiten</h1>
<p class="text-slate-600 mb-4">&bdquo;{{ ausgabe.name }}&ldquo; &middot; Redaktionsschluss: <p class="text-slate-600 mb-4">&bdquo;{{ ausgabe.name }}&ldquo; &middot; Redaktionsschluss:
{{ ausgabe.redaktionsschluss.strftime('%d.%m.%Y') }} {{ ausgabe.redaktionsschluss.strftime('%d.%m.%Y') }}
</p> </p>

View File

@@ -2,7 +2,7 @@
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<div x-data="{ loeschFormular: null, loeschTitel: '' }"> <div x-data="{ loeschFormular: null, loeschTitel: '' }">
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
<p class="text-slate-600 mb-4"> <p class="text-slate-600 mb-4">
Redaktionsschl&uuml;sse der kommenden Ausgaben. Vier Wochen vor jedem Redaktionsschl&uuml;sse der kommenden Ausgaben. Vier Wochen vor jedem
Redaktionsschluss erhalten alle Rezensenten eine Erinnerung, die noch offene Redaktionsschluss erhalten alle Rezensenten eine Erinnerung, die noch offene
@@ -18,7 +18,7 @@
{% if ist_admin %} {% if ist_admin %}
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6"> <div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
<h2 class="font-semibold mb-3">Neue Ausgabe anlegen</h2> <h2 class="text-base font-semibold text-slate-800 mb-3">Neue Ausgabe anlegen</h2>
<form method="post" action="/erinnerung/ausgaben" class="flex flex-wrap items-end gap-3"> <form method="post" action="/erinnerung/ausgaben" class="flex flex-wrap items-end gap-3">
<div> <div>
<label for="name" class="block text-xs font-medium text-slate-500 mb-1">Name/Titel der Ausgabe *</label> <label for="name" class="block text-xs font-medium text-slate-500 mb-1">Name/Titel der Ausgabe *</label>
@@ -43,11 +43,11 @@
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="bg-slate-50 text-left text-slate-500"> <thead class="bg-slate-50 text-left text-slate-500">
<tr> <tr>
<th class="px-4 py-3 font-medium">Ausgabe</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Ausgabe</th>
<th class="px-4 py-3 font-medium">Redaktionsschluss</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Redaktionsschluss</th>
<th class="px-4 py-3 font-medium">Restzeit</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Restzeit</th>
<th class="px-4 py-3 font-medium">Erinnerungen</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Erinnerungen</th>
{% if ist_admin %}<th class="px-4 py-3 font-medium">Aktionen</th>{% endif %} {% if ist_admin %}<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktionen</th>{% endif %}
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">
@@ -100,7 +100,7 @@
{% if ist_admin %} {% if ist_admin %}
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6 flex flex-wrap items-center gap-3"> <div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6 flex flex-wrap items-center gap-3">
<div class="mr-auto"> <div class="mr-auto">
<h2 class="font-semibold">Sofort pr&uuml;fen</h2> <h2 class="text-base font-semibold text-slate-800">Sofort pr&uuml;fen</h2>
<p class="text-xs text-slate-500">F&uuml;hrt denselben Check aus wie der t&auml;gliche Hintergrund-Job ({{ fenster_tage }} Tage vor dem Redaktionsschluss). Doppelerinnerungen sind ausgeschlossen.</p> <p class="text-xs text-slate-500">F&uuml;hrt denselben Check aus wie der t&auml;gliche Hintergrund-Job ({{ fenster_tage }} Tage vor dem Redaktionsschluss). Doppelerinnerungen sind ausgeschlossen.</p>
</div> </div>
<form method="post" action="/erinnerung/pruefen"> <form method="post" action="/erinnerung/pruefen">
@@ -112,16 +112,16 @@
</div> </div>
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6"> <div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
<h2 class="font-semibold mb-3">Erinnerungsstatus</h2> <h2 class="text-base font-semibold text-slate-800 mb-3">Erinnerungsstatus</h2>
<p class="text-xs text-slate-500 mb-3">Wer wurde f&uuml;r welche Ausgabe wann erinnert? Pro Ausgabe und Benutzer wird h&ouml;chstens einmal erinnert.</p> <p class="text-xs text-slate-500 mb-3">Wer wurde f&uuml;r welche Ausgabe wann erinnert? Pro Ausgabe und Benutzer wird h&ouml;chstens einmal erinnert.</p>
<div class="overflow-x-auto"> <div class="overflow-x-auto">
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="bg-slate-50 text-left text-slate-500"> <thead class="bg-slate-50 text-left text-slate-500">
<tr> <tr>
<th class="px-4 py-3 font-medium">Ausgabe</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Ausgabe</th>
<th class="px-4 py-3 font-medium">Rezensent</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Rezensent</th>
<th class="px-4 py-3 font-medium">Kan&auml;le</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Kan&auml;le</th>
<th class="px-4 py-3 font-medium">Erinnert am</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Erinnert am</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
<p class="text-slate-600 mb-4 max-w-3xl"> <p class="text-slate-600 mb-4 max-w-3xl">
Redaktionslisten als Datei herunterladen: Redaktionslisten als Datei herunterladen:
<strong>CSV</strong> (Semikolon-getrennt, UTF-8 mit BOM &mdash; direkt in Excel <strong>CSV</strong> (Semikolon-getrennt, UTF-8 mit BOM &mdash; direkt in Excel

View File

@@ -55,10 +55,10 @@
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]"> <thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
<tr> <tr>
<th class="px-4 py-3 font-medium">Cover</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Cover</th>
{% set basis = '/neuheiten?q=' ~ (q | urlencode) ~ '&status=' ~ (status_filter | urlencode) %} {% set basis = '/neuheiten?q=' ~ (q | urlencode) ~ '&status=' ~ (status_filter | urlencode) %}
{% for key, label in [('titel', 'Spieltitel'), ('verlag', 'Verlag'), ('autor', 'Autor'), ('jahr', 'Erscheinungsjahr'), ('status', 'Status'), ('aktualisiert', 'Aktualisiert')] %} {% for key, label in [('titel', 'Spieltitel'), ('verlag', 'Verlag'), ('autor', 'Autor'), ('jahr', 'Erscheinungsjahr'), ('status', 'Status'), ('aktualisiert', 'Aktualisiert')] %}
<th class="px-4 py-3 font-medium whitespace-nowrap"> <th class="px-4 py-3 font-medium whitespace-nowrap text-xs uppercase tracking-wider">
{% if sort == key %} {% if sort == key %}
<a href="{{ basis }}&sort={{ key }}&richtung={{ 'auf' if richtung == 'ab' else 'ab' }}" <a href="{{ basis }}&sort={{ key }}&richtung={{ 'auf' if richtung == 'ab' else 'ab' }}"
class="inline-flex items-center gap-1 hover:text-emerald-700">{{ label }} class="inline-flex items-center gap-1 hover:text-emerald-700">{{ label }}
@@ -71,7 +71,7 @@
{% endif %} {% endif %}
</th> </th>
{% endfor %} {% endfor %}
<th class="px-4 py-3 font-medium">Aktion</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktion</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
<p class="text-slate-600 mb-4"> <p class="text-slate-600 mb-4">
Neuheitenliste aus der <a href="https://boardgamegeek.com" class="text-emerald-700 underline">BoardGameGeek</a>-Datenbank. Neuheitenliste aus der <a href="https://boardgamegeek.com" class="text-emerald-700 underline">BoardGameGeek</a>-Datenbank.
Erweiterungen und Prototypen werden beim Sync automatisch gefiltert. Erweiterungen und Prototypen werden beim Sync automatisch gefiltert.
@@ -57,13 +57,13 @@
<table class="w-full text-xs"> <table class="w-full text-xs">
<thead class="text-left text-slate-400"> <thead class="text-left text-slate-400">
<tr> <tr>
<th class="px-2 py-1.5 font-medium">Quelle</th> <th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Quelle</th>
<th class="px-2 py-1.5 font-medium">Status</th> <th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Status</th>
<th class="px-2 py-1.5 font-medium">Letzter Lauf</th> <th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Letzter Lauf</th>
<th class="px-2 py-1.5 font-medium text-right">Neu</th> <th class="px-2 py-1.5 font-medium text-right text-xs uppercase tracking-wider">Neu</th>
<th class="px-2 py-1.5 font-medium text-right">Aktualisiert</th> <th class="px-2 py-1.5 font-medium text-right text-xs uppercase tracking-wider">Aktualisiert</th>
<th class="px-2 py-1.5 font-medium text-right">Gefiltert</th> <th class="px-2 py-1.5 font-medium text-right text-xs uppercase tracking-wider">Gefiltert</th>
<th class="px-2 py-1.5 font-medium">Hinweis</th> <th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Hinweis</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">Eintrag bearbeiten</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">Eintrag bearbeiten</h1>
<p class="text-slate-600 mb-4">„{{ eintrag.titel }}“ &middot; Rezensent: <p class="text-slate-600 mb-4">„{{ eintrag.titel }}“ &middot; Rezensent:
{% if user.id == eintrag.rezensent_id %}du{% else %}{{ user.display_name }}{% endif %} {% if user.id == eintrag.rezensent_id %}du{% else %}{{ user.display_name }}{% endif %}
</p> </p>

View File

@@ -2,7 +2,7 @@
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<div x-data="{ loeschFormular: null, loeschTitel: '' }"> <div x-data="{ loeschFormular: null, loeschTitel: '' }">
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
<p class="text-slate-600 mb-4"> <p class="text-slate-600 mb-4">
Planungsliste der Redaktion: wer reviewt welches Spiel f&uuml;r welche Ausgabe. Planungsliste der Redaktion: wer reviewt welches Spiel f&uuml;r welche Ausgabe.
Jede Eintragung &mdash; aus den Neuheiten verschoben oder h&auml;ndisch nachgetragen &mdash; Jede Eintragung &mdash; aus den Neuheiten verschoben oder h&auml;ndisch nachgetragen &mdash;
@@ -17,7 +17,7 @@
{% endif %} {% endif %}
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6"> <div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
<h2 class="font-semibold mb-3">Titel h&auml;ndisch nachtragen</h2> <h2 class="text-base font-semibold text-slate-800 mb-3">Titel h&auml;ndisch nachtragen</h2>
<!-- Mobil: Felder untereinander vollbreit; ab sm: flexibel nebeneinander --> <!-- Mobil: Felder untereinander vollbreit; ab sm: flexibel nebeneinander -->
<form method="post" action="/planung/neu" class="grid grid-cols-1 gap-3 sm:flex sm:flex-wrap sm:items-end"> <form method="post" action="/planung/neu" class="grid grid-cols-1 gap-3 sm:flex sm:flex-wrap sm:items-end">
<div class="sm:w-64 lg:w-72"> <div class="sm:w-64 lg:w-72">
@@ -137,14 +137,14 @@
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]"> <thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
<tr> <tr>
<th class="px-4 py-3 font-medium">Cover</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Cover</th>
<th class="px-4 py-3 font-medium">Spieltitel</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Spieltitel</th>
<th class="px-4 py-3 font-medium">Verlag</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Verlag</th>
<th class="px-4 py-3 font-medium">Ausgabe</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Ausgabe</th>
<th class="px-4 py-3 font-medium">Rezensent</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Rezensent</th>
<th class="px-4 py-3 font-medium">Status</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Status</th>
<th class="px-4 py-3 font-medium">Aktualisiert</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktualisiert</th>
<th class="px-4 py-3 font-medium">Aktionen</th> <th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktionen</th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %} {% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-2">{{ titel_headline }}</h1> <h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel_headline }}</h1>
<p class="text-slate-600 mb-4"> <p class="text-slate-600 mb-4">
Die automatische Dedup-Pr&uuml;fung hat Treffer ergeben. Bitte pr&uuml;fen, bevor Die automatische Dedup-Pr&uuml;fung hat Treffer ergeben. Bitte pr&uuml;fen, bevor
der Eintrag angelegt wird. der Eintrag angelegt wird.
@@ -41,7 +41,7 @@
<input type="hidden" name="{{ name }}" value="{{ wert }}"> <input type="hidden" name="{{ name }}" value="{{ wert }}">
{% endfor %} {% endfor %}
<h2 class="font-semibold mb-3">Welcher Verlag soll gef&uuml;hrt werden?</h2> <h2 class="text-base font-semibold text-slate-800 mb-3">Welcher Verlag soll gef&uuml;hrt werden?</h2>
<div class="space-y-2 mb-4 text-sm"> <div class="space-y-2 mb-4 text-sm">
{% for option in verlags_optionen %} {% for option in verlags_optionen %}
<label class="flex items-center gap-2 cursor-pointer"> <label class="flex items-center gap-2 cursor-pointer">

View File

@@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block titel %}{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer bearbeiten{% endif %} &mdash; {{ app_name }}{% endblock %} {% block titel %}{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer bearbeiten{% endif %} &mdash; {{ app_name }}{% endblock %}
{% block inhalt %} {% block inhalt %}
<h1 class="text-2xl font-bold mb-4"> <h1 class="text-2xl font-bold text-slate-900 mb-4">
{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer &bdquo;{{ ziel.username }}&ldquo; bearbeiten{% endif %} {% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer &bdquo;{{ ziel.username }}&ldquo; bearbeiten{% endif %}
</h1> </h1>

View File

@@ -2,7 +2,7 @@
{% block titel %}Benutzerverwaltung &mdash; {{ app_name }}{% endblock %} {% block titel %}Benutzerverwaltung &mdash; {{ app_name }}{% endblock %}
{% block inhalt %} {% block inhalt %}
<div class="flex items-center justify-between mb-4"> <div class="flex items-center justify-between mb-4">
<h1 class="text-2xl font-bold">Benutzerverwaltung</h1> <h1 class="text-2xl font-bold text-slate-900">Benutzerverwaltung</h1>
<a href="/admin/benutzer/neu" <a href="/admin/benutzer/neu"
class="bg-emerald-600 hover:bg-emerald-700 active:bg-emerald-800 text-white rounded-lg px-3 py-2 text-sm font-medium min-h-[44px] inline-flex items-center"> class="bg-emerald-600 hover:bg-emerald-700 active:bg-emerald-800 text-white rounded-lg px-3 py-2 text-sm font-medium min-h-[44px] inline-flex items-center">
+ Neuer Benutzer + Neuer Benutzer
@@ -13,12 +13,12 @@
<table class="w-full text-sm"> <table class="w-full text-sm">
<thead class="bg-slate-50 text-left text-slate-500"> <thead class="bg-slate-50 text-left text-slate-500">
<tr> <tr>
<th class="px-4 py-2 font-medium">Benutzername</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Benutzername</th>
<th class="px-4 py-2 font-medium">Anzeigename</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Anzeigename</th>
<th class="px-4 py-2 font-medium">Rolle</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Rolle</th>
<th class="px-4 py-2 font-medium">Status</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Status</th>
<th class="px-4 py-2 font-medium">Erstellt am</th> <th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Erstellt am</th>
<th class="px-4 py-2"></th> <th class="px-4 py-2 text-xs uppercase tracking-wider"></th>
</tr> </tr>
</thead> </thead>
<tbody class="divide-y divide-slate-100"> <tbody class="divide-y divide-slate-100">