Die Sicht wirkt jetzt auch auf die SEITE, nicht nur auf die Listen

Gemeldet: "ich hab oben die Ansicht von Tili ausgewaehlt und seh immer
noch die Seite genau wie meine." Das stimmte.

Der Umschalter war HALB gebaut. Die Daten dahinter folgten der Auswahl
(Aufgaben, Kalender, Dateien, Bereiche, Hinweise, Suche) -- die Seite
drumherum nicht: /workspace/api/ich lieferte immer den Angemeldeten, und
daraus baut die Startseite ihre Kacheln, die Rollenzeile und die
Begruessung. DogFather sah einen fremden Arbeitsplatz in seiner eigenen
Verkleidung.

ZWEI FEHLER STECKTEN DARIN.

1. /api/ich verschwieg die gewaehlte Sicht. Es liefert sie jetzt als
   eigenes Feld `sicht` -- NEBEN den eigenen Angaben, nicht an ihrer
   Stelle. Die Oberflaeche braucht beides: WER BIN ICH (Kopfleiste,
   "das bin ich" in Listen, alles was schreibt) und WESSEN ARBEITSPLATZ
   SEHE ICH (was gezeigt wird). Die beiden zu vermischen waere der
   sichere Weg dazu, dass irgendwann etwas unter fremdem Namen
   gespeichert wird.

2. EIN FEHLER DER REIHENFOLGE, und der war der eigentliche Grund.
   In kopf.js wurde `aktiv` (welche Sicht laeuft) erst in
   sichtAufbauen() gesetzt -- das laeuft ueber werZeigen(), also
   NACHDEM die Seite ihre erste Abfrage abgeschickt hat. Ausgerechnet
   /api/ich, aus dem Kacheln, Rolle und Begruessung entstehen, ging
   damit IMMER ohne die gewaehlte Sicht hinaus. Beide Zeilen waren fuer
   sich richtig; im Quelltext sieht man so etwas nicht.

WAS JETZT PASSIERT: In der Sicht auf einen Creator verschwinden die
Leitungs-Kacheln (18 -> 14, kein "Personen & Zugaenge", keine
"Automationen"), die Gruppe heisst "Wissen" statt "Team & System" --
genau wie bei ihm -- und unter dem Gruss steht "Arbeitsplatz von Tili ·
Creator". Plakette und Name oben bleiben die eigenen: Man ist weiterhin
man selbst, man sieht nur einen anderen Arbeitsplatz.

WARUM DIE PRUEFUNG DAS UEBERSEHEN HAT, und das ist die Lehre: Sie hat
geprueft, dass WENIGER AUFGABEN erscheinen -- und das stimmte ja. Sie
prueft genau die Haelfte, die fertig war. Jetzt prueft sie auch, dass
die Leitungs-Kacheln verschwinden, die Gruppentitel mitgehen und
dransteht, wessen Arbeitsplatz man ansieht.

Beim Schreiben dieser Pruefung dieselbe Falle noch einmal: Sie mass
"seine eigenen Kacheln", waehrend aus einem Abschnitt davor noch die
Scout-Sicht lief (die ueberlebt den Seitenwechsel, das ist gewollt), und
meldete einen Fehler, den es nicht gab. Eine Pruefung, die ihren eigenen
Ausgangszustand nicht herstellt, misst den Nachhall der vorigen.

31 von 31 Dateien, 1236 von 1236 Einzelpunkten.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-02 16:21:39 +02:00
co-authored by Claude Opus 5
parent 60c3edb10d
commit 1d54058760
39 changed files with 285 additions and 141 deletions
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 KiB

After

Width:  |  Height:  |  Size: 984 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 KiB

After

Width:  |  Height:  |  Size: 921 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 KiB

After

Width:  |  Height:  |  Size: 758 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 890 KiB

After

Width:  |  Height:  |  Size: 889 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 KiB

After

Width:  |  Height:  |  Size: 858 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 939 KiB

After

Width:  |  Height:  |  Size: 939 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 834 KiB

After

Width:  |  Height:  |  Size: 833 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 924 KiB

After

Width:  |  Height:  |  Size: 924 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

