Feste Checklisten statt Vorschlaege - in allen vier Bereichen

"Die neuen Sachen in der LIVE-Analyse soll der Creator FEST sehen, auch
schoen kategorisiert, und der Ansprechpartner soll anklicken koennen,
wenn er findet, dass der Creator was verbessern sollte."

DER UMBAU. Vorher waren die Punkte Vorschlaege zum Uebernehmen: Man
holte sie sich und bekam einen eigenen Eintrag. Das war falsch gedacht.
Eine Checkliste, die man erst anfordern muss, ist keine Checkliste --
und schlimmer: Zwei Creator haetten unterschiedliche Listen gehabt, je
nachdem wer sich was geholt hat. Genau das macht einen Vergleich
unmoeglich, und um Vergleich geht es bei einer Betreuung.

Jetzt stehen dieselben Punkte fuer JEDEN fest da, gruppiert:

  LIVE       21 Punkte -- vor, waehrend, nach der Sendung
  Community  14 Punkte -- Moderation vorbereiten, aufbauen, wenn es kippt
  Technik    12 Punkte -- Einrichtung, Ausfall, was geholfen hat
  Content    13 Ideen  -- nach Saeule (70/20/10) statt nach Ablauf

Jede Gruppe hat einen Satz, der erklaert, wofuer sie da ist. Eine
Ueberschrift allein sagt das nicht.

Was sich je Creator unterscheidet, ist nur der STAND -- und den setzt
die Betreuung: "Passt so" oder "Verbessern". Ein Creator kann sich nicht
selbst bewerten; koennte er es, stuende alles auf gruen. "Verbessern"
verlangt einen Satz, WAS zu verbessern ist -- eine Bewertung, mit der er
nichts anfangen kann, ist nicht streng, sondern nur entmutigend.

Der Creator sieht alles: die Stufe, den Grund, den Namen und den
Zeitpunkt. Und er kann an JEDEM Punkt antworten -- das ist der Kanal,
ueber den er ueberhaupt etwas sagen kann.

Oben steht eine Bilanz in einer Zeile: wie viele passen, wie viele sind
zu verbessern, wie viele hat noch niemand angesehen. Das ist die Frage,
die beide Seiten zuerst haben.

STABILE SCHLUESSEL statt Positionen. Ein Stand haengt am Schluessel des
Punktes ("ton-geprueft"), nicht an seiner Nummer. Haenge er an der
Position, waere beim Einfuegen eines Punktes in der Mitte jede Bewertung
dahinter am falschen Punkt -- und niemand wuerde es merken, weil beides
plausibel aussieht. 64 Punkte haben jetzt einen.

"Offen" loescht den Stand, statt ihn auf "offen" zu setzen: Ein
Datensatz, der nichts aussagt, ist Ballast.

ZWEI EIGENE FEHLER, VON DEN PRUEFUNGEN GEFUNDEN:

1. DAS CSS LAG IN DER FALSCHEN DATEI. Ich hatte es in content.css
   geschrieben -- bereich.html laedt die gar nicht. Die Punkte standen
   auf drei von vier Seiten nackt und ohne Flaeche da. Es ist derselbe
   Fehler wie im August bei .knopf-still, .schalter und .kopf-zeile, und
   es gibt seitdem eine Warnung dazu in start.css. Sie hat nichts
   genutzt, solange keine Pruefung sie nachhielt.

   Jetzt gibt es eine: Sie misst, ob eine Karte wirklich eine Kante und
   Polsterung hat -- nicht nur, ob das Element existiert. Gegenprobe
   gemacht: Klasse umbenannt, Pruefung meldet "STIL FEHLT".

2. Ein Betreuer sah beim Oeffnen keine Bewertungsknoepfe, weil noch kein
   Creator gewaehlt war -- und musste erst raten, dass er oben jemanden
   auswaehlen soll. Jetzt nimmt der Server den ersten betreuten Creator,
   wenn keiner angegeben ist.

