Zugang: die gewaehlte Kachel ist bindend

Filipe, 01.10.2026: „mach das. es soll fest sein."

VanVan hatte gemeldet: „Man kann sich mit seinem Zugangscode immer
noch über jeden Button der Startseite anmelden, egal welche Rolle man
hat."

ICH HATTE ZUERST ABGERATEN -- und lag falsch, weil ich eine alte Lage
beschrieben habe.

Am 09.09.2026 hatte Filipe entschieden, dass die Modis KEINE eigene
Eingangskachel bekommen: „damit die von der workspace auch nicht mal
sehen dass die modis von mir einen eigenen zugang haben." Wer keine
Kachel hat, muss irgendeine nehmen koennen -- daher der stille Zugang.

SEIT DER HAUSTRENNUNG AM 24.09.2026 STIMMT DAS NICHT MEHR. Auf
`crew.` steht laengst ein eigener Kachelsatz mit ALLEN fuenf Rollen:
DogFather, rechte Hand, linke Hand, Modi, Community (CREW_KACHEL, und
crew-index.html zeigt sie). Das Verbergen leistet seither die ADRESSE
-- wer sie nicht kennt, findet die Wand nicht; wer sie kennt, liest
die Rollennamen ohnehin offen darauf.

Der stille Zugang war damit ein Rest. Er hat niemanden mehr
geschuetzt und nur dafuer gesorgt, dass die Kachelwahl folgenlos
blieb. Nachgesehen habe ich das erst, NACHDEM Filipe widersprochen
hat; die Kachelsaetze standen die ganze Zeit im Quelltext.

WAS SICH NICHT AENDERT: Auf der Agenturwand war der stille Zugang nie
aktiv. Ein Team-Dogi-Code verhaelt sich dort weiterhin wie ein
erfundener -- gleiche Antwort, gleicher Weg, gleiche Dauer. Das ist
jetzt ausdruecklich gemessen.

EINE PRUEFADRESSE IST KEINE WAND. `127.0.0.1` ist weder crew. noch
Agentur. Ohne den stillen Zugang gaelte dort der Agentursatz -- und
kein Modi kaeme mehr herein. Fuenfzig Pruefdateien melden Team-Rollen
ueber diese Adresse an. Auf einer Adresse ohne Wand gibt es deshalb
ALLE Kacheln; welche auf welcher ECHTEN Wand steht, misst
pruef-modi-verborgen mit ausdruecklichem Host-Kopf.

GEPRUEFT -- pruef-modi-verborgen 87/0 (war 85; die fuenf Zeilen „jede
Kachel geht" sind durch sieben ersetzt, die die neue Regel und ihre
Gegenproben messen). Die Anzahl ist Zeile fuer Zeile verglichen.

  Modi-Kachel + Modi-Code      -> herein
  admin/hand/linke/gast        -> abgewiesen
  rechte Hand auf ihrer Kachel -> herein
  Agenturwand + Modi-Code      -> wie ein erfundener

pruef-crew-adresse 169/0 (unveraenderte Anzahl, zwei Zeilen
umgedreht).

SECHZEHN PRUEFDATEIEN MELDETEN SICH UEBER FREMDE KACHELN AN -- ein
Rest derselben Zeit. Systematisch gesucht statt einzeln entdeckt:
Waere ich dem roten Lauf hinterhergelaufen, haette ich beim zwoelften
aufgehoert.