+74
View File
@@ -346,6 +346,80 @@ ok(parseFloat(nachher.rahmen) >= 1,
`ein Rahmen um die Seite erinnert daran (${nachher.rahmen}) – `
+ "der gefaehrlichste Fall ist, dass man es vergisst");
/* ================================================================
DIE SEITE SELBST MUSS SICH AENDERN, nicht nur die Listen.
Der Fehler, den diese Pruefung uebersehen hat (gemeldet 02.09.2026):
"ich hab oben die Ansicht von Tili ausgewaehlt und seh immer noch die
Seite genau wie meine."
Sie hat bisher nur geprueft, dass WENIGER AUFGABEN erscheinen -- und
das stimmte ja. Kacheln, Rollenzeile und Begruessung kamen aber
weiterhin von DogFather, weil /api/ich immer den Angemeldeten
lieferte. Der Umschalter war halb gebaut, und die Pruefung hat genau
die Haelfte geprueft, die fertig war.
Deshalb jetzt: Sieht man den Arbeitsplatz eines CREATORS, duerfen die
Kacheln der Leitung nicht mehr dastehen -- und es muss dranstehen,
WESSEN Arbeitsplatz das ist. */
console.log("\n=== Die Seite zeigt den fremden Arbeitsplatz, nicht den eigenen");
await bDogi.seite.goto(BASIS + "/workspace/start.html", { waitUntil: "networkidle" });
await bDogi.seite.waitForTimeout(1400);
/* ZUERST AUF DIE EIGENE SICHT ZURUECK. Der Abschnitt davor hat auf einen
Scout umgeschaltet, und die Auswahl ueberlebt den Seitenwechsel -- das
ist ja gerade gewollt. Ohne dieses Zuruecksetzen mass der erste Anlauf
"seine eigenen Kacheln" waehrend noch die fremde Sicht lief und
meldete einen Fehler, den es nicht gab.
Eine Pruefung, die ihren eigenen Ausgangszustand nicht herstellt,
misst den Nachhall der vorigen. */
await bDogi.seite.selectOption("#sicht-feld", "");
await bDogi.seite.waitForTimeout(1600);
const eigene = await bDogi.seite.evaluate(() => ({
kacheln: [...document.querySelectorAll(".kachel__name")].map((e) => e.textContent),
rolle: document.getElementById("rollentext")?.textContent,
}));
ok(eigene.kacheln.includes("Personen & Zugänge"),
`als er selbst sieht er die Leitungs-Kacheln (${eigene.kacheln.length} Kacheln)`);
await bDogi.seite.selectOption("#sicht-feld", String(idTili));
await bDogi.seite.waitForTimeout(1800);
const fremd = await bDogi.seite.evaluate(() => ({
kacheln: [...document.querySelectorAll(".kachel__name")].map((e) => e.textContent),
rolle: document.getElementById("rollentext")?.textContent,
gruppen: [...document.querySelectorAll(".gruppe__name")].map((e) => e.textContent),
}));
ok(!fremd.kacheln.includes("Personen & Zugänge"),
`in der Sicht eines Creators fehlen die Leitungs-Kacheln `
+ `(${eigene.kacheln.length} -> ${fremd.kacheln.length})`);
ok(!fremd.kacheln.includes("Automationen"), " auch die Automationen");
ok(fremd.kacheln.length < eigene.kacheln.length,
" die Seite zeigt wirklich weniger, nicht dasselbe");
ok(/Tili/.test(fremd.rolle || ""),
`und es steht dran, wessen Arbeitsplatz das ist ("${fremd.rolle}")`);
ok(/Creator/.test(fremd.rolle || ""),
" samt seiner Rolle");
/* Die Gruppe heisst fuer einen Creator "Wissen" statt "Team & System" --
ein weiterer Beleg, dass die SEITE der Sicht folgt und nicht nur die
Daten dahinter. */
ok(fremd.gruppen.includes("Wissen"),
`die Gruppentitel folgen ebenfalls (${fremd.gruppen.join(", ")})`);
await bDogi.seite.click(".sicht__weg");
await bDogi.seite.waitForTimeout(1600);
const zurueckSeite = await bDogi.seite.evaluate(() => ({
kacheln: [...document.querySelectorAll(".kachel__name")].map((e) => e.textContent),
rolle: document.getElementById("rollentext")?.textContent,
}));
ok(zurueckSeite.kacheln.includes("Personen & Zugänge")
&& !/Tili/.test(zurueckSeite.rolle || ""),
`zurueck bei sich sieht er wieder alles ("${zurueckSeite.rolle}")`);
await bDogi.seite.goto(BASIS + "/workspace/kalender.html", { waitUntil: "networkidle" });
await bDogi.seite.waitForTimeout(1200);
await bDogi.seite.selectOption("#sicht-feld", String(idPat));
await bDogi.seite.waitForTimeout(1800);
/* Und er BLEIBT beim Seitenwechsel -- sonst muesste man ihn auf jeder
Seite neu setzen, und genau das war der Wunsch ("ueberall"). */
await bDogi.seite.goto(BASIS + "/workspace/kalender.html", { waitUntil: "networkidle" });
+31
View File
@@ -876,9 +876,40 @@ workspaceRouter.get("/workspace/api/ich", (req, res) => {
if (z?.bild) bild = `/workspace/api/steckbrief/bild/${z.bild}`;
} catch { /* ohne Bild ist die Anmeldung trotzdem gültig */ }
/* WESSEN ARBEITSPLATZ WIRD GERADE ANGESEHEN (02.09.2026).
Ohne diese Angabe war der Umschalter nur halb gebaut: Die LISTEN
folgten der gewaehlten Sicht, die Seite drumherum nicht. DogFather
waehlte einen Creator -- und sah weiterhin seine eigene Begruessung,
seine Rolle und seine Kacheln. Gemeldet mit den Worten "ich seh
immer noch die Seite genau wie meine", und das stimmte.
`sicht` steht NEBEN den eigenen Angaben, nicht an ihrer Stelle. Die
Oberflaeche braucht beides: WER BIN ICH (fuer die Kopfleiste, fuer
"das bin ich" in Listen, fuer alles, was schreibt) und WESSEN
ARBEITSPLATZ SEHE ICH (fuer das, was gezeigt wird). Die beiden zu
vermischen waere der sichere Weg dazu, dass irgendwann etwas unter
fremdem Namen gespeichert wird.
Null, solange die eigene Sicht laeuft -- dann gibt es nichts zu
unterscheiden.
sichtPerson() wird hier direkt gerufen und nicht ueber req.sicht:
Die Middleware haengt erst NACH diesem Router (siehe index.js). */
const angesehen = sichtPerson(req);
const sicht = angesehen && angesehen.id !== person.id
? {
id: angesehen.id,
name: angesehen.name,
rolle: angesehen.rolle,
rolle_name: ROLLEN_NAME[angesehen.rolle] ?? angesehen.rolle,
}
: null;
res.json({
id: person.id, name: person.name, rolle: person.rolle,
rolle_name: ROLLEN_NAME[person.rolle] ?? person.rolle,
sicht,
bild,
});
});
+15 -2
View File
@@ -744,7 +744,20 @@
/* ---------- fetch einmal umleiten ------------------------------------- */
let aktiv = 0; /* 0 = eigene Sicht */
/* SOFORT gesetzt, nicht erst beim Bauen der Kopfleiste.
Genau das war der Fehler hinter "ich hab die Ansicht von Tili
ausgewaehlt und seh immer noch die Seite genau wie meine": `aktiv`
wurde erst in sichtAufbauen() gefuellt, und das laeuft ueber
werZeigen() -- also NACHDEM die Seite ihre erste Abfrage schon
abgeschickt hat. Die allererste Anfrage (/api/ich, aus der Kacheln,
Rolle und Begruessung entstehen) ging damit immer ohne die gewaehlte
Sicht hinaus.
Ein Fehler der REIHENFOLGE, nicht der Logik -- und deshalb einer,
den man im Quelltext nicht sieht: Beide Zeilen sind fuer sich
richtig. */
let aktiv = lesen();
const echtesFetch = window.fetch.bind(window);
window.fetch = function (eingabe, optionen) {
@@ -792,7 +805,7 @@
if (!kopf || baut || document.getElementById('sicht-wahl')) return;
baut = true;
aktiv = lesen();
aktiv = lesen(); /* nochmals lesen -- ein anderer Reiter kann sie geaendert haben */
let personen = [];
try {
+30 -4
View File
@@ -95,6 +95,18 @@
};
let ich = null;
/* WESSEN ARBEITSPLATZ WIRD GEZEIGT (02.09.2026).
`ich` ist, WER ANGEMELDET ist -- das bleibt so und gilt fuer alles,
was schreibt oder Rechte hat. `zeigt` ist, WESSEN Arbeitsplatz auf
dem Bildschirm steht. Im Normalfall dasselbe.
Vorher gab es nur `ich`, und die Folge war ein halb gebauter
Umschalter: Die Listen kamen bereits von der gewaehlten Person,
Kacheln, Rolle und Begruessung aber weiterhin von DogFather. Er sah
einen Creator-Arbeitsplatz in seiner eigenen Verkleidung -- gemeldet
mit "ich seh immer noch die Seite genau wie meine". */
let zeigt = null;
let hinweise = [];
/* ---------- Aufbau ------------------------------------------------------- */
@@ -119,13 +131,17 @@
let laufNr = 0;
for (const gruppe of GRUPPEN) {
const meine = gruppe.bereiche.filter((b) => b.rollen.includes(ich.rolle));
/* Nach der ANGESEHENEN Rolle -- sonst stuenden bei der Sicht auf
einen Creator weiterhin "Personen & Zugaenge" und "Automationen"
da, die er gar nicht hat. Genau daran war zu sehen, dass die
Sicht nicht greift. */
const meine = gruppe.bereiche.filter((b) => b.rollen.includes(zeigt.rolle));
if (!meine.length) continue;
const abschnitt = el('section', 'gruppe');
const kopf = el('div', 'gruppe__kopf');
/* Manche Gruppen heißen für einen Creator anders -- siehe GRUPPEN. */
const istCreator = ich.rolle === 'creator';
const istCreator = zeigt.rolle === 'creator';
kopf.append(el('h2', 'gruppe__name',
(istCreator && gruppe.nameCreator) || gruppe.name));
kopf.append(el('span', 'gruppe__unter',
@@ -306,7 +322,7 @@
das jetzt mit einem echten Bild nach. */
const p = $('plakette');
p.textContent = '';
p.dataset.rolle = ich.rolle;
p.dataset.rolle = ich.rolle; /* die Plakette bleibt DEINE */
if (ich.bild) {
const b = el('img', 'willkommen__foto');
b.src = ich.bild;
@@ -323,7 +339,13 @@
p.textContent = (ich.name || '?').trim().charAt(0).toUpperCase();
}
$('rollentext').textContent = ROLLENTEXT[ich.rolle] || ich.rolle;
/* Die Zeile unter dem Gruss sagt, WESSEN Arbeitsplatz man sieht.
Bei der eigenen Sicht wie bisher die eigene Rolle; bei fremder
Sicht der Name davor -- sonst liest man "Creator, dein eigener
Bereich" und haelt es fuer die eigene Lage. */
$('rollentext').textContent = ich.sicht
? `Arbeitsplatz von ${ich.sicht.name} · ${ROLLENTEXT[zeigt.rolle] || zeigt.rolle}`
: (ROLLENTEXT[ich.rolle] || ich.rolle);
}
/* Ein Satz zur Lage -- gerechnet aus denselben Hinweisen, die darunter
@@ -363,6 +385,10 @@
return;
}
/* Die Sicht steht in der Antwort von /api/ich. Ohne sie ist `zeigt`
schlicht die eigene Person -- der Normalfall. */
zeigt = ich.sicht || ich;
window.werZeigen?.(ich);
grussZeigen();
+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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
</head>
<body class="start">
@@ -152,9 +152,9 @@
</form>
</dialog>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/aufgaben.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/aufgaben.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609021605" />
</head>
<body class="start">
@@ -132,9 +132,9 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/automation.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/automation.js?v=202609021605" defer></script>
</body>
</html>
+12 -12
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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609021605" />
</head>
<body class="start">
@@ -115,13 +115,13 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/checkliste.js?v=202609020217" defer></script>
<script src="assets/js/ampel.js?v=202609020217" defer></script>
<script src="assets/js/schulung.js?v=202609020217" defer></script>
<script src="assets/js/vorlagen.js?v=202609020217" defer></script>
<script src="assets/js/bereich.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/checkliste.js?v=202609021605" defer></script>
<script src="assets/js/ampel.js?v=202609021605" defer></script>
<script src="assets/js/schulung.js?v=202609021605" defer></script>
<script src="assets/js/vorlagen.js?v=202609021605" defer></script>
<script src="assets/js/bereich.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609021605" />
</head>
<body class="start">
@@ -54,10 +54,10 @@
</main>
<script src="assets/js/ki.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/calls.js?v=202609020217" defer></script>
<script src="assets/js/ki.js?v=202609021605" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/calls.js?v=202609021605" defer></script>
</body>
</html>
+10 -10
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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/content.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/content.css?v=202609021605" />
</head>
<body class="start">
@@ -164,11 +164,11 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/checkliste.js?v=202609020217" defer></script>
<script src="assets/js/vorlagen.js?v=202609020217" defer></script>
<script src="assets/js/content.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/checkliste.js?v=202609021605" defer></script>
<script src="assets/js/vorlagen.js?v=202609021605" defer></script>
<script src="assets/js/content.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609021605" />
</head>
<body class="start">
@@ -93,9 +93,9 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/dateien.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/dateien.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
</head>
<body class="gate">
@@ -143,6 +143,6 @@
</p>
</main>
<script src="assets/js/gate.js?v=202609020217" defer></script>
<script src="assets/js/gate.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609021605" />
</head>
<body class="start">
@@ -147,9 +147,9 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/kalender.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/kalender.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609021605" />
</head>
<body class="start">
@@ -121,9 +121,9 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/personen.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/personen.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609021605" />
</head>
<body class="start">
@@ -193,10 +193,10 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/steckbrief.js?v=202609020217" defer></script>
<script src="assets/js/profil.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/steckbrief.js?v=202609021605" defer></script>
<script src="assets/js/profil.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/report.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/report.css?v=202609021605" />
</head>
<body class="start">
@@ -91,10 +91,10 @@
</main>
<script src="assets/js/ki.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/report.js?v=202609020217" defer></script>
<script src="assets/js/ki.js?v=202609021605" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/report.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609021605" />
</head>
<body class="start">
@@ -124,9 +124,9 @@
</div>
</div>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/scouting.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/scouting.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
</head>
<body class="start">
@@ -99,9 +99,9 @@
</p>
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/start.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/start.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609021605" />
</head>
<body class="start">
@@ -70,10 +70,10 @@
</main>
<script src="assets/js/ki.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/startcheck.js?v=202609020217" defer></script>
<script src="assets/js/ki.js?v=202609021605" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/startcheck.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609021605" />
</head>
<body class="start">
@@ -111,9 +111,9 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/steckbrief.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/steckbrief.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609021605" />
</head>
<body class="start">
@@ -57,9 +57,9 @@
</main>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/uebersicht.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/uebersicht.js?v=202609021605" 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=202609020217" />
<link rel="stylesheet" href="assets/css/start.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609020217" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/start.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609021605" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609021605" />
</head>
<body class="start">
@@ -175,9 +175,9 @@
</main>
<script src="assets/js/wahl.js?v=202609020217" defer></script>
<script src="assets/js/bereiche.js?v=202609020217" defer></script>
<script src="assets/js/kopf.js?v=202609020217" defer></script>
<script src="assets/js/wissen.js?v=202609020217" defer></script>
<script src="assets/js/wahl.js?v=202609021605" defer></script>
<script src="assets/js/bereiche.js?v=202609021605" defer></script>
<script src="assets/js/kopf.js?v=202609021605" defer></script>
<script src="assets/js/wissen.js?v=202609021605" defer></script>
</body>
</html>