Die alte Oberflaechenpruefung fuer den Vorschlaege-Block wurde entfernt
statt angepasst: Sie verlangte etwas, das es nicht mehr gibt. Eine
dauerhaft rote Pruefung ist schlimmer als keine -- man gewoehnt sich
daran, und beim naechsten echten Fehler sieht niemand hin.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-01 17:12:55 +02:00
co-authored by Claude Opus 5
parent 372a0eb95a
commit 9267797d1d
33 changed files with 1473 additions and 279 deletions
+203
View File
@@ -1818,3 +1818,206 @@ body.start #protokoll {
text-transform: none; letter-spacing: normal;
font-weight: 400; color: var(--text-still);
}
/* Die Checkliste steht auf VIER Seiten (LIVE, Community, Technik,
Content-Ideen). Ihr Stil gehoert deshalb hierher und nicht in eine
Seitendatei -- genau diesen Fehler habe ich beim ersten Anlauf
gemacht: Der Block lag in content.css, und bereich.html laedt die
gar nicht. Die Punkte standen dort nackt und ohne Flaeche da.
Es ist derselbe Fehler wie im August bei .knopf-still, .schalter und
.kopf-zeile. Deshalb steht die Warnung weiter oben in dieser Datei --
und deshalb hat sie nichts genutzt, solange keine Pruefung sie
nachhaelt. Jetzt gibt es eine (pruef-checkliste.mjs misst, ob die
Punkte wirklich eine Kante haben). */
/* =====================================================================
DIE FESTE CHECKLISTE
Steht auf jeder der vier Seiten (LIVE, Community, Technik,
Content-Ideen) und sieht ueberall gleich aus -- es ist dieselbe Sache.
Drei Zustaende, drei Farben. "Verbessern" ist bewusst warnend und
nicht rot: Es ist eine Aufgabe, kein Fehler. Rot waere eine
Beschuldigung.
===================================================================== */
.liste-fest { margin: 20px 0 30px; }
.liste-fest__kopf {
display: flex; align-items: flex-end; justify-content: space-between;
gap: 16px; flex-wrap: wrap; margin-bottom: 14px;
}
.liste-fest__unter {
margin: 4px 0 0; max-width: 70ch;
font-size: .87rem; line-height: 1.55; color: var(--text-leise);
}
.liste-fest__wahl { display: grid; gap: 4px; min-width: 0; }
/* ---------- Die Bilanz oben ---------------------------------------------
Wie viele Punkte passen, wie viele sind zu verbessern, wie viele hat
noch niemand angesehen. Das ist die Frage, die beide Seiten zuerst
haben -- deshalb steht sie vor der Liste und nicht darunter. */
.liste-fest__bilanz {
display: grid; gap: 9px;
grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
margin-bottom: 20px;
}
.bilanz-zahl {
--b-ton: #6f89a8;
display: flex; align-items: baseline; gap: 9px;
padding: 12px 15px;
border: 1px solid color-mix(in srgb, var(--b-ton) 26%, var(--rand));
border-radius: var(--radius-klein);
background:
linear-gradient(180deg, color-mix(in srgb, var(--b-ton) 9%, transparent), transparent 60%),
var(--flaeche);
}
.bilanz-zahl[data-stufe="gut"] { --b-ton: #4dab77; }
.bilanz-zahl[data-stufe="verbessern"] { --b-ton: #e0a33c; }
.bilanz-zahl[data-stufe="offen"] { --b-ton: #6f89a8; }
.bilanz-zahl__n {
font-size: 1.6rem; font-weight: 700; line-height: 1;
color: var(--b-ton); font-variant-numeric: tabular-nums;
}
.bilanz-zahl__text { font-size: .82rem; color: var(--text-leise); }
/* ---------- Die Gruppen -------------------------------------------------- */
.fest-gruppe { margin-bottom: 24px; }
.fest-gruppe__kopf { display: flex; align-items: baseline; gap: 10px; }
.fest-gruppe__name {
margin: 0; font-size: .96rem; font-weight: 650; color: var(--text);
}
.fest-gruppe__zahl {
padding: 1px 8px;
border: 1px solid var(--rand); border-radius: 999px;
font-size: .72rem; color: var(--text-still);
font-variant-numeric: tabular-nums;
}
.fest-gruppe__text {
margin: 4px 0 12px; max-width: 68ch;
font-size: .84rem; line-height: 1.5; color: var(--text-still);
}
.fest-punkte { display: grid; gap: 9px; }
/* ---------- Ein Punkt ---------------------------------------------------- */
.fest-punkt {
--p-ton: #6f89a8;
position: relative; overflow: hidden;
padding: 13px 15px 12px;
border: 1px solid color-mix(in srgb, var(--p-ton) 22%, var(--rand));
border-radius: var(--radius-klein);
background:
linear-gradient(90deg, color-mix(in srgb, var(--p-ton) 7%, transparent), transparent 52%),
var(--flaeche);
}
.fest-punkt::before {
content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
background: linear-gradient(180deg, var(--p-ton),
color-mix(in srgb, var(--p-ton) 30%, transparent));
}
.fest-punkt[data-stufe="gut"] { --p-ton: #4dab77; }
/* Warnend, nicht rot: Es ist eine Aufgabe, kein Fehler. Rot waere eine
Beschuldigung. */
.fest-punkt[data-stufe="verbessern"] { --p-ton: #e0a33c; }
.fest-punkt[data-stufe="offen"] { --p-ton: #6f89a8; }
.fest-punkt__kopf {
display: flex; align-items: flex-start; justify-content: space-between;
gap: 13px;
}
.fest-punkt__text { min-width: 0; }
.fest-punkt__titel {
margin: 0 0 5px; font-size: .93rem; font-weight: 650; color: var(--text);
}
.fest-punkt__beschreibung {
margin: 0; font-size: .84rem; line-height: 1.5; color: var(--text-leise);
}
/* Der Aufhaenger bei Content-Ideen -- die ersten Sekunden entscheiden,
deshalb steht er hervorgehoben und nicht im Fliesstext. */
.fest-punkt__hook {
margin: 0 0 7px; padding: 8px 11px;
border-left: 2px solid var(--ton, var(--akzent));
border-radius: 0 6px 6px 0;
background: color-mix(in srgb, var(--ton, var(--akzent)) 9%, transparent);
font-size: .87rem; line-height: 1.45; color: var(--text);
}
.fest-punkt__hookschild {
display: block; margin-bottom: 2px;
font-size: .66rem; letter-spacing: .12em; text-transform: uppercase;
color: var(--ton, var(--akzent));
}
.fest-punkt__marke {
display: inline-block; margin-top: 8px; padding: 2px 9px;
border: 1px solid var(--rand); border-radius: 999px;
font-size: .72rem; color: var(--text-still);
}
.fest-punkt__marke-stufe {
flex: none; padding: 3px 11px;
border: 1px solid color-mix(in srgb, var(--p-ton) 36%, transparent);
border-radius: 999px;
background: color-mix(in srgb, var(--p-ton) 12%, transparent);
color: var(--p-ton);
font-size: .73rem; font-weight: 600; white-space: nowrap;
}
/* Der Grund in voller Breite -- "verbessern" ohne Grund ist nicht
umsetzbar, nur entmutigend. Er darf nicht in eine Ecke. */
.fest-punkt__grund {
margin-top: 10px; padding: 9px 12px;
border-left: 2px solid var(--p-ton);
border-radius: 0 6px 6px 0;
background: color-mix(in srgb, var(--p-ton) 9%, transparent);
}
.fest-punkt__grund p { margin: 0; font-size: .86rem; line-height: 1.5; color: var(--text); }
.fest-punkt__von {
display: block; margin-top: 4px;
font-size: .74rem; color: var(--text-still);
}
.fest-punkt__fuss {
display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
margin-top: 11px;
}
.stufe-knopf {
padding: 6px 13px;
border: 1px solid var(--rand); border-radius: 999px;
background: rgba(0, 0, 0, .2);
color: var(--text-still);
font: inherit; font-size: .8rem; cursor: pointer;
transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.stufe-knopf[data-stufe="gut"]:hover,
.stufe-knopf[data-stufe="gut"][data-an="ja"] {
border-color: rgba(77, 171, 119, .5); color: #6fbd95;
background: rgba(77, 171, 119, .13);
}
.stufe-knopf[data-stufe="verbessern"]:hover,
.stufe-knopf[data-stufe="verbessern"][data-an="ja"] {
border-color: rgba(224, 163, 60, .5); color: #e0b45c;
background: rgba(224, 163, 60, .13);
}
.fest-punkt__fuss .schritt { margin-left: auto; }
.punkt-gespraech {
margin-top: 11px; padding: 12px 13px;
border: 1px solid var(--rand); border-radius: var(--radius-klein);
background: rgba(0, 0, 0, .2);
}
@media (max-width: 560px) {
.liste-fest__kopf { flex-direction: column; align-items: stretch; }
.fest-punkt__kopf { flex-direction: column; }
.fest-punkt__marke-stufe { align-self: flex-start; }
.fest-punkt__fuss .schritt { margin-left: 0; }
.stufe-knopf { flex: 1 1 auto; text-align: center; }
}
/* Die neuen Klassen der festen Checkliste in der Mindestgroesse fuer
das Handy -- gemeldet von der Geraetepruefung (10,56 px beim
Aufhaenger-Schild). Wer kuenftig eine kleine Marke baut, faellt ihr
ebenfalls auf und landet hier. */
@media (max-width: 760px) {
body.start .fest-punkt__hookschild,
body.start .fest-punkt__marke,
body.start .fest-punkt__von,
body.start .fest-gruppe__zahl { font-size: .75rem; }
}
+13 -9
View File
@@ -205,17 +205,21 @@
Welcher Abschnitt gezeigt wird, richtet sich nach dem gewaehlten
Filter. Ohne Filter die Vorbereitung -- das ist der Teil, ohne den
die anderen beiden gar nicht erst sinnvoll sind. */
/* Die FESTE Liste -- nicht mehr Vorschlaege zum Uebernehmen.
Der Unterschied ist grundlegend: Eine Liste, die man sich erst
holen muss, ist keine Checkliste. Und zwei Creator haetten
unterschiedliche Listen gehabt, je nachdem wer sich was geholt
hat -- was einen Vergleich unmoeglich macht, und um Vergleich
geht es bei einer Betreuung.
Jetzt stehen dieselben Punkte fuer alle fest da, gruppiert. Was
sich unterscheidet, ist der Stand je Creator. */
async function vorlagenZeigen() {
const behaelter = $('vorlagen');
if (!behaelter || bereich !== 'live' || !window.vorlagenBlock) return;
const abschnitt = ['vorbereitung', 'mitschrift', 'auswertung'].includes(filter)
? filter : 'vorbereitung';
await window.vorlagenBlock(behaelter, {
art: 'live',
unterart: abschnitt,
creatorId: creatorWahl(),
danach: laden,
});
if (!behaelter || !window.checkliste) return;
if (!['live', 'community', 'technik'].includes(bereich)) return;
await window.checkliste(behaelter, bereich);
}
/* Fuer wen wird uebernommen? Ein Creator immer fuer sich (der Server
+318
View File
@@ -0,0 +1,318 @@
/* ===================================================================
Die feste Checkliste — steht immer da, für jeden gleich.
Ersetzt die vorherigen "Vorschläge zum Übernehmen". Der Unterschied
ist grundlegend: Eine Liste, die man sich erst holen muss, ist keine
Checkliste. Und zwei Creator hätten unterschiedliche Listen gehabt,
je nachdem, wer sich was geholt hat -- was einen Vergleich unmöglich
macht, und um Vergleich geht es bei einer Betreuung.
Jetzt: dieselben Punkte für alle, gruppiert. Was sich unterscheidet,
ist der STAND je Creator -- und den setzt die Betreuung.
Drei Zustände, drei Farben:
offen noch nicht angesehen
gut passt so
verbessern mit dem Satz, WAS zu verbessern ist
Der Creator sieht alles, kann aber nichts davon setzen. Antworten
kann er -- über die Nachrichten an jedem Punkt.
=================================================================== */
(() => {
'use strict';
const el = (tag, klasse, text) => {
const k = document.createElement(tag);
if (klasse) k.className = klasse;
if (text !== undefined) k.textContent = text;
return k;
};
async function hole(pfad, optionen = {}) {
const a = await fetch(pfad, { credentials: 'same-origin', ...optionen });
if (a.status === 401) { location.assign('/workspace/'); throw new Error('abgemeldet'); }
return a;
}
const wann = (iso) => (iso
? new Date(iso).toLocaleString('de-DE',
{ day: '2-digit', month: '2-digit', hour: '2-digit', minute: '2-digit' })
: '');
/* Welcher Creator wird gerade angesehen -- bleibt über Neuaufbauten
hinweg stehen, sonst springt die Auswahl bei jeder Bewertung zurück
auf den ersten. */
const gewaehlt = {};
window.checkliste = async function (behaelter, bereich) {
if (!behaelter) return;
let daten;
try {
const wahl = gewaehlt[bereich] ? `?creator_id=${gewaehlt[bereich]}` : '';
const a = await hole(`/workspace/api/checkliste/${bereich}${wahl}`);
if (!a.ok) return;
daten = await a.json();
} catch { return; }
behaelter.textContent = '';
const block = el('section', 'liste-fest');
/* ---- Kopf ---- */
const kopf = el('div', 'liste-fest__kopf');
const t = el('div', null);
t.append(el('p', 'feldschild', 'Feste Punkte'));
t.append(el('p', 'liste-fest__unter',
daten.darf_bewerten
? 'Diese Punkte gelten für alle. Markiere, was gut läuft und was der '
+ 'Creator noch verbessern sollte – er sieht es sofort.'
: 'Diese Punkte gelten für alle. Deine Betreuung markiert hier, was gut '
+ 'läuft und was du noch verbessern solltest. Antworten kannst du an '
+ 'jedem Punkt.'));
kopf.append(t);
if (daten.darf_bewerten && daten.creatoren.length) {
const feld = el('div', 'liste-fest__wahl');
feld.append(el('label', 'feld-schild', 'Creator'));
const s = el('select');
for (const c of daten.creatoren) s.append(new Option(c.name, String(c.id)));
if (daten.creator_id) s.value = String(daten.creator_id);
s.addEventListener('change', () => {
gewaehlt[bereich] = Number(s.value);
window.checkliste(behaelter, bereich);
});
feld.append(s);
kopf.append(feld);
if (!gewaehlt[bereich] && daten.creatoren.length) {
gewaehlt[bereich] = Number(s.value);
}
}
block.append(kopf);
/* ---- Fortschritt in einer Zeile ----
Wie viele Punkte sind angesehen, wie viele stehen auf "noch
verbessern"? Das ist die Frage, die beide zuerst haben. */
const alle = daten.gruppen.flatMap((g) => g.punkte);
const zuTun = alle.filter((p) => daten.stand[p.schluessel]?.stufe === 'verbessern').length;
const gut = alle.filter((p) => daten.stand[p.schluessel]?.stufe === 'gut').length;
if (daten.creator_id || !daten.darf_bewerten) {
const bilanz = el('div', 'liste-fest__bilanz');
bilanz.append(zahl(gut, 'passt so', 'gut'));
bilanz.append(zahl(zuTun, zuTun === 1 ? 'zu verbessern' : 'zu verbessern', 'verbessern'));
bilanz.append(zahl(alle.length - gut - zuTun, 'noch offen', 'offen'));
block.append(bilanz);
}
/* ---- Die Gruppen ---- */
for (const g of daten.gruppen) {
const abschnitt = el('section', 'fest-gruppe');
const gk = el('div', 'fest-gruppe__kopf');
gk.append(el('h3', 'fest-gruppe__name', g.name));
gk.append(el('span', 'fest-gruppe__zahl', String(g.punkte.length)));
abschnitt.append(gk);
if (g.text) abschnitt.append(el('p', 'fest-gruppe__text', g.text));
const liste = el('div', 'fest-punkte');
for (const p of g.punkte) {
liste.append(punktBauen(p, daten, bereich, behaelter));
}
abschnitt.append(liste);
block.append(abschnitt);
}
behaelter.append(block);
behaelter.hidden = false;
};
function zahl(n, text, stufe) {
const k = el('div', 'bilanz-zahl');
k.dataset.stufe = stufe;
k.append(el('span', 'bilanz-zahl__n', String(n)));
k.append(el('span', 'bilanz-zahl__text', text));
return k;
}
function punktBauen(p, daten, bereich, behaelter) {
const stand = daten.stand[p.schluessel];
const stufe = stand?.stufe || 'offen';
const k = el('article', 'fest-punkt');
k.dataset.stufe = stufe;
const kopf = el('div', 'fest-punkt__kopf');
const links = el('div', 'fest-punkt__text');
links.append(el('h4', 'fest-punkt__titel', p.titel));
/* Bei Content-Ideen ist der Aufhänger das Wichtigste -- die ersten
Sekunden entscheiden. Er steht deshalb hervorgehoben. */
if (p.hook) {
const h = el('p', 'fest-punkt__hook');
h.append(el('span', 'fest-punkt__hookschild', 'Aufhänger'));
h.append(document.createTextNode(p.hook));
links.append(h);
}
if (p.text) links.append(el('p', 'fest-punkt__beschreibung', p.text));
if (p.format) links.append(el('span', 'fest-punkt__marke', p.format));
kopf.append(links);
/* Die Marke rechts -- immer sichtbar, auch für den Creator, auch
wenn sie "noch offen" lautet. Er soll sehen, wo er steht. */
const marke = el('span', 'fest-punkt__marke-stufe',
stufe === 'gut' ? 'Passt so'
: stufe === 'verbessern' ? 'Verbessern' : 'Offen');
kopf.append(marke);
k.append(kopf);
/* Der Grund steht in voller Breite -- "verbessern" ohne Grund ist
nicht umsetzbar, nur entmutigend. */
if (stand?.begruendung) {
const g = el('div', 'fest-punkt__grund');
g.append(el('p', null, stand.begruendung));
g.append(el('span', 'fest-punkt__von',
`${stand.von_name || ''} · ${wann(stand.am)}`));
k.append(g);
}
/* ---- Was man tun kann ---- */
const fuss = el('div', 'fest-punkt__fuss');
if (daten.darf_bewerten && daten.creator_id) {
for (const [wert, name] of [['gut', 'Passt so'], ['verbessern', 'Verbessern']]) {
const b = el('button', 'stufe-knopf', name);
b.type = 'button';
b.dataset.stufe = wert;
if (stufe === wert) b.dataset.an = 'ja';
b.addEventListener('click', async () => {
/* Ein zweiter Klick auf dieselbe Stufe nimmt sie zurück --
sonst gäbe es keinen Weg zurück auf "offen". */
const neu = stufe === wert ? 'offen' : wert;
let grund = stand?.begruendung || '';
if (neu === 'verbessern') {
grund = prompt(`„${p.titel}“\n\nWas genau soll verbessert werden?\n\n`
+ 'Ohne diesen Satz kann er nichts damit anfangen.', grund) || '';
if (grund.trim().length < 5) return;
}
b.disabled = true;
try {
const a = await hole(`/workspace/api/checkliste/${bereich}/${p.schluessel}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ stufe: neu, begruendung: grund,
creator_id: daten.creator_id }),
});
if (!a.ok) {
alert((await a.json().catch(() => ({}))).fehler || 'Ging nicht.');
b.disabled = false;
return;
}
window.checkliste(behaelter, bereich);
} catch { b.disabled = false; }
});
fuss.append(b);
}
}
/* Rückmeldungen -- für beide Seiten. */
const anzahl = daten.nachrichten[p.schluessel] || 0;
const reden = el('button', 'schritt',
anzahl ? `Rückmeldung (${anzahl})` : 'Rückmeldung');
reden.type = 'button';
reden.addEventListener('click', () => gespraech(k, bereich, p, daten, reden));
fuss.append(reden);
/* Bei Punkten, wo Hilfe angeboten wird, kann der Creator sie hier
anfordern -- daraus wird eine Aufgabe bei seinem Betreuer. */
if (p.hilfe && !daten.darf_bewerten && window.hilfeKnopf) {
fuss.append(window.hilfeKnopf(p.titel, daten.creator_id));
}
k.append(fuss);
return k;
}
/* ---------- Das Gespräch an einem Punkt -------------------------------- */
async function gespraech(karte, bereich, p, daten, knopf) {
const offen = karte.querySelector('.punkt-gespraech');
if (offen) { offen.remove(); return; }
let n;
try {
const a = await hole(
`/workspace/api/checkliste/${bereich}/${p.schluessel}/nachrichten`
+ (daten.creator_id ? `?creator_id=${daten.creator_id}` : ''));
if (!a.ok) return;
n = await a.json();
} catch { return; }
const kasten = el('div', 'punkt-gespraech');
const verlauf = el('div', 'nachrichten');
zeichne(verlauf, n.nachrichten, n.ich);
kasten.append(verlauf);
const form = el('form', 'nachricht-neu');
const feld = el('textarea');
feld.rows = 2;
feld.maxLength = 2000;
feld.placeholder = daten.darf_bewerten
? 'Rückmeldung an den Creator …'
: 'Frage oder Antwort an deine Betreuung …';
form.append(feld);
const senden = el('button', 'knopf knopf--klein', 'Senden');
senden.type = 'submit';
form.append(senden);
form.addEventListener('submit', async (e) => {
e.preventDefault();
if (!feld.value.trim()) return;
senden.disabled = true;
try {
const a = await hole(
`/workspace/api/checkliste/${bereich}/${p.schluessel}/nachrichten`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: feld.value, creator_id: daten.creator_id }),
});
if (!a.ok) { alert((await a.json().catch(() => ({}))).fehler || 'Ging nicht.'); return; }
const r = await a.json();
feld.value = '';
zeichne(verlauf, r.nachrichten, n.ich);
knopf.textContent = `Rückmeldung (${r.nachrichten.length})`;
} catch { /* umgeleitet */ } finally { senden.disabled = false; }
});
kasten.append(form);
karte.append(kasten);
feld.focus();
}
function zeichne(ziel, liste, ichId) {
ziel.textContent = '';
if (!liste.length) {
ziel.append(el('p', 'nachrichten__leer', 'Noch keine Rückmeldung zu diesem Punkt.'));
return;
}
for (const n of liste) {
const z = el('div', 'nachricht');
if (n.von === ichId) z.dataset.eigen = 'ja';
const kopf = el('div', 'nachricht__kopf');
kopf.append(el('span', 'nachricht__von', n.von_name || 'Unbekannt'));
kopf.append(el('span', 'nachricht__wann', wann(n.am)));
if (n.von === ichId) {
const weg = el('button', 'nachricht__weg', '×');
weg.type = 'button';
weg.title = 'Eigene Nachricht zurücknehmen';
weg.addEventListener('click', async () => {
if (!confirm('Diese Nachricht zurücknehmen?')) return;
try {
const a = await hole(`/workspace/api/checkliste/nachricht/${n.id}`,
{ method: 'DELETE' });
if (a.ok) z.remove();
} catch { /* umgeleitet */ }
});
kopf.append(weg);
}
z.append(kopf);
z.append(el('p', 'nachricht__text', n.text));
ziel.append(z);
}
}
})();
+5 -7
View File
@@ -443,14 +443,12 @@
/* Fertige Ideen zum Uebernehmen. Steht ueber der Strecke, damit
jemand mit leeren Spalten nicht erst daran vorbeiscrollen muss. */
/* Die feste Liste der Ideen -- nach Saeule gruppiert (70/20/10).
Sie steht fuer jeden gleich da; was sich unterscheidet, ist,
was die Betreuung dazu vermerkt hat. */
const behaelter = document.getElementById('vorlagen');
if (behaelter && window.vorlagenBlock) {
const wahl = document.getElementById('creator-wahl');
window.vorlagenBlock(behaelter, {
art: 'content',
creatorId: wahl && wahl.value ? Number(wahl.value) : null,
danach: laden,
});
if (behaelter && window.checkliste) {
window.checkliste(behaelter, 'content');
}
filterBauen();
+7 -7
View File
@@ -7,9 +7,9 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
</head>
<body class="start">
@@ -139,9 +139,9 @@
</form>
</dialog>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/aufgaben.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/aufgaben.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609011707" />
</head>
<body class="start">
@@ -132,9 +132,9 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/automation.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/automation.js?v=202609011707" defer></script>
</body>
</html>
+12 -11
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609011707" />
</head>
<body class="start">
@@ -115,12 +115,13 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/ampel.js?v=202609011649" defer></script>
<script src="assets/js/schulung.js?v=202609011649" defer></script>
<script src="assets/js/vorlagen.js?v=202609011649" defer></script>
<script src="assets/js/bereich.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/checkliste.js?v=202609011707" defer></script>
<script src="assets/js/ampel.js?v=202609011707" defer></script>
<script src="assets/js/schulung.js?v=202609011707" defer></script>
<script src="assets/js/vorlagen.js?v=202609011707" defer></script>
<script src="assets/js/bereich.js?v=202609011707" defer></script>
</body>
</html>
+9 -9
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609011707" />
</head>
<body class="start">
@@ -54,10 +54,10 @@
</main>
<script src="assets/js/ki.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/calls.js?v=202609011649" defer></script>
<script src="assets/js/ki.js?v=202609011707" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/calls.js?v=202609011707" defer></script>
</body>
</html>
+10 -9
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/content.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/content.css?v=202609011707" />
</head>
<body class="start">
@@ -162,10 +162,11 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/vorlagen.js?v=202609011649" defer></script>
<script src="assets/js/content.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/checkliste.js?v=202609011707" defer></script>
<script src="assets/js/vorlagen.js?v=202609011707" defer></script>
<script src="assets/js/content.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609011707" />
</head>
<body class="start">
@@ -93,9 +93,9 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/dateien.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/dateien.js?v=202609011707" defer></script>
</body>
</html>
+2 -2
View File
@@ -25,7 +25,7 @@
type="image/webp" media="(max-width: 899px)" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
</head>
<body class="gate">
@@ -143,6 +143,6 @@
</p>
</main>
<script src="assets/js/gate.js?v=202609011649" defer></script>
<script src="assets/js/gate.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609011707" />
</head>
<body class="start">
@@ -147,9 +147,9 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/kalender.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/kalender.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609011707" />
</head>
<body class="start">
@@ -121,9 +121,9 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/personen.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/personen.js?v=202609011707" defer></script>
</body>
</html>
+9 -9
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609011707" />
</head>
<body class="start">
@@ -175,10 +175,10 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/steckbrief.js?v=202609011649" defer></script>
<script src="assets/js/profil.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/steckbrief.js?v=202609011707" defer></script>
<script src="assets/js/profil.js?v=202609011707" defer></script>
</body>
</html>
+9 -9
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/report.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/report.css?v=202609011707" />
</head>
<body class="start">
@@ -91,10 +91,10 @@
</main>
<script src="assets/js/ki.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/report.js?v=202609011649" defer></script>
<script src="assets/js/ki.js?v=202609011707" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/report.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609011707" />
</head>
<body class="start">
@@ -124,9 +124,9 @@
</div>
</div>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/scouting.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/scouting.js?v=202609011707" defer></script>
</body>
</html>
+6 -6
View File
@@ -7,8 +7,8 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
</head>
<body class="start">
@@ -99,9 +99,9 @@
</p>
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/start.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/start.js?v=202609011707" defer></script>
</body>
</html>
+9 -9
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609011707" />
</head>
<body class="start">
@@ -70,10 +70,10 @@
</main>
<script src="assets/js/ki.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/startcheck.js?v=202609011649" defer></script>
<script src="assets/js/ki.js?v=202609011707" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/startcheck.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609011707" />
</head>
<body class="start">
@@ -85,9 +85,9 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/steckbrief.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/steckbrief.js?v=202609011707" defer></script>
</body>
</html>
+6 -6
View File
@@ -7,9 +7,9 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609011707" />
</head>
<body class="start">
@@ -57,9 +57,9 @@
</main>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/uebersicht.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/uebersicht.js?v=202609011707" defer></script>
</body>
</html>
+8 -8
View File
@@ -7,10 +7,10 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="theme-color" content="#05070d" />
<link rel="icon" href="assets/img/favicon.png" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609011649" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/start.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609011707" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609011707" />
</head>
<body class="start">
@@ -175,9 +175,9 @@
</main>
<script src="assets/js/wahl.js?v=202609011649" defer></script>
<script src="assets/js/bereiche.js?v=202609011649" defer></script>
<script src="assets/js/kopf.js?v=202609011649" defer></script>
<script src="assets/js/wissen.js?v=202609011649" defer></script>
<script src="assets/js/wahl.js?v=202609011707" defer></script>
<script src="assets/js/bereiche.js?v=202609011707" defer></script>
<script src="assets/js/kopf.js?v=202609011707" defer></script>
<script src="assets/js/wissen.js?v=202609011707" defer></script>
</body>
</html>