UND DABEI EIN EIGENER FEHLER: Mein erster Durchlauf las die Rolle am
CODENAMEN ab (CODE-MODI- -> modi). Das ging gut, bis „Nane" kam: ein
Modi mit dem Code CODE-NANE-0001. Zwei Pruefungen wurden rot, und
zwar an einer Stelle („die Stimmen stimmen"), die mit Anmeldung
nichts zu tun hat. Ein Codename ist eine Beschriftung, keine
Tatsache -- die Rolle steht in `anlegen()`. Danach abgeleitet blieben
genau zwei Abweichungen uebrig, und beide sind absichtliche
Gegenproben.

Drei Browserpruefungen tippten die Creator-Kachel mit einem
Modi-Code. Die Modi-Kachel gibt es nur auf der Crew-Wand, und ein
Browser auf 127.0.0.1 bekommt die Agenturwand; sie melden sich jetzt
ueber die Schnittstelle an und bekommen den Keks. Gemessen werden
soll dort, was ein Modi SIEHT -- nicht, wie er hereinkommt.

Grün: pruef-modi-verborgen, pruef-crew-adresse, pruef-treff 85/0,
pruef-galerie, pruef-kanaele, pruef-modi-katalog 150/0,
pruef-modi-ideen, pruef-modi-kategorien, pruef-modi-checkliste 75/0,
pruef-modi-livecheck, pruef-kachelraster, pruef-team-ampel 32/0,
pruef-team-stufen 47/0, pruef-wunschliste, pruef-bremse,
pruef-gespraech, pruef-personen-formular 43/0, pruef-start-ansicht,
pruef-community-sicht, pruef-reaktion 421/0, pruef-abzeichen,
pruef-chat, pruef-chat-kanaele 81/0, pruef-entwicklung 79/0,
pruef-bewerbung-aufgaben 154/0, pruef-struktur,
pruef-zwischenspeicher 34/0.

`code_kennung` wird weiter geschrieben, aber nicht mehr gelesen --
sie war der Suchschluessel des stillen Weges. Stehen gelassen: Eine
Spalte zu entfernen ist eine Schemaaenderung mit Sicherung, und sie
kostet nichts.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-10-01 00:22:55 +02:00
co-authored by Claude Opus 5
parent 4503b1a475
commit 718b267de0
63 changed files with 1017 additions and 863 deletions
+1 -1
View File
@@ -107,7 +107,7 @@ async function anmelden(kachel, code) {
return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; "); return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
} }
const dogi = await anmelden("admin", "CODE-DOGI-0001"); const dogi = await anmelden("admin", "CODE-DOGI-0001");
const ruhig = await anmelden("creator", "CODE-RUHIG-0001"); const ruhig = await anmelden("modi", "CODE-RUHIG-0001");
const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS }); const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS });
async function schreiben(keks, bereich, titel, extra = {}) { async function schreiben(keks, bereich, titel, extra = {}) {
+20 -6
View File
@@ -201,11 +201,20 @@ try { zielModi = JSON.parse(modiAufCrew.text); } catch { /* bleibt leer */ }
ok(zielModi.weiter === "/workspace/start.html", "crew.: er landet auf seiner Startseite"); ok(zielModi.weiter === "/workspace/start.html", "crew.: er landet auf seiner Startseite");
ok(modiAufCrew.keks.includes("dfw_sitzung"), "crew.: er bekommt eine Sitzung"); ok(modiAufCrew.keks.includes("dfw_sitzung"), "crew.: er bekommt eine Sitzung");
/* Der Code des Modis wird bewusst mit der Kachel 'creator' geschickt -- /* ==== DIE KACHEL IST BINDEND (01.10.2026) =========================
genau so kommt er auch aus der Zugangswand, denn eine Modi-Kachel
gibt es nicht. */ Filipe: „mach das. es soll fest sein."
const modiOhneKachel = await anmelden(CREW, "creator", "CODE-MODI-0001");
ok(modiOhneKachel.status === 200, "crew.: die gewaehlte Kachel ist egal (stiller Zugang)"); Hier stand das Gegenteil, und es war richtig: Bis zum 24.09.2026
gab es fuer einen Modi keine eigene Kachel, also musste jede
durchgehen (Filipes Entscheidung vom 09.09.).
Seit der Haustrennung hat `crew.` einen eigenen Kachelsatz mit
allen fuenf Rollen. Das Verbergen leistet seither die ADRESSE --
der Trick mit der beliebigen Kachel war ein Rest. */
const modiFremdeKachel = await anmelden(CREW, "creator", "CODE-MODI-0001");
ok(modiFremdeKachel.status === 401,
`crew.: eine fremde Kachel wird abgewiesen (${modiFremdeKachel.status})`);
const managerAufCrew = await anmelden(CREW, "manager", "CODE-MAN-0001"); const managerAufCrew = await anmelden(CREW, "manager", "CODE-MAN-0001");
ok(managerAufCrew.status === 401, "crew.: ein Manager mit gueltigem Code kommt NICHT herein"); ok(managerAufCrew.status === 401, "crew.: ein Manager mit gueltigem Code kommt NICHT herein");
@@ -262,7 +271,12 @@ ok(managerAufWs.status === 200 && managerAufWs.keks.includes("dfw_sitzung"),
"workspace.: der Manager kommt herein wie immer -- der Workspace ist unberuehrt"); "workspace.: der Manager kommt herein wie immer -- der Workspace ist unberuehrt");
const managerLokal = await anmelden(LOKAL, "manager", "CODE-MAN-0001"); const managerLokal = await anmelden(LOKAL, "manager", "CODE-MAN-0001");
const modiLokal = await anmelden(LOKAL, "creator", "CODE-MODI-0001"); /* AUF SEINER EIGENEN KACHEL. Eine Pruefadresse ist keine Wand --
dort gibt es seit dem 01.10.2026 ALLE Kacheln, damit die fuenfzig
Pruefdateien, die Team-Rollen ueber 127.0.0.1 anmelden, weiter
messen koennen. Welche Kachel auf welcher ECHTEN Wand steht, sagt
die Zeile weiter oben. */
const modiLokal = await anmelden(LOKAL, "modi", "CODE-MODI-0001");
ok(managerLokal.status === 200 && managerLokal.keks.includes("dfw_sitzung"), ok(managerLokal.status === 200 && managerLokal.keks.includes("dfw_sitzung"),
"127.0.0.1: der Manager kommt herein (Pruefadressen unberuehrt)"); "127.0.0.1: der Manager kommt herein (Pruefadressen unberuehrt)");
ok(modiLokal.status === 200 && modiLokal.keks.includes("dfw_sitzung"), ok(modiLokal.status === 200 && modiLokal.keks.includes("dfw_sitzung"),
+1 -1
View File
@@ -99,7 +99,7 @@ async function anmelden(kachel, code) {
return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; "); return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
} }
const dogi = await anmelden("admin", "CODE-DOGI-0001"); const dogi = await anmelden("admin", "CODE-DOGI-0001");
const modi = await anmelden("creator", "CODE-MODI-0001"); const modi = await anmelden("modi", "CODE-MODI-0001");
/* ---------- Ein Highlight und die Dateien dazu ----------------------- */ /* ---------- Ein Highlight und die Dateien dazu ----------------------- */
const a = await fetch(BASIS + "/workspace/api/bereich/highlight", { const a = await fetch(BASIS + "/workspace/api/bereich/highlight", {
+1 -1
View File
@@ -89,7 +89,7 @@ async function anmelden(kachel, code) {
return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; "); return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
} }
const dogi = await anmelden("admin", "CODE-DOGI-0001"); const dogi = await anmelden("admin", "CODE-DOGI-0001");
const lena = await anmelden("creator", "CODE-LENA-0001"); const lena = await anmelden("modi", "CODE-LENA-0001");
const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS }); const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS });
async function liste(bereich, keks = dogi) { async function liste(bereich, keks = dogi) {
+4 -2
View File
@@ -317,7 +317,9 @@ try {
melde(""); melde("");
melde("=== 2. Ein Modi: dasselbe Raster ==="); melde("=== 2. Ein Modi: dasselbe Raster ===");
{ {
const m = await messen("creator", "CODE-MODI-0001", "modi"); /* AUF DER MODI-KACHEL (01.10.2026) -- vorher liess der stille
Zugang jede durch. */
const m = await messen("modi", "CODE-MODI-0001", "modi");
/* ACHT, NICHT SIEBEN -- und das war MEIN Denkfehler beim Schreiben /* ACHT, NICHT SIEBEN -- und das war MEIN Denkfehler beim Schreiben
dieser Pruefung, nicht der des Codes: Ein Modi moderiert, also dieser Pruefung, nicht der des Codes: Ein Modi moderiert, also
braucht er "Meldungen & Massnahmen". Die Liste im Quelltext sagt braucht er "Meldungen & Massnahmen". Die Liste im Quelltext sagt
@@ -405,7 +407,7 @@ try {
darin. Genommen wird der Modi -- er ist die Rolle in dieser darin. Genommen wird der Modi -- er ist die Rolle in dieser
Pruefung, die eine Kachel mit `gross: true` hat, und nur an der Pruefung, die eine Kachel mit `gross: true` hat, und nur an der
kann der Fehler ueberhaupt auftreten. */ kann der Fehler ueberhaupt auftreten. */
const keksBreite = await anmelden("creator", "CODE-MODI-0001"); const keksBreite = await anmelden("modi", "CODE-MODI-0001");
for (const breite of [320, 360, 390]) { for (const breite of [320, 360, 390]) {
const k2 = await browser.newContext({ const k2 = await browser.newContext({
+2 -2
View File
@@ -111,8 +111,8 @@ async function ruf(keks, pfad, aufruf = {}) {
const jsonKopf = { "Content-Type": "application/json" }; const jsonKopf = { "Content-Type": "application/json" };
const dogi = await anmelden("admin", "CODE-DOGI-0001"); const dogi = await anmelden("admin", "CODE-DOGI-0001");
const hand = await anmelden("creator", "CODE-HAND-0001"); const hand = await anmelden("hand", "CODE-HAND-0001");
const modi = await anmelden("creator", "CODE-MODI-0001"); const modi = await anmelden("modi", "CODE-MODI-0001");
const crea = await anmelden("creator", "CODE-CREA-0001"); const crea = await anmelden("creator", "CODE-CREA-0001");
/* ======================================================================= /* =======================================================================
+1 -1
View File
@@ -97,7 +97,7 @@ async function anmelden(kachel, code) {
return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; "); return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
} }
const dogi = await anmelden("admin", "CODE-DOGI-0001"); const dogi = await anmelden("admin", "CODE-DOGI-0001");
const lena = await anmelden("creator", "CODE-LENA-0001"); const lena = await anmelden("modi", "CODE-LENA-0001");
const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS }); const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS });
async function liste(bereich, keks = dogi) { async function liste(bereich, keks = dogi) {
+1 -1
View File
@@ -100,7 +100,7 @@ async function hole(keks, pfad, aufruf = {}) {
} }
const jsonKopf = { "Content-Type": "application/json" }; const jsonKopf = { "Content-Type": "application/json" };
const modiAn = await anmelden("creator", "CODE-MODI-0001"); const modiAn = await anmelden("modi", "CODE-MODI-0001");
const dogiAn = await anmelden("admin", "CODE-DOGI-0001"); const dogiAn = await anmelden("admin", "CODE-DOGI-0001");
const vanAn = await anmelden("admin", "CODE-VAN-0001"); const vanAn = await anmelden("admin", "CODE-VAN-0001");
const handAn = await anmelden("hand", "CODE-HAND-0001"); const handAn = await anmelden("hand", "CODE-HAND-0001");
+19 -7
View File
@@ -174,8 +174,8 @@ const jsonKopf = { "Content-Type": "application/json" };
/* ---------- 3. Sammeln und priorisieren ------------------------------ */ /* ---------- 3. Sammeln und priorisieren ------------------------------ */
console.log("\n=== 3. Ideen sammeln und nach Dringlichkeit ordnen ===\n"); console.log("\n=== 3. Ideen sammeln und nach Dringlichkeit ordnen ===\n");
const modiAn = await anmelden("creator", "CODE-MODI-0001"); const modiAn = await anmelden("modi", "CODE-MODI-0001");
const modi2An = await anmelden("creator", "CODE-MODI-0002"); const modi2An = await anmelden("modi", "CODE-MODI-0002");
const dogiAn = await anmelden("admin", "CODE-DOGI-0001"); const dogiAn = await anmelden("admin", "CODE-DOGI-0001");
{ {
const IDEEN = [ const IDEEN = [
@@ -297,11 +297,23 @@ console.log("\n=== 5. Das Board im echten Browser ===\n");
schlecht.push(`${r.status()} ${r.url().replace(BASIS, "")}`); schlecht.push(`${r.status()} ${r.url().replace(BASIS, "")}`);
} }
}); });
await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded" }); /* ==== ANGEMELDET UEBER DEN KEKS (01.10.2026) ================
await seite.click('.rolle[data-rolle="creator"]');
await seite.fill("#code", "CODE-MODI-0001"); Hier wurde auf die Creator-Kachel getippt und ein Modi-Code
await seite.click("button[type=submit]"); eingegeben -- das ging, solange der stille Zugang jede Kachel
await seite.waitForURL("**/start.html", { timeout: 15000 }); durchliess. Seit die Kachel bindend ist, braeuchte der Browser
die MODI-Kachel, und die gibt es nur auf der Crew-Wand; ein
Browser auf 127.0.0.1 bekommt die Agenturwand.
Gemessen werden soll hier, was ein Modi SIEHT -- nicht, wie er
hereinkommt. Das steht in pruef-modi-verborgen, und dort wird es
an der echten Wand gemessen. */
const modiKeks = String((await anmelden("modi", "CODE-MODI-0001")).keks || "");
await kontext.addCookies(modiKeks.split("; ").filter(Boolean).map((z) => {
const [n2, ...r2] = z.split("=");
return { name: n2, value: r2.join("="), domain: "127.0.0.1", path: "/" };
}));
await seite.goto(BASIS + "/workspace/start.html", { waitUntil: "domcontentloaded" });
/* WARTEN, BIS DIE KACHELN DA SIND. Sie entstehen erst, wenn /* WARTEN, BIS DIE KACHELN DA SIND. Sie entstehen erst, wenn
/api/ich geantwortet hat -- direkt nach waitForURL ist die Seite /api/ich geantwortet hat -- direkt nach waitForURL ist die Seite
zwar geladen, aber leer. Beim ersten Anlauf meldete diese zwar geladen, aber leer. Beim ersten Anlauf meldete diese
+20 -8
View File
@@ -104,14 +104,14 @@ async function hole(keks, pfad, aufruf = {}) {
} }
const jsonKopf = { "Content-Type": "application/json" }; const jsonKopf = { "Content-Type": "application/json" };
const modiAn = await anmelden("creator", "CODE-MODI-0001"); const modiAn = await anmelden("modi", "CODE-MODI-0001");
const dogiAn = await anmelden("admin", "CODE-DOGI-0001"); const dogiAn = await anmelden("admin", "CODE-DOGI-0001");
const manAn = await anmelden("manager", "CODE-MAN-0001"); const manAn = await anmelden("manager", "CODE-MAN-0001");
const creatAn = await anmelden("creator", "CODE-ANNA-0001"); const creatAn = await anmelden("creator", "CODE-ANNA-0001");
/* Ueber den stillen Zugang -- welche Kachel man anfasst, ist /* Ueber den stillen Zugang -- welche Kachel man anfasst, ist
gleichgueltig, der Code allein entscheidet (siehe die Anmelderoute). */ gleichgueltig, der Code allein entscheidet (siehe die Anmelderoute). */
const handAn = await anmelden("creator", "CODE-HAND-0001"); const handAn = await anmelden("hand", "CODE-HAND-0001");
const linkeAn = await anmelden("creator", "CODE-LINK-0001"); const linkeAn = await anmelden("linke", "CODE-LINK-0001");
/* ---------- 1. Ist er vollstaendig da? ------------------------------- */ /* ---------- 1. Ist er vollstaendig da? ------------------------------- */
console.log("\n=== 1. Der Katalog, wie ihn das Dokument beschreibt ===\n"); console.log("\n=== 1. Der Katalog, wie ihn das Dokument beschreibt ===\n");
@@ -493,11 +493,23 @@ console.log("\n=== 6. Das Brett im echten Browser ===\n");
const konsole = []; const konsole = [];
seite.on("console", (e) => { if (e.type() === "error") konsole.push(e.text()); }); seite.on("console", (e) => { if (e.type() === "error") konsole.push(e.text()); });
seite.on("pageerror", (e) => konsole.push("Absturz: " + e.message)); seite.on("pageerror", (e) => konsole.push("Absturz: " + e.message));
await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded" }); /* ==== ANGEMELDET UEBER DEN KEKS (01.10.2026) ================
await seite.click('.rolle[data-rolle="creator"]');
await seite.fill("#code", "CODE-MODI-0001"); Hier wurde auf die Creator-Kachel getippt und ein Modi-Code
await seite.click("button[type=submit]"); eingegeben -- das ging, solange der stille Zugang jede Kachel
await seite.waitForURL("**/start.html", { timeout: 15000 }); durchliess. Seit die Kachel bindend ist, braeuchte der Browser
die MODI-Kachel, und die gibt es nur auf der Crew-Wand; ein
Browser auf 127.0.0.1 bekommt die Agenturwand.
Gemessen werden soll hier, was ein Modi SIEHT -- nicht, wie er
hereinkommt. Das steht in pruef-modi-verborgen, und dort wird es
an der echten Wand gemessen. */
const modiKeks = String((await anmelden("modi", "CODE-MODI-0001")).keks || "");
await kontext.addCookies(modiKeks.split("; ").filter(Boolean).map((z) => {
const [n2, ...r2] = z.split("=");
return { name: n2, value: r2.join("="), domain: "127.0.0.1", path: "/" };
}));
await seite.goto(BASIS + "/workspace/start.html", { waitUntil: "domcontentloaded" });
/* DER KATALOG STEHT SEIT DEM 23.09.2026 AUF "EURE AUFGABEN". /* DER KATALOG STEHT SEIT DEM 23.09.2026 AUF "EURE AUFGABEN".
Filipe: "das soll auch bitte nicht in der kategorie aufgaben Filipe: "das soll auch bitte nicht in der kategorie aufgaben
sondern eure aufgaben sein bitte." */ sondern eure aufgaben sein bitte." */
+43 -7
View File
@@ -104,7 +104,7 @@ async function hole(keks, pfad, aufruf = {}) {
/* ---------- 1. Wer bekommt die Liste ueberhaupt? --------------------- */ /* ---------- 1. Wer bekommt die Liste ueberhaupt? --------------------- */
console.log("\n=== 1. Wer bekommt die Kategorien zu sehen? ===\n"); console.log("\n=== 1. Wer bekommt die Kategorien zu sehen? ===\n");
const modiAn = await anmelden("creator", "CODE-MODI-0001"); const modiAn = await anmelden("modi", "CODE-MODI-0001");
const dogiAn = await anmelden("admin", "CODE-DOGI-0001"); const dogiAn = await anmelden("admin", "CODE-DOGI-0001");
const manAn = await anmelden("manager", "CODE-MAN-0001"); const manAn = await anmelden("manager", "CODE-MAN-0001");
const creatAn = await anmelden("creator", "CODE-ANNA-0001"); const creatAn = await anmelden("creator", "CODE-ANNA-0001");
@@ -255,10 +255,33 @@ console.log("\n=== 5. Das Feld im echten Formular ===\n");
s.on("console", (e) => { if (e.type() === "error") konsole.push(e.text()); }); s.on("console", (e) => { if (e.type() === "error") konsole.push(e.text()); });
s.on("pageerror", (e) => konsole.push("Absturz: " + e.message)); s.on("pageerror", (e) => konsole.push("Absturz: " + e.message));
await s.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded" }); await s.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded" });
/* ==== GIBT ES DIESE KACHEL AUF DIESER WAND? (01.10.2026) ====
Seit die Kachel bindend ist, muss jeder auf SEINER anmelden.
Die Modi-Kachel steht aber nur auf der Crew-Wand, und ein
Browser auf 127.0.0.1 bekommt die Agenturwand -- dort gibt
es sie nicht.
Also wird gefragt statt angenommen: Ist die Kachel da, wird
getippt wie immer. Ist sie es nicht, geht die Anmeldung ueber
die Schnittstelle und der Keks wird mitgegeben. Gemessen
werden soll hier, was jemand SIEHT -- nicht, wie er
hereinkommt; das steht in pruef-modi-verborgen und wird dort
an der echten Wand gemessen. */
const kachelDa = await s.$(`.rolle[data-rolle="${kachel}"]`);
if (kachelDa) {
await s.click(`.rolle[data-rolle="${kachel}"]`); await s.click(`.rolle[data-rolle="${kachel}"]`);
await s.fill("#code", code); await s.fill("#code", code);
await s.click("button[type=submit]"); await s.click("button[type=submit]");
await s.waitForURL("**/start.html", { timeout: 15000 }); await s.waitForURL("**/start.html", { timeout: 15000 });
} else {
const keks = String((await anmelden(kachel, code)).keks || "");
await k.addCookies(keks.split("; ").filter(Boolean).map((z) => {
const [n2, ...r2] = z.split("=");
return { name: n2, value: r2.join("="), domain: "127.0.0.1", path: "/" };
}));
await s.goto(BASIS + "/workspace/start.html", { waitUntil: "domcontentloaded" });
}
await s.goto(BASIS + "/workspace/aufgaben.html", { waitUntil: "networkidle" }); await s.goto(BASIS + "/workspace/aufgaben.html", { waitUntil: "networkidle" });
await s.waitForTimeout(900); await s.waitForTimeout(900);
await s.click("#neu-oeffnen").catch(() => {}); await s.click("#neu-oeffnen").catch(() => {});
@@ -268,7 +291,8 @@ console.log("\n=== 5. Das Feld im echten Formular ===\n");
/* Der Modi: Feld da, Auswahl gefuellt. */ /* Der Modi: Feld da, Auswahl gefuellt. */
{ {
const { kontext, seite, konsole } = await formular("creator", "CODE-MODI-0001"); /* AUF DER MODI-KACHEL, seit dem 01.10.2026 -- vorher ging jede. */
const { kontext, seite, konsole } = await formular("modi", "CODE-MODI-0001");
const z = await seite.evaluate(() => { const z = await seite.evaluate(() => {
const h = document.getElementById("feld-kategorie"); const h = document.getElementById("feld-kategorie");
const f = document.getElementById("f-kategorie"); const f = document.getElementById("f-kategorie");
@@ -421,11 +445,23 @@ console.log("\n=== 5. Das Feld im echten Formular ===\n");
{ {
const kontext = await browser.newContext(); const kontext = await browser.newContext();
const seite = await kontext.newPage(); const seite = await kontext.newPage();
await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded" }); /* ==== ANGEMELDET UEBER DEN KEKS (01.10.2026) ================
await seite.click('.rolle[data-rolle="creator"]');
await seite.fill("#code", "CODE-MODI-0001"); Hier wurde auf die Creator-Kachel getippt und ein Modi-Code
await seite.click("button[type=submit]"); eingegeben -- das ging, solange der stille Zugang jede Kachel
await seite.waitForURL("**/start.html", { timeout: 15000 }); durchliess. Seit die Kachel bindend ist, braeuchte der Browser
die MODI-Kachel, und die gibt es nur auf der Crew-Wand; ein
Browser auf 127.0.0.1 bekommt die Agenturwand.
Gemessen werden soll hier, was ein Modi SIEHT -- nicht, wie er
hereinkommt. Das steht in pruef-modi-verborgen, und dort wird es
an der echten Wand gemessen. */
const modiKeks = String((await anmelden("modi", "CODE-MODI-0001")).keks || "");
await kontext.addCookies(modiKeks.split("; ").filter(Boolean).map((z) => {
const [n2, ...r2] = z.split("=");
return { name: n2, value: r2.join("="), domain: "127.0.0.1", path: "/" };
}));
await seite.goto(BASIS + "/workspace/start.html", { waitUntil: "domcontentloaded" });
await seite.goto(BASIS + "/workspace/entwicklung.html", { waitUntil: "networkidle" }); await seite.goto(BASIS + "/workspace/entwicklung.html", { waitUntil: "networkidle" });
await seite.waitForTimeout(1600); await seite.waitForTimeout(1600);
const text = await seite.evaluate(() => document.body.innerText); const text = await seite.evaluate(() => document.body.innerText);
+1 -1
View File
@@ -104,7 +104,7 @@ async function hole(keks, pfad, aufruf = {}) {
const jsonKopf = { "Content-Type": "application/json" }; const jsonKopf = { "Content-Type": "application/json" };
const dogiAn = await anmelden("admin", "CODE-DOGI-0001"); const dogiAn = await anmelden("admin", "CODE-DOGI-0001");
const modiAn = await anmelden("creator", "CODE-MODI-0001"); const modiAn = await anmelden("modi", "CODE-MODI-0001");
const manAn = await anmelden("manager", "CODE-MAN-0001"); const manAn = await anmelden("manager", "CODE-MAN-0001");
/* ---------- Zwei Live-Termine mit dem Modi als Teilnehmer ----------- */ /* ---------- Zwei Live-Termine mit dem Modi als Teilnehmer ----------- */
+165 -35
View File
@@ -111,40 +111,130 @@ d.close();
const MODIS = [idModi1, idModi2, idHand]; const MODIS = [idModi1, idModi2, idHand];
void idSpicy; void idSpicy;
/* ---------- Anmelden ueber die Schnittstelle ------------------------- */ /* ---------- Anmelden ueber die Schnittstelle -------------------------
async function anmelden(rolle, code) {
const a = await fetch(BASIS + "/workspace/api/anmelden", { MIT WAND, SEIT DEM 01.10.2026. Vorher ging jede Anmeldung hier ueber
method: "POST", headers: { "Content-Type": "application/json" }, `fetch` auf 127.0.0.1 -- eine Adresse OHNE Wand. Gemessen wurde
body: JSON.stringify({ rolle, code }), damit der stille Zugang und nicht die Kachelregel; seit er weg ist,
waere das die Messung der falschen Sache.
WARUM node:http UND NICHT fetch: `fetch` (undici) setzt den
Host-Kopf selbst aus der Adresse und ignoriert einen mitgegebenen.
Nachgemessen, nicht vermutet -- dieselbe Stelle steht seit dem
22.09. in pruef-chat-kanaele. */
const { request: httpAnfrage } = await import("node:http");
const CREW_WAND = "crew.dogfather-universe.com";
const AGENTUR_WAND = "workspace.dogfather-universe.com";
/** Auf welcher Wand steht die Kachel dieser Rolle?
*
* ABGELEITET STATT AUFGEZAEHLT (01.10.2026). Nach dem Umbau meldeten
* sich acht Stellen ueber eine fremde Kachel an -- ein Manager auf
* der Crew-Wand etwa, wo es seine Kachel gar nicht gibt. Eine Liste
* von Hand waere die, bei der man zwei Stellen vergisst.
*
* Wer eine Wand AUSDRUECKLICH nennt, bekommt sie: Das brauchen die
* Zeilen, die absichtlich die falsche Wand pruefen. */
const CREW_ROLLEN = new Set(["admin", "hand", "linke", "modi", "gast"]);
const wandFuer = (rolle) => (CREW_ROLLEN.has(rolle) ? CREW_WAND : AGENTUR_WAND);
function anmelden(rolle, code, wand = wandFuer(rolle)) {
return new Promise((fertig) => {
const rumpf = JSON.stringify({ rolle, code });
const a = httpAnfrage({
host: "127.0.0.1", port: PORT, path: "/workspace/api/anmelden", method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": Buffer.byteLength(rumpf),
Host: wand,
},
}, (antwort) => {
const teile = [];
antwort.on("data", (t) => teile.push(t));
antwort.on("end", () => {
let daten = {};
try { daten = JSON.parse(Buffer.concat(teile).toString("utf8")); } catch { /* kein JSON */ }
fertig({
status: antwort.statusCode,
daten,
keks: [].concat(antwort.headers["set-cookie"] || [])
.map((z) => z.split(";")[0]).join("; "),
});
});
});
a.on("error", () => fertig({ status: 0, daten: {}, keks: "" }));
a.end(rumpf);
}); });
const daten = await a.json().catch(() => ({}));
const keks = (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
return { status: a.status, daten, keks };
} }
console.log("\n=== 1. Der Eingang: eine Kachel gibt es nicht ===\n"); /* =====================================================================
1. DIE KACHEL IST BINDEND (01.10.2026)
for (const kachel of ["creator", "scout", "manager", "spicy", "admin"]) { Filipe: „mach das. es soll fest sein."
const a = await anmelden(kachel, "CODE-MODI-0001");
ok(a.status === 200 && a.daten?.rolle === "modi", VanVan hatte gemeldet: „Man kann sich mit seinem Zugangscode immer
`Kachel "${kachel}" + Modi-Code -> angemeldet als ${a.daten?.rolle || a.status}`); noch über jeden Button der Startseite anmelden, egal welche Rolle
} man hat."
BIS HEUTE STAND HIER DAS GEGENTEIL, und das war richtig: Vom
09.09.2026 an hatten die Modis KEINE eigene Kachel -- wer keine
hat, muss irgendeine nehmen koennen.
Seit der Haustrennung am 24.09. hat `crew.` einen eigenen
Kachelsatz mit allen fuenf Rollen. Das Verbergen leistet die
ADRESSE; der Trick mit der beliebigen Kachel war ein Rest.
===================================================================== */
console.log("\n=== 1. Der Eingang: die Kachel gilt ===\n");
/* Der Umkehrschluss, und er ist der wichtigere: Der stille Weg darf
NICHT dazu fuehren, dass auch alle anderen die Kachel ignorieren
duerfen. Ein Manager mit der Kachel "creator" muss weiterhin
scheitern -- sonst haette ich nebenbei die Rollenpruefung
abgeschafft, ohne es zu merken. */
{ {
const a = await anmelden("creator", "CODE-MAN-0001"); const a = await anmelden("modi", "CODE-MODI-0001");
ok(a.status === 200 && a.daten?.rolle === "modi",
`auf der Modi-Kachel kommt ein Modi herein (${a.daten?.rolle || a.status})`);
}
/* UND AUF KEINER ANDEREN. Das ist die Aenderung. */
for (const kachel of ["admin", "hand", "linke", "gast"]) {
const a = await anmelden(kachel, "CODE-MODI-0001");
ok(a.status === 401,
`Kachel "${kachel}" + Modi-Code -> abgewiesen (${a.status})`);
}
/* GEGENPROBE: Die anderen Rollen der Crew-Wand kommen auf IHRER
Kachel herein. Ohne sie hiesse „401 ueberall" womoeglich nur, dass
dort gar niemand mehr hereinkommt. */
{
const h = await anmelden("hand", "CODE-HAND-0001");
ok(h.status === 200 && h.daten?.rolle === "hand",
`die rechte Hand auf ihrer Kachel (${h.daten?.rolle || h.status})`);
}
/* UND DIE AGENTURWAND BLEIBT, WIE SIE WAR. Dort war der stille Weg
nie aktiv; ein Modi-Code verhaelt sich weiter wie ein erfundener. */
{
const a = await anmelden("creator", "CODE-MODI-0001", AGENTUR_WAND);
const b = await anmelden("creator", "GIBT-ES-NICHT-1", AGENTUR_WAND);
ok(a.status === 401 && b.status === 401
&& JSON.stringify(a.daten) === JSON.stringify(b.daten),
`auf der Agenturwand klingt ein Modi-Code wie ein erfundener `
+ `(${a.status} vs. ${b.status})`);
}
/* Und die Rollenpruefung der Agentur ist unveraendert: Ein Manager
mit der Kachel "creator" scheitert weiterhin. */
{
const a = await anmelden("creator", "CODE-MAN-0001", AGENTUR_WAND);
ok(a.status === 401, `Manager-Code auf der Creator-Kachel bleibt abgewiesen (${a.status})`); ok(a.status === 401, `Manager-Code auf der Creator-Kachel bleibt abgewiesen (${a.status})`);
} }
/* Wortgleichheit: "modi" von aussen anzugeben darf nicht anders klingen /* Wortgleichheit: "modi" von aussen anzugeben darf nicht anders klingen
als eine erfundene Rolle. */ als eine erfundene Rolle. */
{ {
const m = await anmelden("modi", "FALSCH-FALSCH-1"); /* AUF DER AGENTURWAND klingt „modi" wie eine erfundene Rolle --
const x = await anmelden("gibtesnicht", "FALSCH-FALSCH-1"); dort gibt es die Kachel nicht. Auf crew. gibt es sie, und dort
entscheidet der Code; deshalb wird das hier ausdruecklich an der
Agenturwand gefragt. */
const m = await anmelden("modi", "FALSCH-FALSCH-1", AGENTUR_WAND);
const x = await anmelden("gibtesnicht", "FALSCH-FALSCH-1", AGENTUR_WAND);
ok(m.status === 401 && x.status === 401 ok(m.status === 401 && x.status === 401
&& JSON.stringify(m.daten) === JSON.stringify(x.daten), && JSON.stringify(m.daten) === JSON.stringify(x.daten),
"Rolle \"modi\" von aussen klingt wie eine erfundene " "Rolle \"modi\" von aussen klingt wie eine erfundene "
@@ -152,7 +242,7 @@ for (const kachel of ["creator", "scout", "manager", "spicy", "admin"]) {
} }
{ {
const a = await anmelden("creator", "CODE-MODI-FALSCH"); const a = await anmelden("modi", "CODE-MODI-FALSCH");
ok(a.status === 401, `ein falscher Modi-Code wird abgewiesen (${a.status})`); ok(a.status === 401, `ein falscher Modi-Code wird abgewiesen (${a.status})`);
} }
@@ -184,8 +274,16 @@ const LEUTE = [
["Manager", "manager", "CODE-MAN-0001", false], ["Manager", "manager", "CODE-MAN-0001", false],
["Scout", "scout", "CODE-SCOU-0001", false], ["Scout", "scout", "CODE-SCOU-0001", false],
["Creator", "creator", "CODE-ANNA-0001", false], ["Creator", "creator", "CODE-ANNA-0001", false],
["Modi Marina", "creator", "CODE-MODI-0001", true], /* AUF IHRER EIGENEN KACHEL (01.10.2026). Hier stand „creator" --
["Rechte Hand", "creator", "CODE-HAND-0001", true], der stille Zugang liess damals jede Kachel durch. Seit die Kachel
bindend ist, scheiterte ihre Anmeldung STILL: `unklar(...)` und
weiter, und acht Sichtbarkeitspruefungen fielen lautlos weg.
Genau der Rueckgang, vor dem die Hausregel warnt -- gruen bei
weniger Pruefungen. Gefunden hat ihn nicht der Lauf, sondern der
Vergleich der Anzahl mit dem Lauf davor. */
["Modi Marina", "modi", "CODE-MODI-0001", true],
["Rechte Hand", "hand", "CODE-HAND-0001", true],
]; ];
async function hole(keks, pfad) { async function hole(keks, pfad) {
@@ -239,7 +337,7 @@ console.log("\n=== 3. Auch die ZAHL darf sie nicht mitzaehlen ===\n");
/* ---------- 4. Sehen die Modis einander? ----------------------------- */ /* ---------- 4. Sehen die Modis einander? ----------------------------- */
console.log("\n=== 4. Die Modis sind untereinander ein Team ===\n"); console.log("\n=== 4. Die Modis sind untereinander ein Team ===\n");
{ {
const an = await anmelden("creator", "CODE-MODI-0001"); const an = await anmelden("modi", "CODE-MODI-0001");
const { status, daten } = await hole(an.keks, "/workspace/api/personen"); const { status, daten } = await hole(an.keks, "/workspace/api/personen");
if (status !== 200 || !Array.isArray(daten?.personen)) { if (status !== 200 || !Array.isArray(daten?.personen)) {
unklar(`Personenwahl fuer den Modi nicht lesbar (${status})`); unklar(`Personenwahl fuer den Modi nicht lesbar (${status})`);
@@ -292,7 +390,8 @@ console.log("\n=== 5. Anlegen wie im Betrieb: DogFather legt einen Modi an ===\n
vergessen worden, waeren oben trotzdem alle Haken gruen und kein vergessen worden, waeren oben trotzdem alle Haken gruen und kein
einziger echter Modi kaeme herein. */ einziger echter Modi kaeme herein. */
if (neuDaten?.code) { if (neuDaten?.code) {
const b = await anmelden("creator", neuDaten.code); /* AUF DER MODI-KACHEL, seit dem 01.10.2026 -- vorher ging jede. */
const b = await anmelden("modi", neuDaten.code);
ok(b.status === 200 && b.daten?.rolle === "modi", ok(b.status === 200 && b.daten?.rolle === "modi",
"und meldet sich mit seinem Code an, ueber eine fremde Kachel " "und meldet sich mit seinem Code an, ueber eine fremde Kachel "
+ `(${b.status}, ${b.daten?.rolle})`); + `(${b.status}, ${b.daten?.rolle})`);
@@ -314,7 +413,10 @@ console.log("\n=== 5. Anlegen wie im Betrieb: DogFather legt einen Modi an ===\n
/* ---------- 6. Die Startseite eines Modis ---------------------------- */ /* ---------- 6. Die Startseite eines Modis ---------------------------- */
console.log("\n=== 6. Was ein Modi auf seiner Startseite sieht ===\n"); console.log("\n=== 6. Was ein Modi auf seiner Startseite sieht ===\n");
{ {
const an = await anmelden("creator", "CODE-MODI-0001"); /* AUF SEINER EIGENEN KACHEL, seit dem 01.10.2026. Hier stand
„creator" -- damals gab es fuer einen Modi keine eigene, und der
stille Zugang liess jede durch. Jetzt gilt die Kachel. */
const an = await anmelden("modi", "CODE-MODI-0001");
const { status, daten } = await hole(an.keks, "/workspace/api/ich"); const { status, daten } = await hole(an.keks, "/workspace/api/ich");
if (status !== 200) { if (status !== 200) {
unklar(`/api/ich nicht lesbar (${status})`); unklar(`/api/ich nicht lesbar (${status})`);
@@ -385,12 +487,40 @@ console.log("\n=== 7. Dieselbe Seite mit einem echten Browser ===\n");
seite.on("console", (e) => { if (e.type() === "error") konsole.push(e.text()); }); seite.on("console", (e) => { if (e.type() === "error") konsole.push(e.text()); });
seite.on("pageerror", (e) => konsole.push("Absturz: " + e.message)); seite.on("pageerror", (e) => konsole.push("Absturz: " + e.message));
await seite.goto(BASIS + "/workspace/", { waitUntil: "domcontentloaded" }); /* ==== ANGEMELDET WIRD UEBER DIE WAND, NICHT UEBER DIE SEITE
/* Irgendeine Kachel -- fuer einen Modi gibt es keine eigene. */ (01.10.2026)
await seite.click('.rolle[data-rolle="creator"]');
await seite.fill("#code", "CODE-MODI-0001"); Hier wurde bis heute im Browser auf die Creator-Kachel getippt
await seite.click("button[type=submit]"); und der Modi-Code eingegeben -- das ging, solange der stille
await seite.waitForURL("**/start.html", { timeout: 15000 }); Zugang jede Kachel durchliess.
Seit die Kachel bindend ist, braeuchte der Browser die
CREW-Wand: Dort steht die Modi-Kachel. Ein Browser auf
127.0.0.1 bekommt aber die Agenturwand, und ein Host-Kopf
laesst sich dort nur mit einer Namensumleitung setzen (so macht
es mess-reaktion mit `--host-resolver-rules`).
Der kuerzere und ehrlichere Weg: an der richtigen Wand
anmelden und den Keks mitgeben. Gemessen werden soll, was ein
Modi auf seiner STARTSEITE sieht -- nicht, wie er hereinkommt.
Das steht in Abschnitt 1, und dort wird es an der echten Wand
gemessen. */
const modiKeks = (await anmelden("modi", "CODE-MODI-0001")).keks;
await kontext.addCookies(modiKeks.split("; ").filter(Boolean).map((z) => {
const [n, ...r] = z.split("=");
return { name: n, value: r.join("="), domain: "127.0.0.1", path: "/" };
}));
await seite.goto(BASIS + "/workspace/start.html", { waitUntil: "domcontentloaded" });
/* KEIN `waitForURL` MEHR. Es wartete auf eine Navigation, die es
seit dem 01.10.2026 nicht mehr gibt -- angemeldet wird ueber
die Wand, nicht ueber das Formular. Steht die Seite schon da,
wartet es trotzdem und laeuft in die Frist.
Und wenn der Keks NICHT angenommen wurde, sagt die Zeile
darunter genau das, statt fuenfzehn Sekunden zu schweigen. */
if (!/start\.html/.test(seite.url())) {
unklar(`nach dem Anmelden steht die Seite auf ${seite.url()}`);
}
await seite.waitForTimeout(1200); await seite.waitForTimeout(1200);
const bild = await seite.evaluate(() => ({ const bild = await seite.evaluate(() => ({
@@ -490,7 +620,7 @@ console.log("\n=== 8. Aufgaben, Einträge und Dateien eines Modis ===\n");
Der Kalender ist bewusst nicht dabei: termineSichtbar() gibt jedem Der Kalender ist bewusst nicht dabei: termineSichtbar() gibt jedem
nur Eigenes, dort kann nichts durchsickern. Nachgesehen, nicht nur Eigenes, dort kann nichts durchsickern. Nachgesehen, nicht
angenommen. */ angenommen. */
const an = await anmelden("creator", "CODE-MODI-0001"); const an = await anmelden("modi", "CODE-MODI-0001");
const MERKMAL = "GEHEIMER MODI-EINTRAG"; const MERKMAL = "GEHEIMER MODI-EINTRAG";
/* (a) Eine Aufgabe -- ueber den normalen Weg. */ /* (a) Eine Aufgabe -- ueber den normalen Weg. */
+1 -1
View File
@@ -119,7 +119,7 @@ async function anmelden(rolle, code) {
const holeLage = (keks) => fetch(`${BASIS}/workspace/api/teamlage`, { headers: { Cookie: keks } }); const holeLage = (keks) => fetch(`${BASIS}/workspace/api/teamlage`, { headers: { Cookie: keks } });
const keksDogi = await anmelden("admin", "CODE-DOGI-0001"); const keksDogi = await anmelden("admin", "CODE-DOGI-0001");
const keksHand = await anmelden("creator", "CODE-HAND-0001"); const keksHand = await anmelden("hand", "CODE-HAND-0001");
if (!keksDogi || !keksHand) { if (!keksDogi || !keksHand) {
console.error("FEHLER: Anmeldung misslang -- ohne sie misst diese Datei nichts."); console.error("FEHLER: Anmeldung misslang -- ohne sie misst diese Datei nichts.");
process.exit(1); process.exit(1);
+2 -2
View File
@@ -102,8 +102,8 @@ const setzeStufe = (keks, person_id, stufe) =>
}); });
const keksDogi = await anmelden("admin", "CODE-DOGI-0001"); const keksDogi = await anmelden("admin", "CODE-DOGI-0001");
const keksHand = await anmelden("creator", "CODE-HAND-0001"); const keksHand = await anmelden("hand", "CODE-HAND-0001");
const keksModi = await anmelden("creator", "CODE-MODI-0001"); const keksModi = await anmelden("modi", "CODE-MODI-0001");
if (!keksDogi || !keksHand || !keksModi) { if (!keksDogi || !keksHand || !keksModi) {
console.error("FEHLER: Anmeldung misslang -- ohne sie misst diese Datei nichts."); console.error("FEHLER: Anmeldung misslang -- ohne sie misst diese Datei nichts.");
process.exit(1); process.exit(1);
+6 -1
View File
@@ -211,7 +211,12 @@ for (const [name, host] of [["workspace.", HAUS], ["der Hauptseite", HAUPT]]) {
} }
const kDogi = (await anmelden("admin", "CODE-DOGI-0001", HAUS)).keks; const kDogi = (await anmelden("admin", "CODE-DOGI-0001", HAUS)).keks;
const kModi = (await anmelden("creator", "CODE-MODI-0001", CREW)).keks; /* AUF DER MODI-KACHEL (01.10.2026). Hier stand „creator" -- bis zum
24.09. gab es fuer einen Modi keine eigene Kachel, und der stille
Zugang liess jede durch. Seit die Kachel bindend ist, scheiterte
die Anmeldung, und fuenf Pruefungen wurden rot, ohne dass am
Programm etwas falsch war. */
const kModi = (await anmelden("modi", "CODE-MODI-0001", CREW)).keks;
const kCrea = (await anmelden("creator", "CODE-CREA-0001", HAUS)).keks; const kCrea = (await anmelden("creator", "CODE-CREA-0001", HAUS)).keks;
const kMana = (await anmelden("manager", "CODE-MANA-0001", HAUS)).keks; const kMana = (await anmelden("manager", "CODE-MANA-0001", HAUS)).keks;
ok([kDogi, kModi, kCrea, kMana].every((k) => k.length > 0), "die vier Vergleichsrollen sind angemeldet"); ok([kDogi, kModi, kCrea, kMana].every((k) => k.length > 0), "die vier Vergleichsrollen sind angemeldet");
+3 -3
View File
@@ -97,9 +97,9 @@ async function anmelden(kachel, code) {
return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; "); return (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
} }
const dogi = await anmelden("admin", "CODE-DOGI-0001"); const dogi = await anmelden("admin", "CODE-DOGI-0001");
const hand = await anmelden("creator", "CODE-HAND-0001"); const hand = await anmelden("hand", "CODE-HAND-0001");
const modi = await anmelden("creator", "CODE-MODI-0001"); const modi = await anmelden("modi", "CODE-MODI-0001");
const nane = await anmelden("creator", "CODE-NANE-0001"); const nane = await anmelden("modi", "CODE-NANE-0001");
const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS }); const kopf = (keks) => ({ "Content-Type": "application/json", cookie: keks, origin: BASIS });
+52 -109
View File
@@ -6714,34 +6714,6 @@ workspaceRouter.use((req, res, next) => {
return next(); return next();
}); });
/**
* Gehoert dieser Code zu einem verborgenen Zugang?
*
* Gibt die Person zurueck oder null. `null` heisst hier ausdruecklich
* "nein oder nicht feststellbar" -- ohne Suchschluessel (etwa weil die
* Einstellung fehlt) gibt codeKennung() null zurueck, und dann wird
* niemand angemeldet. Das ist die richtige Richtung: Im Zweifel kommt
* niemand herein, statt dass im Zweifel jemand hereinkommt.
*/
function stillerZugang(code) {
try {
const kennung = codeKennung(code);
if (!kennung) return null;
const k = db().prepare(
"SELECT id, name, rolle, code_hash, code_salt, code_n FROM personen "
+ `WHERE code_kennung = ? AND rolle IN (${
[...TEAM_DOGI_ROLLEN].map((r) => `'${r}'`).join(", ")}) AND aktiv = 1`).get(kennung);
if (!k) return null;
/* Trotz Treffer wird geprueft. Der Suchschluessel ist ein
Wegweiser, kein Ausweis -- und ein Wegweiser, dem man blind
folgt, ist eine Hintertuer. */
return gleich(hashe(code, k.code_salt, k.code_n), k.code_hash) ? k : null;
} catch (fehler) {
console.error("[workspace] Stiller Zugang nicht pruefbar:", fehler?.message);
return null;
}
}
/* DIE TAFEL LIEGT SEIT DEM 11.09.2026 IN workspace-rechte.js. /* DIE TAFEL LIEGT SEIT DEM 11.09.2026 IN workspace-rechte.js.
Hier stand ein nur LESENDER Weg. Filipe: "so dass ich die da auch Hier stand ein nur LESENDER Weg. Filipe: "so dass ich die da auch
@@ -6763,95 +6735,49 @@ workspaceRouter.post("/workspace/api/anmelden", (req, res) => {
const codeBrauchbar = code.length >= 4 && code.length <= 200; const codeBrauchbar = code.length >= 4 && code.length <= 200;
/* ================================================================= /* =================================================================
DER STILLE ZUGANG (09.09.2026) DIE KACHEL IST BINDEND (01.10.2026)
Wunsch Filipe: *"dass die keine neue eingangs kachel bekommen wie Filipe: „mach das. es soll fest sein."
spicy dogfather und so sondern einfach einen code. damit die von
der workspace auch nicht mal sehen dass die modis von mir einen
eigenen zugang haben."*
Ein Modi oeffnet dieselbe Seite, tippt auf IRGENDEINE vorhandene VanVan hatte gemeldet: „Man kann sich mit seinem Zugangscode
Kachel und gibt seinen Code ein. Welche Kachel, ist gleichgueltig immer noch über jeden Button der Startseite anmelden, egal
-- der Code allein entscheidet. Von aussen sieht das aus wie jede welche Rolle man hat."
andere Anmeldung: dieselbe Seite, dieselbe Anfrage, dieselben
Felder.
ZWEI NAHELIEGENDE WEGE, DIE ABSICHTLICH NICHT GEWAEHLT WURDEN: ---------------------------------------------------------------
HIER STAND DER STILLE ZUGANG (09.09. bis 01.10.2026)
* Ein Merkmal im Code ("M-..."): waere ein sichtbares Kennzeichen Er liess einen Team-Dogi-Code auf JEDER Kachel durch. Das war
auf dem Zettel des Modis. Wer den Code sieht, sieht die Sorte. kein Versehen, sondern Filipes Entscheidung vom 09.09.2026:
* Eine eigene Adresse (/modi.html): waere eine Seite, die man „dass die keine neue eingangs kachel bekommen wie spicy
finden kann -- und die Seitenpruefung zaehlt Seiten. dogfather und so sondern einfach einen code. damit die von der
workspace auch nicht mal sehen dass die modis von mir einen
eigenen zugang haben."
WARUM DAS VOR DEM GEWOHNTEN WEG STEHT UND NICHT DAHINTER: Ein Wer keine Kachel hat, muss irgendeine nehmen koennen.
Rueckfall NACH einem Fehlversuch haette den gewohnten Weg
verlaengert -- und zwar nur dann, wenn er scheitert. Genau daran
waere es zu erkennen gewesen: Fehlversuche dauern ploetzlich
laenger als frueher. Der Suchschluessel kostet Mikrosekunden und
trifft in aller Regel nichts; fuer alle anderen bleibt der Ablauf
unveraendert, auch in der Zeit.
DER SUCHSCHLUESSEL ALLEIN LAESST NIEMANDEN HEREIN. Er sagt nur, WARUM ER JETZT WEG KANN -- und das ist der ganze Punkt: Seit
WEN man pruefen soll -- danach entscheidet scrypt wie ueberall. */ der Haustrennung am 24.09.2026 gibt es ZWEI Waende. Auf `crew.`
/* AUF DEN ALTEN ADRESSEN WIRD DER VERBORGENE ZUGANG GAR NICHT ERST steht ein eigener Kachelsatz (CREW_KACHEL): DogFather, rechte
GEFRAGT (Entscheidung Filipe, 10.09.2026). Hand, linke Hand, Modi, Community. Alle fuenf Rollen haben dort
ihre Kachel.
Vorher stand hier eine Weiterleitung: Wer seinen Code noch auf Das Verbergen leistet seither die ADRESSE. Wer sie nicht kennt,
workspace.dogfather-universe.com eintippte, bekam keine Sitzung, findet die Wand nicht; wer sie kennt, sieht die Rollennamen
aber den Weg zur neuen Adresse. Filipes Entscheidung dagegen: ohnehin offen darauf stehen. Der Trick mit der beliebigen
"gar nichts -- Code stimmt nicht". Die alte Wand soll sich Kachel hat niemanden mehr geschuetzt und nur noch dafuer
verhalten, als waere der Code erfunden. gesorgt, dass die Wahl folgenlos blieb.
WARUM DAS NICHT NUR EINE ANDERE ANTWORT IST, SONDERN EIN ANDERER WAS SICH NICHT AENDERT: Auf der Agenturwand war der stille
WEG: Haette ich hier bloss `return 401` gesetzt, waere der Ablauf Zugang nie aktiv. Ein Team-Dogi-Code verhaelt sich dort
trotzdem ein anderer geblieben -- ein Suchschluessel-Treffer und weiterhin wie ein erfundener -- gleiche Antwort, gleicher Weg,
EIN scrypt-Durchlauf statt der Kandidatenschleife der gewaehlten gleiche Dauer. Dafuer sorgt der Kachelsatz unten, nicht eine
Kachel. Das ist messbar, und Zeitunterschiede sind genau die eigene Bedingung.
Spur, die dieser ganze Zugang vermeiden soll.
Deshalb wird `stillerZugang` auf diesen drei Adressen ueberhaupt `code_kennung` in `personen` wird weiter GESCHRIEBEN, aber
nicht aufgerufen. Der Code faellt danach durch den gewohnten Weg nicht mehr gelesen. Sie war der Suchschluessel dieses Weges.
wie jeder unbekannte: dieselbe Schleife, derselbe Eintrag in Stehen gelassen und nicht geloescht: Eine Spalte zu entfernen
`versuche`, dieselbe Antwort, dieselbe Dauer. Die alte Wand ist eine Schemaaenderung mit Sicherung, und sie kostet nichts.
verhaelt sich damit exakt so wie vor dem Tag, an dem es diese Wer sie wieder braucht, findet hier, wofuer sie da war. */
Rollen gab.
DER PREIS, und er gehoert genannt: Ein Modi, der die alte
Verknuepfung auf dem Handy hat, sammelt dort Fehlversuche wie
jeder andere auch. Acht in zehn Minuten sperren seine IP -- und
zwar auch fuer die neue Adresse, denn die Sperre haengt an der
IP, nicht am Hostnamen. Das ist der Preis der Stille; er faellt
nur an, wenn jemand die alte Adresse mehrfach probiert. */
/* UND AUCH NICHT AUF DER WAND DES TREFFS (11.09.2026).
Hier stand `!istOhneModiAdresse(...)` -- also "ueberall ausser auf
den alten Adressen". Als dritte Wand dazukam, hiess das
stillschweigend auch: dort. Ein Modi kam damit ueber den
verborgenen Weg in den Treff herein, obwohl die Kachelliste dort
nur `gast` kennt und die Adressregel ihn abweist.
Gefunden hat das nicht das Lesen, sondern eine Zeile in
pruef-treff, die das GEGENTEIL behauptete und rot wurde:
"auf treff. kommt sonst niemand herein -- auch DogFather nicht
(401/200)". DogFather wurde abgewiesen, der Modi nicht.
Die Lehre ist dieselbe wie bei `null` in der Rechtetafel: Eine
Bedingung, die durch AUSSCHLIESSEN formuliert ist, nimmt jede
neue Moeglichkeit automatisch mit auf. Jetzt steht dort, WO der
Weg gilt, statt wo er nicht gilt. */
const stilleWand = istCrewAdresse(req.get("host")) || istPruefAdresse(req.get("host"));
const still = codeBrauchbar && stilleWand ? stillerZugang(code) : null;
if (still) {
db().prepare("DELETE FROM versuche WHERE ip = ?").run(ip);
db().prepare("UPDATE personen SET letzter_login = ? WHERE id = ?").run(jetzt(), still.id);
sitzungSetzen(res, still, req);
protokolliere("anmeldung", {
personId: still.id, rolle: still.rolle, ip, detail: still.name,
});
return res.json({
weiter: "/workspace/start.html", name: still.name, rolle: still.rolle,
});
}
/* Ab hier der gewohnte Weg -- unveraendert. 'modi' ist keine /* Ab hier der gewohnte Weg -- unveraendert. 'modi' ist keine
Kachel-Rolle und faellt deshalb in dieselbe Antwort wie eine Kachel-Rolle und faellt deshalb in dieselbe Antwort wie eine
@@ -6885,7 +6811,24 @@ workspaceRouter.post("/workspace/api/anmelden", (req, res) => {
Wand gerade dran ist. Ein Manager, der crew. erraet und seinen Wand gerade dran ist. Ein Manager, der crew. erraet und seinen
Code eintippt, faellt dadurch in genau dieselbe Antwort wie Code eintippt, faellt dadurch in genau dieselbe Antwort wie
jemand mit einer erfundenen Rolle. */ jemand mit einer erfundenen Rolle. */
const kachelSatz = istCrewAdresse(req.get("host")) ? CREW_KACHEL : ROLLEN_KACHEL; /* ==== EINE PRUEFADRESSE IST KEINE WAND (01.10.2026) ==========
`127.0.0.1` ist weder crew. noch die Agentur. Bis heute fiel
das nicht auf: Der stille Zugang liess Team-Dogi-Codes dort
ohnehin durch, egal welcher Kachelsatz galt. Mit seinem
Wegfall gaelte dort der AGENTUR-Satz -- und damit kaeme kein
einziger Modi mehr herein. Fuenfzig Pruefdateien melden
Team-Rollen ueber diese Adresse an; sie waeren alle rot, und
zwar wegen der Messumgebung, nicht wegen des Programms.
Auf einer Adresse ohne Wand gibt es deshalb ALLE Kacheln. Das
versteckt nichts: Welche Kachel auf welcher ECHTEN Wand steht,
entscheiden weiterhin die zwei Mengen darunter, und genau das
misst pruef-modi-verborgen -- mit ausdruecklichem Host-Kopf,
nicht ueber 127.0.0.1. */
const kachelSatz = istPruefAdresse(req.get("host"))
? new Set([...ROLLEN_KACHEL, ...CREW_KACHEL])
: (istCrewAdresse(req.get("host")) ? CREW_KACHEL : ROLLEN_KACHEL);
if (!kachelSatz.has(rolle) || !codeBrauchbar) { if (!kachelSatz.has(rolle) || !codeBrauchbar) {
db().prepare("INSERT INTO versuche (ip, zeitpunkt) VALUES (?,?)").run(ip, jetzt()); db().prepare("INSERT INTO versuche (ip, zeitpunkt) VALUES (?,?)").run(ip, jetzt());
+5 -5
View File
@@ -16,8 +16,8 @@
verdeckt. Gefunden hat es pruef-struktur. verdeckt. Gefunden hat es pruef-struktur.
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als <!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
ausserhalb der App -- auf einer Seite, die genau erklaeren soll, ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
@@ -33,7 +33,7 @@
schreibt jede Seite app.webmanifest -- auch die hier. --> schreibt jede Seite app.webmanifest -- auch die hier. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<style> <style>
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite /* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht, soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
@@ -135,7 +135,7 @@
<script src="assets/js/anruf-probe.js?v=202609302348" defer></script> <script src="assets/js/anruf-probe.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -23,25 +23,25 @@
}, },
"icons": [ "icons": [
{ {
"src": "/assets/img/app-symbole/workspace-192.png?v=202609302348", "src": "/assets/img/app-symbole/workspace-192.png?v=202610010022",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-512.png?v=202609302348", "src": "/assets/img/app-symbole/workspace-512.png?v=202610010022",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609302348", "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202610010022",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609302348", "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202610010022",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
+19 -19
View File
@@ -12,19 +12,19 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -430,22 +430,22 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach <!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne `window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. --> Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202609302348"></script> <script src="assets/js/textform.js?v=202610010022"></script>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/zuteilung.js?v=202609302348" defer></script> <script src="assets/js/zuteilung.js?v=202610010022" defer></script>
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in <!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
eigene Datei; hier zeigt er den Creator-Katalog. eigene Datei; hier zeigt er den Creator-Katalog.
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. --> Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
<script src="assets/js/vorlagenbrett.js?v=202609302348" defer></script> <script src="assets/js/vorlagenbrett.js?v=202610010022" defer></script>
<script src="assets/js/aufgaben.js?v=202609302348" defer></script> <script src="assets/js/aufgaben.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/automation.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/automation.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -168,15 +168,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/automation.js?v=202609302348" defer></script> <script src="assets/js/automation.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -197,16 +197,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/befinden.js?v=202609302348" defer></script> <script src="assets/js/befinden.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+22 -22
View File
@@ -12,24 +12,24 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202610010022" />
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett <!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite „Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
Stelle, an der dieselbe Sache anders aussieht. --> Stelle, an der dieselbe Sache anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -304,19 +304,19 @@
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach <!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne `window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. --> Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
<script src="assets/js/textform.js?v=202609302348"></script> <script src="assets/js/textform.js?v=202610010022"></script>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/checkliste.js?v=202609302348" defer></script> <script src="assets/js/checkliste.js?v=202610010022" defer></script>
<script src="assets/js/ampel.js?v=202609302348" defer></script> <script src="assets/js/ampel.js?v=202610010022" defer></script>
<script src="assets/js/schulung.js?v=202609302348" defer></script> <script src="assets/js/schulung.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/bereich.js?v=202609302348" defer></script> <script src="assets/js/bereich.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+19 -19
View File
@@ -7,17 +7,17 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. --> <!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -108,15 +108,15 @@
</main> </main>
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. --> <!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/auskunft.js?v=202609302348" defer></script> <script src="assets/js/auskunft.js?v=202610010022" defer></script>
<script src="assets/js/bewerben.js?v=202609302348" defer></script> <script src="assets/js/bewerben.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,16 +7,16 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. --> <!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -80,16 +80,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/auskunft.js?v=202609302348" defer></script> <script src="assets/js/auskunft.js?v=202610010022" defer></script>
<script src="assets/js/bewerbungen.js?v=202609302348" defer></script> <script src="assets/js/bewerbungen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+3 -3
View File
@@ -59,11 +59,11 @@
<!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite: <!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite:
Zwei Fassungen altern unterschiedlich, und dann sieht der Stream Zwei Fassungen altern unterschiedlich, und dann sieht der Stream
anders aus als das, worueber geredet wird. --> anders aus als das, worueber geredet wird. -->
<link rel="stylesheet" href="assets/css/werbung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/werbung.css?v=202610010022" />
</head> </head>
<body class="obs-buehne"> <body class="obs-buehne">
<div id="platz"></div> <div id="platz"></div>
<script src="assets/js/werbung.js?v=202609302348" defer></script> <script src="assets/js/werbung.js?v=202610010022" defer></script>
<script src="assets/js/buehne.js?v=202609302348" defer></script> <script src="assets/js/buehne.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/calls.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/calls.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -89,15 +89,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/ki.js?v=202609302348" defer></script> <script src="assets/js/ki.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/calls.js?v=202609302348" defer></script> <script src="assets/js/calls.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+20 -20
View File
@@ -12,26 +12,26 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog, <!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem .neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html. zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
Dialog zu sehen bekam. --> Dialog zu sehen bekam. -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/chat.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/chat.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -739,24 +739,24 @@
</form> </form>
</dialog> </dialog>
<script src="assets/js/bereiche.js?v=202609302348"></script> <script src="assets/js/bereiche.js?v=202610010022"></script>
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js <!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter, fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
wirklich vor den anderen dasteht. --> wirklich vor den anderen dasteht. -->
<script src="assets/js/textform.js?v=202609302348"></script> <script src="assets/js/textform.js?v=202610010022"></script>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348"></script> <script src="assets/js/kopf.js?v=202610010022"></script>
<script src="assets/js/glocke.js?v=202609302348"></script> <script src="assets/js/glocke.js?v=202610010022"></script>
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten` <!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt. bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
Andersherum waere die Reihenfolge eine stille Abhaengigkeit -- Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
die Knoepfe fehlten, und niemand wuesste warum. --> die Knoepfe fehlten, und niemand wuesste warum. -->
<script src="assets/js/anruf.js?v=202609302348"></script> <script src="assets/js/anruf.js?v=202610010022"></script>
<!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom <!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom
Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein
Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne
@@ -767,8 +767,8 @@
sie beim ersten Foto noch nicht da -- und der erste Klick ginge sie beim ersten Foto noch nicht da -- und der erste Klick ginge
wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal
auftritt, ist der, den man nie nachstellen kann. --> auftritt, ist der, den man nie nachstellen kann. -->
<script src="assets/js/bildschau.js?v=202609302348"></script> <script src="assets/js/bildschau.js?v=202610010022"></script>
<script src="assets/js/chat.js?v=202609302348"></script> <script src="assets/js/chat.js?v=202610010022"></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/content.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/content.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -179,15 +179,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/checkliste.js?v=202609302348" defer></script> <script src="assets/js/checkliste.js?v=202610010022" defer></script>
<script src="assets/js/content.js?v=202609302348" defer></script> <script src="assets/js/content.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+6 -6
View File
@@ -36,15 +36,15 @@
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp" <link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" /> type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst <!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen 404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es: statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
die eine Seite, auf der man das Umfaerben sieht. --> die eine Seite, auf der man das Umfaerben sieht. -->
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/crew-haus.css?v=202610010022" />
</head> </head>
<body class="gate gate--crew"> <body class="gate gate--crew">
@@ -459,7 +459,7 @@
<script src="assets/js/gate.js?v=202609302348" defer></script> <script src="assets/js/gate.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+4 -4
View File
@@ -23,25 +23,25 @@
}, },
"icons": [ "icons": [
{ {
"src": "/assets/img/app-symbole/crew-192.png?v=202609302348", "src": "/assets/img/app-symbole/crew-192.png?v=202610010022",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/crew-512.png?v=202609302348", "src": "/assets/img/app-symbole/crew-512.png?v=202610010022",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609302348", "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202610010022",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609302348", "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202610010022",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/dateien.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/dateien.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -108,15 +108,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/dateien.js?v=202609302348" defer></script> <script src="assets/js/dateien.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -306,20 +306,20 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein, <!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
in Dokumentreihenfolge. --> in Dokumentreihenfolge. -->
<script src="assets/js/vorlagenbrett.js?v=202609302348" defer></script> <script src="assets/js/vorlagenbrett.js?v=202610010022" defer></script>
<script src="assets/js/entwicklung.js?v=202609302348" defer></script> <script src="assets/js/entwicklung.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/hilfe.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -146,14 +146,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/hilfe.js?v=202609302348" defer></script> <script src="assets/js/hilfe.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+5 -5
View File
@@ -30,9 +30,9 @@
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp" <link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
type="image/webp" media="(max-width: 899px)" /> type="image/webp" media="(max-width: 899px)" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
</head> </head>
<body class="gate"> <body class="gate">
@@ -427,7 +427,7 @@
<script src="assets/js/gate.js?v=202609302348" defer></script> <script src="assets/js/gate.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/kalender.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/kalender.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -383,15 +383,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/kalender.js?v=202609302348" defer></script> <script src="assets/js/kalender.js?v=202610010022" defer></script>
<script src="assets/js/kalender-abo.js?v=202609302348" defer></script> <script src="assets/js/kalender-abo.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/leistung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/leistung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -444,13 +444,13 @@
</form> </form>
</dialog> </dialog>
<script src="assets/js/meldung.js?v=202609302348"></script> <script src="assets/js/meldung.js?v=202610010022"></script>
<script src="assets/js/nachfrage.js?v=202609302348"></script> <script src="assets/js/nachfrage.js?v=202610010022"></script>
<script src="assets/js/wahl.js?v=202609302348"></script> <script src="assets/js/wahl.js?v=202610010022"></script>
<script src="assets/js/bereiche.js?v=202609302348"></script> <script src="assets/js/bereiche.js?v=202610010022"></script>
<script src="assets/js/kopf.js?v=202609302348"></script> <script src="assets/js/kopf.js?v=202610010022"></script>
<script src="assets/js/glocke.js?v=202609302348"></script> <script src="assets/js/glocke.js?v=202610010022"></script>
<script src="assets/js/leistung.js?v=202609302348"></script> <script src="assets/js/leistung.js?v=202610010022"></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,13 +12,13 @@
vergessen wird. --> vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/material.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/material.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start" data-ton="42" data-buehne="studio"> <body class="start" data-ton="42" data-buehne="studio">
@@ -138,14 +138,14 @@
<p class="m-laedt" id="laedt">Einen Moment …</p> <p class="m-laedt" id="laedt">Einen Moment …</p>
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/material.js?v=202609302348" defer></script> <script src="assets/js/material.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+14 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/notizen.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/notizen.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start" data-ton="46"> <body class="start" data-ton="46">
@@ -181,12 +181,12 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. --> liest daraus die Leitungsrollen. -->
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/notizen.js?v=202609302348" defer></script> <script src="assets/js/notizen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/personen.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/personen.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -453,14 +453,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/personen.js?v=202609302348" defer></script> <script src="assets/js/personen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/profil.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -214,16 +214,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/steckbrief.js?v=202609302348" defer></script> <script src="assets/js/steckbrief.js?v=202610010022" defer></script>
<script src="assets/js/profil.js?v=202609302348" defer></script> <script src="assets/js/profil.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+19 -19
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/reaktion.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/reaktion.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/werbung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/werbung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start reaktion-seite" data-stand="laedt"> <body class="start reaktion-seite" data-stand="laedt">
@@ -881,15 +881,15 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. --> liest daraus die Leitungsrollen. -->
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/spendenkarte.js?v=202609302348" defer></script> <script src="assets/js/spendenkarte.js?v=202610010022" defer></script>
<script src="assets/js/werbung.js?v=202609302348" defer></script> <script src="assets/js/werbung.js?v=202610010022" defer></script>
<script src="assets/js/reaktion.js?v=202609302348" defer></script> <script src="assets/js/reaktion.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -134,14 +134,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. --> die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/rechte.js?v=202609302348" defer></script> <script src="assets/js/rechte.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/report.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/report.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -106,17 +106,17 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/ki.js?v=202609302348" defer></script> <script src="assets/js/ki.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/report.js?v=202609302348" defer></script> <script src="assets/js/report.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/scouting.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/scouting.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -173,14 +173,14 @@
</div> </div>
</div> </div>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/scouting.js?v=202609302348" defer></script> <script src="assets/js/scouting.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,21 +12,21 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe <!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. --> den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
<link rel="stylesheet" href="assets/css/heim.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/heim.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -732,16 +732,16 @@
</p> </p>
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/live.js?v=202609302348" defer></script> <script src="assets/js/live.js?v=202610010022" defer></script>
<script src="assets/js/start.js?v=202609302348" defer></script> <script src="assets/js/start.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/startcheck.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -85,16 +85,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/ki.js?v=202609302348" defer></script> <script src="assets/js/ki.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/startcheck.js?v=202609302348" defer></script> <script src="assets/js/startcheck.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/profil.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/profil.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -150,16 +150,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/auskunft.js?v=202609302348" defer></script> <script src="assets/js/auskunft.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/steckbrief.js?v=202609302348" defer></script> <script src="assets/js/steckbrief.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+14 -14
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/support.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/support.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -128,16 +128,16 @@
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese (reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
trotzdem, deshalb sah man es nur in der Browserkonsole. --> trotzdem, deshalb sah man es nur in der Browserkonsole. -->
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der <!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
uebersicht.html, und heute hier. --> uebersicht.html, und heute hier. -->
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/support.js?v=202609302348" defer></script> <script src="assets/js/support.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+3 -3
View File
@@ -23,7 +23,7 @@
„Eigenes CSS" leer lassen (der Grund ist schon „Eigenes CSS" leer lassen (der Grund ist schon
durchsichtig). durchsichtig).
====================================================================== --> ====================================================================== -->
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610010022" />
<style> <style>
/* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das /* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das
Bild; jede Fläche, die hier steht, deckt dort etwas zu. */ Bild; jede Fläche, die hier steht, deckt dort etwas zu. */
@@ -80,7 +80,7 @@
<body> <body>
<div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div> <div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div>
<script src="assets/js/spendenkarte.js?v=202609302348" defer></script> <script src="assets/js/spendenkarte.js?v=202610010022" defer></script>
<script src="assets/js/tafel.js?v=202609302348" defer></script> <script src="assets/js/tafel.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+18 -18
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610010022" />
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie <!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
der Regel hier waere die zweite Stelle, an der dieselbe Sache der Regel hier waere die zweite Stelle, an der dieselbe Sache
anders aussieht. --> anders aussieht. -->
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bewerbung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -111,15 +111,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/talente.js?v=202609302348" defer></script> <script src="assets/js/talente.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/team.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/team.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -110,15 +110,15 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/team.js?v=202609302348" defer></script> <script src="assets/js/team.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -7,20 +7,20 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/team.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/team.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu <!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
@@ -84,15 +84,15 @@
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
es niemandem auf, und deshalb prueft pruef-css-klassen die es niemandem auf, und deshalb prueft pruef-css-klassen die
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. --> ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<script src="assets/js/teamlage.js?v=202609302348" defer></script> <script src="assets/js/teamlage.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/bereich.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/bereich.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -112,15 +112,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/teilen.js?v=202609302348" defer></script> <script src="assets/js/teilen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,14 +7,14 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -126,14 +126,14 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/treff-moderation.js?v=202609302348" defer></script> <script src="assets/js/treff-moderation.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,18 +7,18 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/treff.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/treff.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des <!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. --> Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -248,14 +248,14 @@
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
die seit dem 07.09. jede Seite danach absucht. --> die seit dem 07.09. jede Seite danach absucht. -->
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/auskunft.js?v=202609302348" defer></script> <script src="assets/js/auskunft.js?v=202610010022" defer></script>
<script src="assets/js/treff-regeln.js?v=202609302348" defer></script> <script src="assets/js/treff-regeln.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -12,22 +12,22 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der <!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
Dialog "Creator anlegen". --> Dialog "Creator anlegen". -->
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/uebersicht.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -149,16 +149,16 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/uebersicht.js?v=202609302348" defer></script> <script src="assets/js/uebersicht.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -335,14 +335,14 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/live.js?v=202609302348" defer></script> <script src="assets/js/live.js?v=202610010022" defer></script>
<script src="assets/js/unsere-seiten.js?v=202609302348" defer></script> <script src="assets/js/unsere-seiten.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,13 +7,13 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -106,17 +106,17 @@
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js <!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
„Cannot read properties of undefined (reading 'LEITUNG')" ab. --> „Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/holen.js?v=202609302348" defer></script> <script src="assets/js/holen.js?v=202610010022" defer></script>
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort <!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
von pruef-meldungen, nicht beim Ansehen. --> von pruef-meldungen, nicht beim Ansehen. -->
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/unterstuetzen.js?v=202609302348" defer></script> <script src="assets/js/unterstuetzen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+16 -16
View File
@@ -7,15 +7,15 @@
<meta name="robots" content="noindex, nofollow" /> <meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/entwicklung.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/werdegang.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -144,14 +144,14 @@
</main> </main>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/werdegang.js?v=202609302348" defer></script> <script src="assets/js/werdegang.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+15 -15
View File
@@ -12,13 +12,13 @@
vergessen wird. --> vergessen wird. -->
<link rel="manifest" href="/workspace/app.webmanifest" /> <link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/willkommen.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026). <!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`, `body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
@@ -75,13 +75,13 @@
<p class="fehler" id="fehler" hidden></p> <p class="fehler" id="fehler" hidden></p>
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/willkommen.js?v=202609302348" defer></script> <script src="assets/js/willkommen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>
+17 -17
View File
@@ -12,20 +12,20 @@
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
eine Flaeche sind statt zweier. --> eine Flaeche sind statt zweier. -->
<meta name="theme-color" content="#06090f" /> <meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609302348" /> <link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610010022" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609302348" /> <link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610010022" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/gate.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/start.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/start.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/aufgaben.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/wissen.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/wissen.css?v=202610010022" />
<link rel="stylesheet" href="assets/css/module.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/module.css?v=202610010022" />
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026). <!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
Auf der Agenturadresse ist sie leer -- das Haus hier IST der Auf der Agenturadresse ist sie leer -- das Haus hier IST der
Grundzustand. Auf der Adresse von Team Dogi biegt der Server Grundzustand. Auf der Adresse von Team Dogi biegt der Server
genau diesen Dateinamen auf crew-haus.css um, und die Seite genau diesen Dateinamen auf crew-haus.css um, und die Seite
kommt schon beim ERSTEN Abruf in Lila und Babyblau an -- kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
ohne Umfaerben im Browser, ohne Flackern. --> ohne Umfaerben im Browser, ohne Flackern. -->
<link rel="stylesheet" href="assets/css/haus.css?v=202609302348" /> <link rel="stylesheet" href="assets/css/haus.css?v=202610010022" />
</head> </head>
<body class="start"> <body class="start">
@@ -190,15 +190,15 @@
</main> </main>
<script src="assets/js/meldung.js?v=202609302348" defer></script> <script src="assets/js/meldung.js?v=202610010022" defer></script>
<script src="assets/js/hochladen.js?v=202609302348" defer></script> <script src="assets/js/hochladen.js?v=202610010022" defer></script>
<script src="assets/js/nachfrage.js?v=202609302348" defer></script> <script src="assets/js/nachfrage.js?v=202610010022" defer></script>
<script src="assets/js/wahl.js?v=202609302348" defer></script> <script src="assets/js/wahl.js?v=202610010022" defer></script>
<script src="assets/js/bereiche.js?v=202609302348" defer></script> <script src="assets/js/bereiche.js?v=202610010022" defer></script>
<script src="assets/js/installieren.js?v=202609302348" defer></script> <script src="assets/js/installieren.js?v=202610010022" defer></script>
<script src="assets/js/kopf.js?v=202609302348" defer></script> <script src="assets/js/kopf.js?v=202610010022" defer></script>
<script src="assets/js/glocke.js?v=202609302348" defer></script> <script src="assets/js/glocke.js?v=202610010022" defer></script>
<script src="assets/js/wissen.js?v=202609302348" defer></script> <script src="assets/js/wissen.js?v=202610010022" defer></script>
</body> </body>
</html> </html>