Die Dogen-Muenzen: drei Saetze zu je drei Stufen
Filipe, 28.09.2026: "ich werde die drei varianten schicken fuer niedrige spenden. mittlere und hohe spenden. alle drei varianten will ich drauf so dass ich sie aussuchen kann wie ich will. aber pass sie sofort diesen 3 kategorien an." DIE ZUORDNUNG IST GELESEN, NICHT GERATEN In allen drei Saetzen geht es nacktes Metall -> Steinkranz -> Vollbesatz; Filipes Dateinummern (01/02/03) und die Uhrzeiten seiner Entwuerfe laufen genau mit. Klassik: Palladium, Gold mit Saphir, Diamant. Amethyst: Stahl, Rosegold, Vollbesatz. Neon: Chrom auf Schwarz, Steinkranz, Vollbesatz. AUS 25 MB WURDEN 443 KB Je Bild 320 px WebP statt 1254 px PNG, Faktor 58. Die Zahl ist gemessen: Groesster Fall in der Seite 110 px (Karte, hoechste Stufe), auf der OBS-Tafel 189 px, bei doppelter Bildschirmdichte rund 220. Drei Megabyte fuer ein 24-Pixel-Zeichen waeren ein Ladebalken mitten in der Sendung -- wer auf dem Handy zusieht, bekaeme die Karte, wenn sie schon wieder weg ist. Die Originale liegen neben den Datenbanksicherungen, nicht im Repo: 26 MB, die bei jedem Klon mitkaemen und die niemand ausliefert. WELCHE MUENZE WANN -- ABGELEITET STATT GEPFLEGT "Niedrig, mittel, hoch" gibt es im Haus schon: die Stufenleiter. Zwei eigene Grenzen daneben waeren eine zweite Antwort auf dieselbe Frage, und spaetestens beim Verschieben einer Stufe zeigte die Muenze etwas anderes an als der Name auf der Karte. Die Leiter wird deshalb in DRITTEL geteilt -- bei den drei Werksstufen genau eine je Muenze, bei sechs zwei je Muenze, bei einer einzigen ueberall die mittlere. DIE MUENZE STEHT AUCH GROSS AUF DER KARTE Sonst haette Filipe neun Bilder fuer ein 24-Pixel-Zeichen gezeichnet. "dogen" ist dafuer eine neue Vorlage neben Herz, Welle und Krone -- und die drei Werksstufen bekommen sie EINMAL zugeteilt, nur wo noch die Werksvorlage steht und kein eigenes Bild hochgeladen ist. Wer danach ein Herz zurueckstellt, findet es morgen nicht wieder als Muenze vor: Eine Einstellung, die sich gegen den Benutzer durchsetzt, wird abgeschafft. Und steht sie gross da, nimmt das Stilblatt die kleine neben der Zahl weg -- dieselbe Muenze in zwei Groessen auf einer Karte sieht aus wie ein Versehen. AM BILDSCHIRMFOTO NACHGEBESSERT Bei 0,92em blieb an den Spendenknoepfen ein 13,5-Pixel-Fleck uebrig; bei einem flachen Symbol reicht das, bei einer Muenze mit Pfote, Schriftzug und Steinen nicht. Jetzt 1,05em ueberall und 1,6em auf den Knoepfen. In der Auswahl sahen "Amethyst" und "Neon" bei 40 px praktisch gleich aus -- und genau sie auseinanderzuhalten ist der Zweck dieser Liste. Jetzt 56/64/72 px. Und was gewaehlt ist, steht als WORT da: Neben neun glaenzenden Muenzen geht ein ruhiger Rahmen unter, und wer Farben schlecht unterscheidet, sieht ihn gar nicht. EIN SATZWECHSEL ERREICHT ALLE Die Karten trugen ihren Satz immer selbst mit und waren richtig. Die Muenzen an den Spendenknoepfen und beim eigenen Stand aber nicht -- die holt eine Seite nur bei einer Spende neu. Eine Einstellung, die nur dort ankommt, wo sie gemacht wurde, ist keine Einstellung des Hauses. ZWEI BEFUNDE GEGEN DIE PRUEFUNG SELBST 1. Sie verlangte "erste Grenze ECHT kleiner als zweite". Bei genau zwei Stufen fallen beide absichtlich zusammen -- sie meldete einen Fehler, wo das Verhalten richtig ist. 2. Sie prueft die Muenzverteilung jetzt auf einer FRISCHEN Datenbank. Vorher lief sie auf der, die ein frueherer Abschnitt umgebaut hatte: Eine Pruefung, die den eigenen Kollateralschaden misst, misst sich selbst. Dazu eine Gegenprobe, dass eine selbst gewaehlte Vorlage NICHT ueberschrieben wird. UND DREI AN DER MESSUNG Sie suchte noch die gezeichnete Muenze (svg), wo jetzt ein Bild liegt. Umgestellt nicht auf "ist ein img da", sondern auf `naturalWidth > 0` -- ob es etwas ZEIGT. Ein img, das 404 antwortet, steht genauso im Dokument wie eines, das laedt; auf dem Bildschirm ist an seiner Stelle nichts. Und beim Satzwechsel las sie die vorige Karte, die noch acht Sekunden stand: Die Karten laufen in einer Schlange, also wird auf das Merkmal gewartet, das nur die neue hat. pruef-spenden 167/0 (vorher 136) - pruef-reaktion 321/0 - pruef-css-klassen ok - pruef-tippziele 11/0 - mess-reaktion und mess-buehne ohne Beanstandung Co-Authored-By: Claude Opus 5 <[email protected]>
@@ -582,6 +582,13 @@ await zuschauer.seite.evaluate(() => {
|
||||
wer: n.querySelector(".spendenkarte__wer")?.textContent?.trim(),
|
||||
stufe: n.querySelector(".spendenkarte__stufe")?.textContent?.trim(),
|
||||
gruss: n.querySelector(".spendenkarte__gruss")?.textContent?.trim(),
|
||||
/* Welche Muenze gross auf der Karte steht -- und ob die
|
||||
kleine daneben weggenommen wurde. Dieselbe Muenze in
|
||||
zwei Groessen auf einer Karte saehe aus wie ein
|
||||
Versehen. */
|
||||
muenze: (n.querySelector(".spendenkarte__bild img")
|
||||
?.getAttribute("src") || "").split("/").pop(),
|
||||
kleinWeg: n.dataset?.muenze === "ja",
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -619,10 +626,19 @@ const geben = await zuschauer.seite.evaluate(() => {
|
||||
da: k2 && !k2.hidden,
|
||||
knoepfe: knoepfe.length,
|
||||
zahlen: knoepfe.map((a) => a.querySelector(".dogen__zahl")?.textContent || "?"),
|
||||
/* Ohne hochgeladenes Symbol muss die gezeichnete Muenze da sein
|
||||
-- ein Knopf mit einer nackten Zahl waere kein „Dogen mit dem
|
||||
Symbol". */
|
||||
zeichen: knoepfe.filter((a) => a.querySelector("svg.dogen__zeichen")).length,
|
||||
/* ==== DAS ZEICHEN MUSS DA SEIN -- UND GELADEN ==============
|
||||
Seit dem 28.09. ist es ein BILD (Filipes Muenzen) und keine
|
||||
Zeichnung mehr. Gezaehlt wird deshalb nicht, ob ein Knoten da
|
||||
ist, sondern ob er etwas ZEIGT: Ein `img`, das 404 antwortet,
|
||||
steht genauso im Dokument wie eines, das laedt -- und auf dem
|
||||
Bildschirm ist an seiner Stelle nichts.
|
||||
`naturalWidth > 0` ist der Unterschied, und er ist genau der,
|
||||
den man sonst erst im Livestream sieht. */
|
||||
zeichen: knoepfe.filter((a) => {
|
||||
const b = a.querySelector(".dogen__zeichen");
|
||||
if (!b) return false;
|
||||
return b.tagName.toLowerCase() === "img" ? b.naturalWidth > 0 : true;
|
||||
}).length,
|
||||
/* Und nirgends ein Euro. */
|
||||
geld: /€|EUR|Euro/.test(k2?.textContent || ""),
|
||||
};
|
||||
@@ -820,7 +836,11 @@ if (!wartet) {
|
||||
da: !!p && !p.hidden,
|
||||
zahl: p?.querySelector(".dogen__zahl")?.textContent || "",
|
||||
wort: p?.querySelector(".dogen__wort")?.textContent || "",
|
||||
zeichen: !!p?.querySelector("svg.dogen__zeichen"),
|
||||
zeichen: (() => {
|
||||
const b = p?.querySelector(".dogen__zeichen");
|
||||
if (!b) return false;
|
||||
return b.tagName.toLowerCase() === "img" ? b.naturalWidth > 0 : true;
|
||||
})(),
|
||||
text: p?.textContent?.trim() || "",
|
||||
};
|
||||
});
|
||||
@@ -830,6 +850,71 @@ if (!wartet) {
|
||||
console.log(" ACHTUNG: Der eigene Dogen-Stand kommt nicht an.");
|
||||
ausgang = 1;
|
||||
}
|
||||
|
||||
/* ==== DIE MUENZE MUSS ZUR HOEHE DER SPENDE PASSEN =============
|
||||
|
||||
Filipe: „drei varianten fuer niedrige spenden. mittlere und
|
||||
hohe spenden. aber pass sie sofort diesen 3 kategorien an."
|
||||
|
||||
Die erste Karte sind 2,5 Dogen (Rudel-Legende, oberes Drittel),
|
||||
die zweite 1 Doge (Starke Runde, mittleres). Stuende auf beiden
|
||||
dieselbe Muenze, waere die ganze Einteilung wirkungslos -- und
|
||||
das sieht man einer einzelnen Karte nie an. */
|
||||
console.log(` Muenzen: „${nachMelden[0]?.muenze}" bei 2,5 · `
|
||||
+ `„${nachJa[1]?.muenze}" bei 1`);
|
||||
console.log(` Kleine Muenze daneben weggenommen: `
|
||||
+ `${nachMelden[0]?.kleinWeg} / ${nachJa[1]?.kleinWeg}`);
|
||||
if (!/-hoch\.webp$/.test(nachMelden[0]?.muenze || "")
|
||||
|| !/-mittel\.webp$/.test(nachJa[1]?.muenze || "")) {
|
||||
console.log(" ACHTUNG: Die Muenze passt nicht zur Hoehe der Spende.");
|
||||
ausgang = 1;
|
||||
}
|
||||
if (!nachMelden[0]?.kleinWeg || !nachJa[1]?.kleinWeg) {
|
||||
console.log(" ACHTUNG: Die Muenze steht zweimal auf derselben Karte.");
|
||||
ausgang = 1;
|
||||
}
|
||||
|
||||
/* ---- UND DER SATZ LAESST SICH WECHSELN ----
|
||||
Gemessen ueber die Probe beim Host: Sie schreibt nichts in die
|
||||
Datenbank und ist damit der einzige Weg, eine Karte zu sehen,
|
||||
ohne eine Spende zu erfinden. */
|
||||
await roh("/workspace/api/spenden/zeichen/satz", {
|
||||
method: "PUT", keks: k.admin, rumpf: { satz: "neon" },
|
||||
});
|
||||
await host.seite.waitForTimeout(700);
|
||||
await roh("/workspace/api/spenden/probe", {
|
||||
method: "POST", keks: k.admin, rumpf: { dogen_mille: 2500 },
|
||||
});
|
||||
/* AUF DIE PROBEKARTE WARTEN, NICHT AUF IRGENDEINE.
|
||||
|
||||
Beim ersten Lauf stand noch die vorige Karte („Starke Runde",
|
||||
acht Sekunden) auf dem Bildschirm, und die Messung las deren
|
||||
Muenze -- sie meldete „klassik-mittel" und damit einen Fehler,
|
||||
den es nicht gab. Die Karten laufen in einer SCHLANGE: Die
|
||||
naechste kommt erst, wenn die vorige abgelaufen ist. Also auf
|
||||
das Merkmal warten, das nur die neue hat. */
|
||||
await host.seite.waitForFunction(
|
||||
() => [...document.querySelectorAll('.spendenkarte[data-da="ja"]')].some(
|
||||
(k2) => k2.querySelector(".spendenkarte__wer")?.textContent === "Probe"
|
||||
&& k2.querySelector(".spendenkarte__bild img")),
|
||||
null, { timeout: 20000 },
|
||||
).catch(() => {});
|
||||
const nachWechsel = await host.seite.evaluate(() => {
|
||||
const k2 = [...document.querySelectorAll('.spendenkarte[data-da="ja"]')]
|
||||
.find((x) => x.querySelector(".spendenkarte__wer")?.textContent === "Probe");
|
||||
const b = k2?.querySelector(".spendenkarte__bild img");
|
||||
/* Und auch hier: geladen, nicht nur vorhanden. */
|
||||
return b && b.naturalWidth > 0
|
||||
? (b.getAttribute("src") || "").split("/").pop() : "(nicht geladen)";
|
||||
});
|
||||
console.log(` Nach dem Wechsel auf „Neon": „${nachWechsel}"`);
|
||||
if (nachWechsel !== "neon-hoch.webp") {
|
||||
console.log(" ACHTUNG: Der gewechselte Muenzsatz kommt nicht an.");
|
||||
ausgang = 1;
|
||||
}
|
||||
await roh("/workspace/api/spenden/zeichen/satz", {
|
||||
method: "PUT", keks: k.admin, rumpf: { satz: "klassik" },
|
||||
});
|
||||
}
|
||||
|
||||
await host.seite.click('#reiter .reiter__knopf[data-tafel="spenden"]').catch(() => {});
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
Aufrufen mit: node server/pruef-spenden.mjs
|
||||
===================================================================== */
|
||||
import { mkdtempSync, rmSync, readFileSync } from "node:fs";
|
||||
import { mkdtempSync, rmSync, readFileSync, statSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join, dirname } from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
@@ -396,12 +396,20 @@ melde("=== 8. Die Gestaltung der Karten ===");
|
||||
const block = karte.match(/const VORLAGEN = \{([\s\S]*?)\n \};/);
|
||||
const inKarte = [...(block ? block[1] : "").matchAll(/^\s{4}([a-z]+):/gm)].map((m) => m[1]);
|
||||
ok(inKarte.length >= 5, `die Karte kennt ${inKarte.length} Zeichnungen`);
|
||||
const fehlt = VORLAGEN.filter((v) => !inKarte.includes(v));
|
||||
const zuviel = inKarte.filter((v) => !VORLAGEN.includes(v));
|
||||
/* „dogen" IST EINE VORLAGE, ABER KEINE ZEICHNUNG. Sie zeigt
|
||||
die Muenze des gewaehlten Satzes und steht deshalb nicht im
|
||||
Zeichnungsblock -- verglichen wird ohne sie. Dass die Karte
|
||||
sie trotzdem behandelt, prueft die Zeile darunter: Ohne sie
|
||||
waere „dogen" eine Auswahl, die als Herz erscheint. */
|
||||
const zeichnungen = VORLAGEN.filter((v) => v !== "dogen");
|
||||
const fehlt = zeichnungen.filter((v) => !inKarte.includes(v));
|
||||
const zuviel = inKarte.filter((v) => !zeichnungen.includes(v));
|
||||
ok(fehlt.length === 0 && zuviel.length === 0,
|
||||
(fehlt.length || zuviel.length)
|
||||
? `UNGLEICH: fehlt ${fehlt.join(",")} / zuviel ${zuviel.join(",")}`
|
||||
: `Server und Karte kennen dieselben ${VORLAGEN.length} Zeichnungen`);
|
||||
: `Server und Karte kennen dieselben ${zeichnungen.length} Zeichnungen`);
|
||||
ok(VORLAGEN.includes("dogen") && /vorlage === 'dogen'/.test(karte),
|
||||
"und die Karte behandelt die Muenze als eigene Vorlage");
|
||||
ok(!VORLAGEN.includes("wolke"), "Gegenprobe: eine erfundene Zeichnung steht in keiner Liste");
|
||||
}
|
||||
|
||||
@@ -789,8 +797,12 @@ melde("=== 9. Dogen, eigener Text und Punkte ===");
|
||||
"und in der Liste steht nur, wer wirklich etwas hat");
|
||||
|
||||
/* ---- DAS ZEICHEN ---- */
|
||||
/* SEIT DEM 28.09. IST `zeichen` EINE AUSWAHL UND KEINE ADRESSE:
|
||||
drei Muenzen und zwei Grenzen. Das Hochgeladene steht darin als
|
||||
`eigen`. Die Saetze selbst prueft Abschnitt 10; hier geht es nur
|
||||
um den Weg des eigenen Bildes. */
|
||||
const ohneZeichen = await roh(CREW, "/workspace/api/spenden", { keks: k.admin });
|
||||
ok(ohneZeichen.j?.zeichen === "", "ohne Hochladen gibt es kein Zeichen");
|
||||
ok(ohneZeichen.j?.zeichen?.eigen === "", "ohne Hochladen gibt es kein eigenes Zeichen");
|
||||
|
||||
const png = Buffer.from(
|
||||
"89504e470d0a1a0a0000000d494844520000000100000001080600000"
|
||||
@@ -799,19 +811,23 @@ melde("=== 9. Dogen, eigener Text und Punkte ===");
|
||||
const hochZ = await roh(CREW, "/workspace/api/spenden/zeichen", {
|
||||
method: "POST", keks: k.admin, roher: png,
|
||||
});
|
||||
ok(hochZ.code === 200 && /\/spendenbild\/[a-f0-9]{32}\.png$/.test(hochZ.j?.zeichen || ""),
|
||||
ok(hochZ.code === 200
|
||||
&& /\/spendenbild\/[a-f0-9]{32}\.png$/.test(hochZ.j?.zeichen?.eigen || ""),
|
||||
`das Zeichen laesst sich hochladen (${hochZ.code})`);
|
||||
const abrufbar = await roh(CREW, hochZ.j.zeichen, {});
|
||||
const eigenAdresse = hochZ.j?.zeichen?.eigen || "";
|
||||
const abrufbar = await roh(CREW, eigenAdresse, {});
|
||||
ok(abrufbar.code === 200,
|
||||
`und ist OHNE Anmeldung abrufbar (${abrufbar.code}) -- sonst fehlte es im Stream`);
|
||||
|
||||
const mitZeichen = await roh(CREW, "/workspace/api/spenden", { keks: k.gast });
|
||||
ok(mitZeichen.j?.zeichen === hochZ.j.zeichen,
|
||||
ok(mitZeichen.j?.zeichen?.eigen === eigenAdresse,
|
||||
"es steht im Stand, und zwar fuer alle");
|
||||
ok(mitZeichen.j?.zeichen?.niedrig === eigenAdresse,
|
||||
"und gilt fuer alle drei Stufen gleich");
|
||||
const probe = await roh(CREW, "/workspace/api/spenden/probe", {
|
||||
method: "POST", keks: k.admin, rumpf: { dogen_mille: 500 },
|
||||
});
|
||||
ok(probe.j?.karte?.zeichen === hochZ.j.zeichen,
|
||||
ok(probe.j?.karte?.zeichen?.eigen === eigenAdresse,
|
||||
"und reist mit jeder Karte mit");
|
||||
|
||||
const keinBild = await roh(CREW, "/workspace/api/spenden/zeichen", {
|
||||
@@ -826,12 +842,204 @@ melde("=== 9. Dogen, eigener Text und Punkte ===");
|
||||
|
||||
const wegZ = await roh(CREW, "/workspace/api/spenden/zeichen",
|
||||
{ method: "DELETE", keks: k.admin });
|
||||
ok(wegZ.code === 200 && wegZ.j?.zeichen === "",
|
||||
ok(wegZ.code === 200 && wegZ.j?.zeichen?.eigen === "",
|
||||
`es laesst sich wieder wegnehmen (${wegZ.code})`);
|
||||
const fortZ = await roh(CREW, hochZ.j.zeichen, {});
|
||||
const fortZ = await roh(CREW, eigenAdresse, {});
|
||||
ok(fortZ.code === 404, `und die Datei ist danach fort (${fortZ.code})`);
|
||||
}
|
||||
|
||||
|
||||
/* =======================================================================
|
||||
10. DIE DREI MUENZSAETZE
|
||||
|
||||
Filipe, 28.09.2026: „ich werde die drei varianten schicken fuer
|
||||
niedrige spenden. mittlere und hohe spenden. alle drei varianten
|
||||
will ich drauf so dass ich sie aussuchen kann wie ich will. aber
|
||||
pass sie sofort diesen 3 kategorien an."
|
||||
======================================================================= */
|
||||
melde("");
|
||||
melde("=== 10. Die drei Muenzsaetze ===");
|
||||
{
|
||||
const { DOGEN_SAETZE, DOGEN_STUFEN, muenzeAdresse }
|
||||
= await import("./spenden-tabellen.js");
|
||||
|
||||
ok(DOGEN_SAETZE.length === 3,
|
||||
`es gibt ${DOGEN_SAETZE.length} Saetze: ${DOGEN_SAETZE.map((x) => x.name).join(", ")}`);
|
||||
ok(DOGEN_STUFEN.length === 3 && DOGEN_STUFEN[0] === "niedrig"
|
||||
&& DOGEN_STUFEN[2] === "hoch",
|
||||
`und drei Stufen: ${DOGEN_STUFEN.join(", ")}`);
|
||||
|
||||
/* ---- JEDE MUENZE MUSS ES AUCH GEBEN ----
|
||||
Die wichtigste Pruefung hier. Ein fehlendes Bild waere ein
|
||||
kaputtes Zeichen neben JEDER Zahl -- im Saal und im Stream, und
|
||||
gemerkt haette man es erst im Livestream. */
|
||||
{
|
||||
const fehlend = [];
|
||||
const zuGross = [];
|
||||
for (const satz of DOGEN_SAETZE) {
|
||||
for (const stufe of DOGEN_STUFEN) {
|
||||
const pfad = join(HIER, "..", muenzeAdresse(satz.schluessel, stufe)
|
||||
.replace(/^\//, "").split("/").join("/"));
|
||||
try {
|
||||
const gross = statSync(pfad).size;
|
||||
if (gross > 100 * 1024) zuGross.push(`${satz.schluessel}-${stufe} ${Math.round(gross / 1024)} KB`);
|
||||
} catch { fehlend.push(`${satz.schluessel}-${stufe}`); }
|
||||
}
|
||||
}
|
||||
ok(fehlend.length === 0,
|
||||
fehlend.length ? `ES FEHLEN: ${fehlend.join(", ")}`
|
||||
: `alle ${DOGEN_SAETZE.length * DOGEN_STUFEN.length} Muenzen liegen im Baum`);
|
||||
/* UND KEINE DARF SCHWER SEIN. Filipes Vorlagen waren je drei
|
||||
Megabyte; gezeigt wird die Muenze zwischen 24 und 110 Pixeln.
|
||||
Ohne diese Grenze rutscht irgendwann wieder ein Original
|
||||
herein, und dann laedt die Karte laenger, als sie steht. */
|
||||
ok(zuGross.length === 0,
|
||||
zuGross.length ? `ZU SCHWER: ${zuGross.join(", ")}`
|
||||
: "und keine ist schwerer als 100 KB");
|
||||
}
|
||||
|
||||
/* ---- UND SIE MUESSEN OHNE ANMELDUNG ZU HABEN SEIN ----
|
||||
Die Spendentafel in OBS hat keine Sitzung. Eine Muenze hinter
|
||||
der Schranke fehlte ausgerechnet im Stream. */
|
||||
{
|
||||
const a = await roh(CREW, muenzeAdresse("klassik", "hoch"), {});
|
||||
ok(a.code === 200, `eine Muenze kommt ohne Anmeldung (${a.code})`);
|
||||
const b = await roh(CREW, "/workspace/assets/dogen/gibtesnicht-hoch.webp", {});
|
||||
ok(b.code === 404, `Gegenprobe: eine erfundene Muenze gibt es nicht (${b.code})`);
|
||||
}
|
||||
|
||||
/* ---- WAS DER STAND SAGT ---- */
|
||||
const lage = await roh(CREW, "/workspace/api/spenden", { keks: k.admin });
|
||||
const z = lage.j?.zeichen;
|
||||
ok(!!z && typeof z.satz === "string" && z.niedrig && z.mittel && z.hoch,
|
||||
`der Stand traegt einen Satz („${z?.satz}“) mit drei Muenzen`);
|
||||
/* KLEINER ODER GLEICH, nicht echt kleiner. Bei genau ZWEI Stufen
|
||||
fallen die beiden Grenzen absichtlich zusammen: Dann gibt es
|
||||
niedrig und hoch, und nichts dazwischen. Eine Pruefung auf „echt
|
||||
kleiner" haette hier einen Fehler gemeldet, wo das Verhalten
|
||||
richtig ist -- und genau das hat sie beim ersten Lauf getan. */
|
||||
ok(Array.isArray(z?.grenzen) && z.grenzen.length === 2 && z.grenzen[0] <= z.grenzen[1],
|
||||
`und zwei Grenzen (${z?.grenzen?.join(" / ")})`);
|
||||
/* DIE GRENZEN KOMMEN AUS DER STUFENLEITER UND NICHT AUS EINER
|
||||
ZWEITEN LISTE. Bei drei Stufen ist das genau eine Muenze je
|
||||
Stufe. */
|
||||
const leiter = (lage.j?.stufen || []).map((x) => x.ab_mille);
|
||||
ok(leiter.length < 3
|
||||
|| (z.grenzen[0] === leiter[Math.floor(leiter.length / 3)]
|
||||
&& z.grenzen[1] === leiter[Math.floor((2 * leiter.length) / 3)]),
|
||||
`sie sind aus der Leiter abgeleitet (Leiter ${leiter.join(", ")})`);
|
||||
|
||||
ok(Array.isArray(lage.j?.saetze) && lage.j.saetze.length >= 3,
|
||||
`die Leitung bekommt ${lage.j?.saetze?.length} Saetze zum Aussuchen`);
|
||||
const gast = await roh(CREW, "/workspace/api/spenden", { keks: k.gast });
|
||||
ok(gast.j?.saetze === null, "ein Zuschauer bekommt die Auswahl nicht");
|
||||
ok(!!gast.j?.zeichen?.niedrig, "aber die Muenzen selbst schon");
|
||||
|
||||
/* ---- DIE KARTE TRAEGT DEN SATZ ----
|
||||
Eine Form ueberall: Die Karte bekommt dieselbe Auswahl wie der
|
||||
Stand und sucht sich daraus die Muenze zu ihrer Zahl. Schickte
|
||||
der Server hier EINE Adresse, gaebe es zwei Formen desselben
|
||||
Dinges. */
|
||||
const probe = await roh(CREW, "/workspace/api/spenden/probe", {
|
||||
method: "POST", keks: k.admin, rumpf: { dogen_mille: 2500 },
|
||||
});
|
||||
ok(!!probe.j?.karte?.zeichen?.hoch && Array.isArray(probe.j.karte.zeichen.grenzen),
|
||||
"und jede Karte bekommt ihn mit");
|
||||
|
||||
/* ---- AUSSUCHEN ---- */
|
||||
for (const satz of DOGEN_SAETZE) {
|
||||
const a = await roh(CREW, "/workspace/api/spenden/zeichen/satz", {
|
||||
method: "PUT", keks: k.admin, rumpf: { satz: satz.schluessel },
|
||||
});
|
||||
ok(a.code === 200 && a.j?.zeichen?.satz === satz.schluessel,
|
||||
`„${satz.name}“ laesst sich waehlen (${a.code})`);
|
||||
ok((a.j?.zeichen?.hoch || "").includes(`${satz.schluessel}-hoch`),
|
||||
`und die hohe Muenze kommt aus diesem Satz`);
|
||||
}
|
||||
const quatsch = await roh(CREW, "/workspace/api/spenden/zeichen/satz", {
|
||||
method: "PUT", keks: k.admin, rumpf: { satz: "platin" },
|
||||
});
|
||||
ok(quatsch.code === 400 && quatsch.j?.fehler === "satz_unbekannt",
|
||||
`ein erfundener Satz wird abgelehnt (${quatsch.code})`);
|
||||
/* „eigen" OHNE HOCHGELADENES BILD GIBT ES NICHT -- sonst stuende
|
||||
neben jeder Zahl ein Bild, das 404 antwortet. */
|
||||
const ohneEigenes = await roh(CREW, "/workspace/api/spenden/zeichen/satz", {
|
||||
method: "PUT", keks: k.admin, rumpf: { satz: "eigen" },
|
||||
});
|
||||
ok(ohneEigenes.code === 400,
|
||||
`„eigen“ ohne eigenes Bild wird abgelehnt (${ohneEigenes.code})`);
|
||||
const fremd = await roh(CREW, "/workspace/api/spenden/zeichen/satz", {
|
||||
method: "PUT", keks: k.modi, rumpf: { satz: "neon" },
|
||||
});
|
||||
ok(fremd.code === 403, `ein Modi waehlt den Satz nicht (${fremd.code})`);
|
||||
|
||||
/* ---- EIN EIGENES ZEICHEN GILT SOFORT UND FAELLT SAUBER ZURUECK ---- */
|
||||
const png = Buffer.from(
|
||||
"89504e470d0a1a0a0000000d494844520000000100000001080600000"
|
||||
+ "01f15c4890000000a49444154789c6360000002000100ffff0300000600"
|
||||
+ "0557bfabd40000000049454e44ae426082", "hex");
|
||||
const hoch = await roh(CREW, "/workspace/api/spenden/zeichen", {
|
||||
method: "POST", keks: k.admin, roher: png,
|
||||
});
|
||||
ok(hoch.code === 200 && hoch.j?.zeichen?.satz === "eigen",
|
||||
`ein hochgeladenes Zeichen gilt sofort (${hoch.j?.zeichen?.satz})`);
|
||||
ok(hoch.j?.zeichen?.niedrig === hoch.j?.zeichen?.hoch,
|
||||
"es gilt fuer alle drei Stufen gleich");
|
||||
ok((hoch.j?.saetze || []).some((x) => x.schluessel === "eigen"),
|
||||
"und steht ab jetzt in der Auswahl");
|
||||
|
||||
const weg = await roh(CREW, "/workspace/api/spenden/zeichen",
|
||||
{ method: "DELETE", keks: k.admin });
|
||||
ok(weg.code === 200 && weg.j?.zeichen?.satz === DOGEN_SAETZE[0].schluessel,
|
||||
`nach dem Loeschen gilt wieder ein Satz, den es gibt (${weg.j?.zeichen?.satz})`);
|
||||
ok(!(weg.j?.saetze || []).some((x) => x.schluessel === "eigen"),
|
||||
"und „eigen“ steht nicht mehr zur Wahl");
|
||||
|
||||
/* ==== DIE MUENZEN HAENGEN VON ANFANG AN AN DEN DREI STUFEN ====
|
||||
|
||||
Filipe: „aber pass sie sofort diesen 3 kategorien an."
|
||||
|
||||
GEPRUEFT WIRD AUF EINER FRISCHEN DATENBANK und nicht auf dieser:
|
||||
Die Leiter hier ist in Abschnitt 8 umgebaut worden, und danach
|
||||
steht sie so da, wie die Pruefung sie gesetzt hat -- nicht so,
|
||||
wie ein frisches Haus sie bekommt. Eine Pruefung, die den
|
||||
eigenen Kollateralschaden misst, misst sich selbst.
|
||||
|
||||
Und die zweite Haelfte ist die wichtigere: Eine Stufe, die
|
||||
jemand SELBST gewaehlt hat, wird nicht ueberschrieben. Eine
|
||||
Verteilung, die sich gegen den Benutzer durchsetzt, wird
|
||||
abgeschafft. */
|
||||
{
|
||||
const { mkdtempSync: neuerOrdner } = await import("node:fs");
|
||||
const { tmpdir: tmp2 } = await import("node:os");
|
||||
const { DatabaseSync: DBM } = await import("node:sqlite");
|
||||
const { spendenTabellen } = await import("./spenden-tabellen.js");
|
||||
const ordner2 = neuerOrdner(join(tmp2(), "muenzen-"));
|
||||
const d2 = new DBM(join(ordner2, "probe.db"));
|
||||
d2.exec(`CREATE TABLE einstellungen (schluessel TEXT PRIMARY KEY,
|
||||
wert TEXT NOT NULL, geaendert TEXT, von INTEGER);
|
||||
CREATE TABLE personen (id INTEGER PRIMARY KEY);`);
|
||||
spendenTabellen(d2);
|
||||
const frisch = d2.prepare("SELECT ab_cent, vorlage FROM spenden_stufen ORDER BY ab_cent")
|
||||
.all();
|
||||
ok(frisch.length === 3 && frisch.every((x) => x.vorlage === "dogen"),
|
||||
`ein frisches Haus zeigt die Muenze auf allen ${frisch.length} Stufen `
|
||||
+ `(${frisch.map((x) => x.vorlage).join(", ")})`);
|
||||
|
||||
/* Gegenprobe: eine selbst gewaehlte Vorlage bleibt stehen -- auch
|
||||
wenn die Verteilung noch einmal laufen wuerde. */
|
||||
d2.exec("UPDATE spenden_stufen SET vorlage = 'stern' WHERE ab_cent = 500");
|
||||
d2.exec("DELETE FROM einstellungen WHERE schluessel = 'dogen_muenzen_verteilt'");
|
||||
spendenTabellen(d2);
|
||||
const nachDemZweiten = d2.prepare("SELECT vorlage FROM spenden_stufen WHERE ab_cent = 500")
|
||||
.get();
|
||||
ok(nachDemZweiten?.vorlage === "stern",
|
||||
`Gegenprobe: eine selbst gewaehlte Vorlage bleibt (${nachDemZweiten?.vorlage})`);
|
||||
d2.close();
|
||||
rmSync(ordner2, { recursive: true, force: true });
|
||||
}
|
||||
}
|
||||
|
||||
melde("");
|
||||
melde(`${geprueft} Pruefungen, ${fehler} Fehler`);
|
||||
melde(fehler === 0 ? "ALLES IN ORDNUNG" : "NICHT IN ORDNUNG");
|
||||
|
||||
@@ -142,8 +142,67 @@ export const GRUSS_MAX = 140;
|
||||
* DIESE LISTE IST DIE WAHRHEIT -- `spendenkarte.js` hat dieselben
|
||||
* Namen, und eine Pruefung haelt beide aneinander. Ein Name, den
|
||||
* nur eine Seite kennt, waere eine Vorlage, die sich auswaehlen
|
||||
* laesst und dann als Herz erscheint. */
|
||||
export const VORLAGEN = ["herz", "welle", "krone", "stern", "pfote"];
|
||||
* laesst und dann als Herz erscheint.
|
||||
*
|
||||
* „dogen" ist die einzige, die KEINE Zeichnung ist: Sie zeigt die
|
||||
* Muenze des gewaehlten Satzes in der Stufe, die zur Spende passt.
|
||||
* Sie steht trotzdem in derselben Liste, weil sie an derselben
|
||||
* Stelle dieselbe Frage beantwortet -- eine zweite Auswahl daneben
|
||||
* waere eine zweite Antwort auf „welches Bild steht auf der
|
||||
* Karte". */
|
||||
export const VORLAGEN = ["dogen", "herz", "welle", "krone", "stern", "pfote"];
|
||||
|
||||
/* =====================================================================
|
||||
DIE MUENZSAETZE (28.09.2026)
|
||||
|
||||
Filipe: „ich werde die drei varianten schicken fuer niedrige
|
||||
spenden. mittlere und hohe spenden. alle drei varianten will ich
|
||||
drauf so dass ich sie aussuchen kann wie ich will. aber pass sie
|
||||
sofort diesen 3 kategorien an."
|
||||
|
||||
Drei Saetze zu je drei Muenzen. Die Rangfolge steht in den Bildern
|
||||
selbst und ist in allen drei dieselbe: nacktes Metall ->
|
||||
Steinkranz -> Vollbesatz. Filipes Dateinummern (01/02/03) und die
|
||||
Uhrzeiten seiner Entwuerfe laufen genau mit.
|
||||
|
||||
DIE BILDER LIEGEN IM BAUM UND NICHT IN DER DATENBANK. Sie kommen
|
||||
mit dem Programm, aendern sich nur mit ihm, und `express.static`
|
||||
liefert sie OHNE Anmeldung aus -- das braucht die Spendentafel in
|
||||
OBS, die keine Sitzung hat. Ein hochgeladenes eigenes Zeichen gibt
|
||||
es weiterhin; es ist der vierte Satz und heisst „eigen".
|
||||
===================================================================== */
|
||||
|
||||
/** Die drei Stufen, in denen es jede Muenze gibt. */
|
||||
export const DOGEN_STUFEN = ["niedrig", "mittel", "hoch"];
|
||||
|
||||
/** Die mitgelieferten Saetze. Der erste ist die Vorgabe. */
|
||||
export const DOGEN_SAETZE = [
|
||||
{
|
||||
schluessel: "klassik",
|
||||
name: "Klassik",
|
||||
wort: "Palladium · Gold mit Saphir · Diamant",
|
||||
},
|
||||
{
|
||||
schluessel: "amethyst",
|
||||
name: "Amethyst",
|
||||
wort: "Stahl · Rosegold mit Amethyst · Vollbesatz",
|
||||
},
|
||||
{
|
||||
schluessel: "neon",
|
||||
name: "Neon",
|
||||
wort: "Chrom auf Schwarz · Steinkranz · Vollbesatz",
|
||||
},
|
||||
];
|
||||
|
||||
/** Wo eine Muenze liegt. EINE Stelle bildet den Namen -- sonst
|
||||
* stuende der Pfad an vier Stellen, und beim naechsten Satz
|
||||
* vergisst man die vierte. */
|
||||
export function muenzeAdresse(satz, stufe) {
|
||||
return `/workspace/assets/dogen/${satz}-${stufe}.webp`;
|
||||
}
|
||||
|
||||
/** Unter welchem Namen der gewaehlte Satz in den Einstellungen steht. */
|
||||
export const SATZ_NAME = "dogen_satz";
|
||||
|
||||
/** So viele Stufen hoechstens.
|
||||
*
|
||||
@@ -186,19 +245,24 @@ export const GROESSE_MAX = 2.5;
|
||||
/** Wie gross ein hochgeladenes Bild sein darf. */
|
||||
export const BILD_MAX_BYTES = 3 * 1024 * 1024;
|
||||
|
||||
/** Unter welchem Namen das Dogen-Zeichen in den Einstellungen steht.
|
||||
/** Unter welchem Namen ein EIGENES, hochgeladenes Zeichen steht.
|
||||
*
|
||||
* Filipe: „die symbole schick ich dir spaeter. bereite jetzt alles
|
||||
* vor."
|
||||
*
|
||||
* ES IST EINE EINSTELLUNG UND KEINE DATEI IM QUELLTEXT. Laege das
|
||||
* Zeichen als Bild im Verzeichnis, haenge jedes neue Symbol an
|
||||
* einem Deploy -- also an mir. So laedt Filipe es im Regiepult hoch,
|
||||
* und bis dahin steht eine gezeichnete Muenze da, die in jeder
|
||||
* Farbe funktioniert. Ein leerer Kasten waere die schlechtere
|
||||
* Zwischenloesung: Man haelt ihn fuer kaputt. */
|
||||
* Es bleibt neben den drei Saetzen bestehen und ist der vierte
|
||||
* („eigen"). Anders als die Saetze gilt es fuer alle drei Stufen
|
||||
* gleich -- wer ein einzelnes Bild hochlaedt, meint ein Zeichen und
|
||||
* keine Rangfolge. */
|
||||
export const ZEICHEN_NAME = "dogen_zeichen";
|
||||
|
||||
/** Unter welchem Namen steht, dass die Muenzen schon einmal an die
|
||||
* Stufen verteilt wurden.
|
||||
*
|
||||
* Filipe: „aber pass sie sofort diesen 3 kategorien an." Das
|
||||
* passiert EINMAL und nie wieder: Wer danach eine Stufe auf ein
|
||||
* Herz zurueckstellt, soll sie beim naechsten Neustart nicht wieder
|
||||
* als Muenze vorfinden. Eine Einstellung, die sich gegen den
|
||||
* Benutzer durchsetzt, wird abgeschafft. */
|
||||
export const MUENZEN_VERTEILT = "dogen_muenzen_verteilt";
|
||||
|
||||
/** Die Stufen, die es ab Werk gibt — „paar fertige" aus Filipes
|
||||
* Ansage. Sie stehen hier und nicht in der Datenbank, damit ein
|
||||
* frisches Haus sofort etwas anzuzeigen hat; geaendert werden sie
|
||||
@@ -358,4 +422,37 @@ export function spendenTabellen(d) {
|
||||
VALUES (?,?,?,?,?,?,?)`)
|
||||
.run(s.ab_cent, s.name, s.vorlage, s.farbe, s.dauer_ms, s.groesse, nun);
|
||||
}
|
||||
|
||||
/* ==== DIE MUENZEN EINMAL AN DIE DREI STUFEN VERTEILEN ==========
|
||||
|
||||
Filipe: „aber pass sie sofort diesen 3 kategorien an."
|
||||
|
||||
NUR EINMAL, UND NUR WO NICHTS EIGENES STEHT. Geaendert wird eine
|
||||
Stufe genau dann, wenn sie noch ihre WERKSVORLAGE traegt (Herz,
|
||||
Welle, Krone) und kein eigenes Bild hochgeladen ist. Wer selbst
|
||||
einen Stern gewaehlt hat, behaelt ihn.
|
||||
|
||||
Und der Merker sorgt dafuer, dass es beim naechsten Start nicht
|
||||
wieder passiert: Wer eine Stufe zurueck auf ein Herz stellt,
|
||||
soll sie morgen nicht wieder als Muenze vorfinden. Eine
|
||||
Einstellung, die sich gegen den Benutzer durchsetzt, wird
|
||||
abgeschafft -- und dann ist auch die gute Absicht dahinter weg. */
|
||||
try {
|
||||
const schon = d.prepare("SELECT wert FROM einstellungen WHERE schluessel = ?")
|
||||
.get(MUENZEN_VERTEILT);
|
||||
if (!schon) {
|
||||
const werk = new Set(STUFEN_START.map((x) => x.vorlage));
|
||||
const a = d.prepare(`UPDATE spenden_stufen SET vorlage = 'dogen'
|
||||
WHERE bild = '' AND vorlage IN (${[...werk].map(() => "?").join(",")})`)
|
||||
.run(...werk);
|
||||
d.prepare(`INSERT OR REPLACE INTO einstellungen (schluessel, wert, geaendert)
|
||||
VALUES (?,?,?)`).run(MUENZEN_VERTEILT, "ja", new Date().toISOString());
|
||||
if (a.changes) console.log(`[spenden] Muenzen an ${a.changes} Stufen verteilt.`);
|
||||
}
|
||||
} catch (fehler) {
|
||||
/* Eine nicht verteilte Muenze ist ein Schoenheitsfehler, kein
|
||||
Grund, den Start abzubrechen. */
|
||||
console.error("[spenden] Muenzen verteilen:", fehler?.message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@ import {
|
||||
VORLAGEN, STUFEN_MAX, DAUER_MS_MIN, DAUER_MS_MAX,
|
||||
GROESSE_MIN, GROESSE_MAX, BILD_MAX_BYTES,
|
||||
centInMille, milleInCent, ZEICHEN_NAME,
|
||||
DOGEN_SAETZE, DOGEN_STUFEN, SATZ_NAME, muenzeAdresse,
|
||||
} from "./spenden-tabellen.js";
|
||||
|
||||
const BILDER = join(DATEN_ORDNER, "spendenbilder");
|
||||
@@ -284,7 +285,7 @@ function alsKarte(z) {
|
||||
die eine Karte zeigt, an zwei Dinge denken muss. Die Karte
|
||||
traegt alles, was sie braucht; genau das verspricht
|
||||
spendenkarte.js in ihrem Kopf. */
|
||||
zeichen: zeichenAdresse(),
|
||||
zeichen: zeichenSatz(),
|
||||
name: z.name,
|
||||
gruss: z.gruss,
|
||||
herkunft: z.herkunft,
|
||||
@@ -307,15 +308,98 @@ function bildAdresse(datei) {
|
||||
return datei ? `/workspace/api/buehne/spendenbild/${datei}` : "";
|
||||
}
|
||||
|
||||
/** Das Dogen-Zeichen, wenn eines hochgeladen wurde.
|
||||
/* ======================================================================
|
||||
WELCHE MUENZE ZU WELCHER SPENDE
|
||||
|
||||
Filipe: „ich werde die drei varianten schicken fuer niedrige
|
||||
spenden. mittlere und hohe spenden."
|
||||
|
||||
---------------------------------------------------------------------
|
||||
DIE GRENZEN WERDEN ABGELEITET UND NICHT GEPFLEGT
|
||||
|
||||
„Niedrig, mittel, hoch" gibt es im Haus schon -- das ist die
|
||||
Stufenleiter. Zwei eigene Grenzen daneben waeren eine zweite
|
||||
Antwort auf dieselbe Frage, und spaetestens wenn Filipe eine Stufe
|
||||
verschiebt, zeigte die Muenze etwas anderes an als der Name auf
|
||||
der Karte.
|
||||
|
||||
Die Leiter wird deshalb in DRITTEL geteilt. Bei den drei Stufen ab
|
||||
Werk ist das genau eine je Muenze. Bei sechs Stufen sind es zwei
|
||||
je Muenze -- und bei einer einzigen gibt es kein Oben und Unten,
|
||||
dann steht ueberall die mittlere.
|
||||
====================================================================== */
|
||||
function zeichenGrenzen() {
|
||||
try {
|
||||
const leiter = db().prepare("SELECT ab_cent FROM spenden_stufen ORDER BY ab_cent")
|
||||
.all().map((z) => centInMille(z.ab_cent));
|
||||
const n = leiter.length;
|
||||
/* Ohne Leiter und bei genau einer Stufe gibt es keine Rangfolge:
|
||||
alles bekommt die mittlere Muenze. Die Untergrenze 0 erreicht
|
||||
niemand (Betraege sind immer groesser), die Obergrenze ist
|
||||
unerreichbar gross -- also faellt alles dazwischen. */
|
||||
if (n < 2) return [0, Number.MAX_SAFE_INTEGER];
|
||||
if (n === 2) return [leiter[1], leiter[1]];
|
||||
return [leiter[Math.floor(n / 3)], leiter[Math.floor((2 * n) / 3)]];
|
||||
} catch { return [0, Number.MAX_SAFE_INTEGER]; }
|
||||
}
|
||||
|
||||
/** Der gewaehlte Satz -- mit allen drei Muenzen und den Grenzen.
|
||||
*
|
||||
* Filipe: „die symbole schick ich dir spaeter."
|
||||
* ==== EINE FORM UEBERALL
|
||||
*
|
||||
* Bis dahin ist die Antwort leer, und die Oberflaeche zeichnet
|
||||
* selbst eine Muenze. Ein Platzhalterbild, das wie eine kaputte
|
||||
* Datei aussieht, waere schlechter als eine saubere Zeichnung. */
|
||||
function zeichenAdresse() {
|
||||
return bildAdresse(einstellung(ZEICHEN_NAME, ""));
|
||||
* Die Karte, die Listen, die Knoepfe und der eigene Stand zeigen
|
||||
* alle dieselbe Muenze zur selben Zahl. Wuerde der Server fuer die
|
||||
* Karte EINE Adresse schicken und fuer den Rest die Auswahl, gaebe
|
||||
* es zwei Formen desselben Dinges -- und die Oberflaeche muesste an
|
||||
* jeder Stelle wissen, welche gerade kommt. Also immer die Auswahl;
|
||||
* wer sie benutzt, rechnet aus der Zahl.
|
||||
*
|
||||
* „eigen" ist der vierte Satz: ein hochgeladenes Bild, das fuer
|
||||
* alle drei Stufen gilt. Wer ein einzelnes Zeichen hochlaedt, meint
|
||||
* ein Zeichen und keine Rangfolge. */
|
||||
function zeichenSatz() {
|
||||
const eigen = einstellung(ZEICHEN_NAME, "");
|
||||
const gewuenscht = einstellung(SATZ_NAME, "") || DOGEN_SAETZE[0].schluessel;
|
||||
/* WAS NICHT GEHT, FAELLT AUF DEN ERSTEN SATZ ZURUECK -- etwa
|
||||
„eigen", nachdem das Bild geloescht wurde. Ein leeres Zeichen
|
||||
waere sonst ein kaputtes Bild neben jeder Zahl. */
|
||||
const satz = gewuenscht === "eigen" && eigen ? "eigen"
|
||||
: DOGEN_SAETZE.some((x) => x.schluessel === gewuenscht) ? gewuenscht
|
||||
: DOGEN_SAETZE[0].schluessel;
|
||||
|
||||
const bild = (stufe) => (satz === "eigen"
|
||||
? bildAdresse(eigen)
|
||||
: muenzeAdresse(satz, stufe));
|
||||
return {
|
||||
satz,
|
||||
eigen: eigen ? bildAdresse(eigen) : "",
|
||||
niedrig: bild("niedrig"),
|
||||
mittel: bild("mittel"),
|
||||
hoch: bild("hoch"),
|
||||
grenzen: zeichenGrenzen(),
|
||||
};
|
||||
}
|
||||
|
||||
/** Alle Saetze zum Aussuchen -- Filipe: „alle drei varianten will
|
||||
* ich drauf so dass ich sie aussuchen kann wie ich will." */
|
||||
function alleSaetze() {
|
||||
const eigen = einstellung(ZEICHEN_NAME, "");
|
||||
const liste = DOGEN_SAETZE.map((x) => ({
|
||||
...x,
|
||||
bilder: Object.fromEntries(DOGEN_STUFEN.map((st) => [st, muenzeAdresse(x.schluessel, st)])),
|
||||
}));
|
||||
/* Der eigene Satz steht nur da, wenn es ihn gibt. Ein leerer
|
||||
vierter Knopf waere eine Auswahl, die nichts auswaehlt. */
|
||||
if (eigen) {
|
||||
const a = bildAdresse(eigen);
|
||||
liste.push({
|
||||
schluessel: "eigen",
|
||||
name: "Eigenes Zeichen",
|
||||
wort: "Dein hochgeladenes Bild, fuer alle drei Stufen",
|
||||
bilder: Object.fromEntries(DOGEN_STUFEN.map((st) => [st, a])),
|
||||
});
|
||||
}
|
||||
return liste;
|
||||
}
|
||||
|
||||
/** Wen die Leitung einer Spende zuordnen kann.
|
||||
@@ -374,9 +458,12 @@ spendenRouter.get("/workspace/api/spenden", (req, res) => {
|
||||
umgestellt wurden, waere genau diese Kopie die stehen
|
||||
gebliebene gewesen. */
|
||||
stufen: stufenLesen(),
|
||||
/* Das Zeichen, das neben jeder Zahl steht. Leer, solange
|
||||
keines hochgeladen ist. */
|
||||
zeichen: zeichenAdresse(),
|
||||
/* Die Muenzen, die neben jeder Zahl stehen -- und die zwei
|
||||
Grenzen, an denen sich entscheidet, welche. */
|
||||
zeichen: zeichenSatz(),
|
||||
/* Zum Aussuchen: nur fuer die Leitung. Ein Zuschauer soll das
|
||||
Bild sehen, nicht die Auswahl daneben. */
|
||||
saetze: darf ? alleSaetze() : null,
|
||||
/* WAS SICH EINSTELLEN LAESST, KOMMT VOM SERVER. Stuenden die
|
||||
Vorlagennamen und die Grenzen auch in der Oberflaeche, waeren
|
||||
es zwei Listen -- und die eine liefe irgendwann von der
|
||||
@@ -843,6 +930,38 @@ spendenRouter.post("/workspace/api/spenden/stufe/:id(\\d+)/bild", nurGeld,
|
||||
ohne Schranke ausliefert. Ein Zeichen, das nur angemeldet
|
||||
sichtbar waere, fehlte ausgerechnet im Stream.
|
||||
====================================================================== */
|
||||
/** Einen Satz auswaehlen. */
|
||||
spendenRouter.put("/workspace/api/spenden/zeichen/satz", nurGeld,
|
||||
express.json({ limit: "2kb" }), (req, res) => {
|
||||
try {
|
||||
const satz = String(req.body?.satz ?? "");
|
||||
const geht = DOGEN_SAETZE.some((x) => x.schluessel === satz)
|
||||
|| (satz === "eigen" && einstellung(ZEICHEN_NAME, ""));
|
||||
/* EIN SATZ, DEN ES NICHT GIBT, WIRD ABGELEHNT -- und „eigen"
|
||||
ohne hochgeladenes Bild gibt es nicht. Sonst stuende neben
|
||||
jeder Zahl ein Bild, das 404 antwortet. */
|
||||
if (!geht) return res.status(400).json({ fehler: "satz_unbekannt" });
|
||||
einstellungSetzen(SATZ_NAME, satz, req.person);
|
||||
/* ==== UND ALLE ERFAHREN ES ================================
|
||||
Die KARTEN tragen ihren Satz selbst mit und waren immer
|
||||
richtig. Die Muenzen an den Spendenknoepfen und beim eigenen
|
||||
Stand aber nicht: Die holt sich eine Seite nur bei einer
|
||||
Spende neu, und bis dahin stuende beim Zuschauer noch der
|
||||
alte Satz -- und in einem zweiten Regiefenster auch.
|
||||
Eine Einstellung, die nur dort ankommt, wo sie gemacht
|
||||
wurde, ist keine Einstellung des Hauses. */
|
||||
stromAn(empfaenger(), "spende", { was: "zeichen" });
|
||||
buehneMelden("spende", { was: "zeichen" });
|
||||
protokolliere("dogen_satz", {
|
||||
personId: req.person.id, detail: satz, ip: echteIp(req),
|
||||
});
|
||||
res.json({ ok: true, zeichen: zeichenSatz(), saetze: alleSaetze() });
|
||||
} catch (fehler) {
|
||||
console.error("[spenden] Satz:", fehler?.message);
|
||||
res.status(503).json({ fehler: "nicht_verfuegbar" });
|
||||
}
|
||||
});
|
||||
|
||||
spendenRouter.post("/workspace/api/spenden/zeichen", nurGeld,
|
||||
express.raw({ type: "*/*", limit: BILD_MAX_BYTES }), zuGross, (req, res) => {
|
||||
try {
|
||||
@@ -855,6 +974,11 @@ spendenRouter.post("/workspace/api/spenden/zeichen", nurGeld,
|
||||
|
||||
const alt = einstellung(ZEICHEN_NAME, "");
|
||||
einstellungSetzen(ZEICHEN_NAME, name, req.person);
|
||||
/* WER EIN ZEICHEN HOCHLAEDT, WILL ES AUCH SEHEN. Ohne diese
|
||||
Zeile laege es in den Einstellungen und neben den Zahlen
|
||||
stuende weiter die Muenze -- und Filipe suchte den Fehler
|
||||
beim Hochladen. */
|
||||
einstellungSetzen(SATZ_NAME, "eigen", req.person);
|
||||
/* Das alte wegraeumen -- sonst bleibt bei jedem Wechsel eine
|
||||
Datei liegen, die niemand mehr findet. */
|
||||
if (alt && alt !== name) {
|
||||
@@ -865,7 +989,7 @@ spendenRouter.post("/workspace/api/spenden/zeichen", nurGeld,
|
||||
detail: `${Math.round(req.body.length / 1024)} KB`,
|
||||
ip: echteIp(req),
|
||||
});
|
||||
res.json({ ok: true, zeichen: zeichenAdresse() });
|
||||
res.json({ ok: true, zeichen: zeichenSatz(), saetze: alleSaetze() });
|
||||
} catch (fehler) {
|
||||
console.error("[spenden] Zeichen:", fehler?.message);
|
||||
res.status(503).json({ fehler: "nicht_verfuegbar" });
|
||||
@@ -876,8 +1000,13 @@ spendenRouter.delete("/workspace/api/spenden/zeichen", nurGeld, (req, res) => {
|
||||
try {
|
||||
const alt = einstellung(ZEICHEN_NAME, "");
|
||||
einstellungSetzen(ZEICHEN_NAME, "", req.person);
|
||||
/* UND ZURUECK AUF EINEN SATZ, DEN ES GIBT. Bliebe „eigen"
|
||||
stehen, zeigte jede Zahl ein Bild, das es nicht mehr gibt. */
|
||||
if (einstellung(SATZ_NAME, "") === "eigen") {
|
||||
einstellungSetzen(SATZ_NAME, DOGEN_SAETZE[0].schluessel, req.person);
|
||||
}
|
||||
if (alt) { try { unlinkSync(join(BILDER, alt)); } catch { /* war weg */ } }
|
||||
res.json({ ok: true, zeichen: "" });
|
||||
res.json({ ok: true, zeichen: zeichenSatz(), saetze: alleSaetze() });
|
||||
} catch (fehler) {
|
||||
console.error("[spenden] Zeichen loeschen:", fehler?.message);
|
||||
res.status(503).json({ fehler: "nicht_verfuegbar" });
|
||||
@@ -923,7 +1052,7 @@ spendenRouter.post("/workspace/api/spenden/probe", nurGeld,
|
||||
const karte = {
|
||||
id: 0,
|
||||
dogen_mille: centInMille(cent),
|
||||
zeichen: zeichenAdresse(),
|
||||
zeichen: zeichenSatz(),
|
||||
/* KENNTLICH ALS PROBE. Stuende hier ein Name, waere auf dem
|
||||
Bildschirmfoto nicht mehr zu unterscheiden, ob jemand
|
||||
gespendet hat. */
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
verdeckt. Gefunden hat es pruef-struktur.
|
||||
|
||||
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
|
||||
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
|
||||
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
|
||||
@@ -33,7 +33,7 @@
|
||||
schreibt jede Seite app.webmanifest -- auch die hier. -->
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<style>
|
||||
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
|
||||
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
|
||||
@@ -135,7 +135,7 @@
|
||||
|
||||
|
||||
|
||||
<script src="assets/js/anruf-probe.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/anruf-probe.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -23,25 +23,25 @@
|
||||
},
|
||||
"icons": [
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-192.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/workspace-192.png?v=202609281932",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-512.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/workspace-512.png?v=202609281932",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609281932",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609281932",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
|
||||
@@ -952,6 +952,10 @@
|
||||
.geben__kopf svg { width: 17px; height: 17px; fill: currentColor; flex: none; }
|
||||
|
||||
.geben__betraege { display: flex; gap: 6px; flex-wrap: wrap; }
|
||||
/* Auf dem Knopf darf die Muenze deutlich groesser sein als in einer
|
||||
Textzeile: Hier ist sie das Erkennungszeichen und nicht die
|
||||
Einheit hinter einer Zahl. */
|
||||
.geben__betrag .dogen__zeichen { width: 1.6em; height: 1.6em; }
|
||||
.geben__betrag {
|
||||
/* Breiter als vorher: Auf dem Knopf steht jetzt ein Zeichen neben
|
||||
der Zahl, und „0,2" mit Muenze braucht mehr Platz als „2 €".
|
||||
@@ -1854,26 +1858,64 @@
|
||||
.stufe-tun--weg:hover { color: var(--an-hell); background: rgba(216, 64, 74, .12); }
|
||||
.stufe-tun--aus { opacity: .45; cursor: default; }
|
||||
|
||||
/* ==== DAS DOGEN-ZEICHEN ============================================
|
||||
Filipe: „die symbole schick ich dir spaeter."
|
||||
/* ==== DIE DREI MUENZSAETZE =========================================
|
||||
|
||||
Gezeigt wird es MIT EINER ZAHL DANEBEN und nicht allein. Ein
|
||||
Symbol auf leerer Flaeche sagt nichts darueber, wie es neben einer
|
||||
Ziffer wirkt -- und genau dort steht es spaeter. */
|
||||
.zeichenwahl {
|
||||
display: flex; flex-wrap: wrap; align-items: center;
|
||||
gap: 12px 16px;
|
||||
}
|
||||
.zeichenwahl__schau {
|
||||
display: flex; align-items: center;
|
||||
min-height: 44px; padding: 6px 14px;
|
||||
border-radius: 12px;
|
||||
Filipe: „alle drei varianten will ich drauf so dass ich sie
|
||||
aussuchen kann wie ich will."
|
||||
|
||||
Jeder Satz zeigt seine DREI Muenzen nebeneinander, von links nach
|
||||
rechts aufsteigend -- der Unterschied zwischen niedrig und hoch
|
||||
ist hier die eigentliche Aussage, und den sieht man nur im
|
||||
Vergleich.
|
||||
|
||||
AUGENSCHONEND: Der gewaehlte Satz wird nicht heller, sondern
|
||||
bekommt einen ruhigen Rahmen und einen leichten Grund. Ein
|
||||
leuchtender Rahmen neben neun glaenzenden Muenzen waere zu viel
|
||||
auf einmal. */
|
||||
.muenzwahl { display: grid; gap: 8px; }
|
||||
.muenzsatz {
|
||||
appearance: none; cursor: pointer; text-align: left;
|
||||
display: flex; align-items: center; gap: 14px;
|
||||
padding: 8px 12px;
|
||||
border-radius: 13px;
|
||||
border: 1px solid var(--rand);
|
||||
background: rgba(0, 0, 0, .3);
|
||||
font-size: 1.3rem; font-weight: 900;
|
||||
color: #9ff0c2;
|
||||
background: rgba(255, 255, 255, .03);
|
||||
color: var(--schrift-leise);
|
||||
}
|
||||
.zeichenwahl__tun { display: flex; flex-wrap: wrap; gap: 8px; }
|
||||
.muenzsatz[aria-pressed="true"] {
|
||||
border-color: rgba(154, 183, 255, .45);
|
||||
background: rgba(154, 183, 255, .11);
|
||||
color: var(--schrift);
|
||||
}
|
||||
.muenzsatz__reihe { display: flex; gap: 6px; flex: none; }
|
||||
.muenzsatz__bild {
|
||||
/* GROSS GENUG, UM ZU ENTSCHEIDEN. Bei 40 px sahen „Amethyst" und
|
||||
„Neon" auf dem Bildschirmfoto praktisch gleich aus -- und genau
|
||||
sie auseinanderzuhalten ist der Zweck dieser Liste. Eine
|
||||
Auswahl, in der man den Unterschied nicht sieht, ist keine. */
|
||||
width: 56px; height: 56px;
|
||||
object-fit: contain;
|
||||
filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .5));
|
||||
}
|
||||
/* Die mittlere und die hohe stehen etwas groesser -- so sieht man
|
||||
die Rangfolge, noch bevor man die Bilder erkannt hat. */
|
||||
.muenzsatz__bild:nth-child(2) { width: 64px; height: 64px; }
|
||||
.muenzsatz__bild:nth-child(3) { width: 72px; height: 72px; }
|
||||
.muenzsatz__text { display: grid; gap: 2px; min-width: 0; }
|
||||
.muenzsatz__name { font-size: .86rem; font-weight: 800; }
|
||||
/* NICHT NUR DIE FARBE SAGT, WAS GEWAEHLT IST. Neben neun glaenzenden
|
||||
Muenzen geht ein ruhiger Rahmen unter, und wer Farben schlecht
|
||||
unterscheidet, sieht ihn gar nicht. Ein Wort kann man nicht
|
||||
uebersehen. Fuer Hilfsmittel steht daneben `aria-pressed`. */
|
||||
.muenzsatz[aria-pressed="true"] .muenzsatz__name::after {
|
||||
content: " · gewählt";
|
||||
color: #9ab7ff; font-weight: 700;
|
||||
}
|
||||
.muenzsatz__wort {
|
||||
font-size: .72rem; color: var(--schrift-leise);
|
||||
overflow: hidden; text-overflow: ellipsis;
|
||||
}
|
||||
.zeichenwahl__tun { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
|
||||
|
||||
/* „Noch nicht übernommen" in Gold: Es ist keine Störung, sondern
|
||||
eine Erinnerung -- Rot gehört in diesem Haus dem Senden. */
|
||||
|
||||
@@ -114,7 +114,13 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
.dogen__zeichen {
|
||||
width: .92em; height: .92em;
|
||||
/* 1,05em und nicht 0,92: Seit dem 28.09. ist das Zeichen eine
|
||||
GEZEICHNETE MUENZE mit Pfote, Schriftzug und Steinen -- kein
|
||||
flaches Symbol mehr. Bei 0,92em neben einer kleinen Zahl war
|
||||
davon ein Fleck uebrig. Gemessen am Bildschirmfoto: 13,5 px an
|
||||
den Spendenknoepfen. Ein Zeichen, das man nicht erkennt, ist
|
||||
keins. */
|
||||
width: 1.05em; height: 1.05em;
|
||||
flex: none;
|
||||
/* Selbst ausrichten, weil `baseline` ein Bild an seine Unterkante
|
||||
setzt und es damit zu tief haengt. */
|
||||
@@ -146,6 +152,15 @@
|
||||
einmal je Knopf. Das ist kein Zusatz mehr, sondern Rauschen. */
|
||||
.dogen--nurzahl .dogen__wort { display: none; }
|
||||
|
||||
/* ==== DIESELBE MUENZE NICHT ZWEIMAL AUF EINER KARTE ================
|
||||
Traegt die Karte die Muenze schon gross (das ist ab dem 28.09. die
|
||||
Vorgabe der drei Stufen), dann steht neben der Zahl keine zweite
|
||||
in klein. Dieselbe Muenze in zwei Groessen nebeneinander sieht aus
|
||||
wie ein Versehen -- und die grosse gewinnt ohnehin.
|
||||
Laedt das Bild nicht, nimmt das Programm die Markierung zurueck,
|
||||
und die kleine ist wieder da. */
|
||||
.spendenkarte[data-muenze="ja"] .dogen__zeichen { display: none; }
|
||||
|
||||
.spendenkarte__stufe {
|
||||
font-size: .72em; font-weight: 800;
|
||||
letter-spacing: .12em; text-transform: uppercase;
|
||||
|
||||
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 34 KiB |
@@ -212,6 +212,9 @@
|
||||
'Es sind schon zwei Gäste dabei. Nimm erst jemanden heraus.',
|
||||
layout_unbekannt:
|
||||
'Diese Anordnung gibt es nicht.',
|
||||
satz_unbekannt:
|
||||
'Diesen Münzsatz gibt es nicht. Wähl einen aus der Liste — '
|
||||
+ '„Eigenes Zeichen" geht erst, wenn du eines hochgeladen hast.',
|
||||
person_unbekannt:
|
||||
'Diese Person gibt es hier nicht. Wähl jemanden aus der Liste '
|
||||
+ 'oder lass das Feld leer.',
|
||||
|
||||
@@ -2786,6 +2786,9 @@
|
||||
if (lage && lage.ich.host) spendenHolen();
|
||||
}
|
||||
if (d.was === 'offen') spendenHolen();
|
||||
/* Ein gewechselter Muenzsatz gilt fuer alle -- auch fuer
|
||||
die, die gerade keine Spende sehen. */
|
||||
if (d.was === 'zeichen') spendenHolen();
|
||||
} catch { /* eine kaputte Meldung darf den Strom nicht reissen */ }
|
||||
});
|
||||
|
||||
@@ -3102,23 +3105,65 @@
|
||||
if (!a.ok) melde(await a.json().catch(() => null), 'Das ging nicht.');
|
||||
}
|
||||
|
||||
/* ==== DAS DOGEN-ZEICHEN ==========================================
|
||||
/* ==== DIE DREI MÜNZSÄTZE =========================================
|
||||
|
||||
Filipe: „die symbole schick ich dir später. bereite jetzt alles
|
||||
vor."
|
||||
Filipe: „alle drei varianten will ich drauf so dass ich sie
|
||||
aussuchen kann wie ich will."
|
||||
|
||||
Gezeigt wird immer dasselbe Stück wie überall sonst — mit einer
|
||||
Zahl daneben, damit man sieht, wie es neben einer Ziffer
|
||||
aussieht. Ein Symbol allein auf weißem Grund sagt darüber
|
||||
nichts. */
|
||||
Jeder Satz steht mit seinen DREI Münzen da, von links nach
|
||||
rechts aufsteigend. Ein Satz, der nur mit einer Münze
|
||||
vorgestellt wird, sagt nichts über den Unterschied zwischen
|
||||
niedrig und hoch — und genau der ist hier die Aussage. */
|
||||
function zeichenZeichnen() {
|
||||
const schau = $('zeichen-schau');
|
||||
if (!schau || !spendenLage) return;
|
||||
schau.textContent = '';
|
||||
schau.append(window.Spendenkarte.dogenStueck(2500, spendenLage.zeichen));
|
||||
$('zeichen-weg').hidden = !spendenLage.zeichen;
|
||||
$('zeichen-hoch').firstChild.textContent = spendenLage.zeichen
|
||||
? 'Anderes Zeichen ' : 'Zeichen hochladen ';
|
||||
const kasten = $('muenzwahl');
|
||||
if (!kasten || !spendenLage) return;
|
||||
const jetzt = spendenLage.zeichen?.satz || '';
|
||||
kasten.textContent = '';
|
||||
for (const satz of (spendenLage.saetze || [])) {
|
||||
const k = el('button', 'muenzsatz');
|
||||
k.type = 'button';
|
||||
k.dataset.satz = satz.schluessel;
|
||||
k.setAttribute('aria-pressed', String(satz.schluessel === jetzt));
|
||||
|
||||
const reihe = el('div', 'muenzsatz__reihe');
|
||||
for (const stufe of ['niedrig', 'mittel', 'hoch']) {
|
||||
const b = document.createElement('img');
|
||||
b.className = 'muenzsatz__bild';
|
||||
b.src = satz.bilder?.[stufe] || '';
|
||||
b.alt = '';
|
||||
/* Erst laden, wenn das Register „Gestaltung" offen ist. Neun
|
||||
Münzen beim Seitenaufbau wären knapp ein halbes Megabyte
|
||||
für etwas, das die meisten nie ansehen. */
|
||||
b.loading = 'lazy';
|
||||
reihe.append(b);
|
||||
}
|
||||
k.append(reihe);
|
||||
|
||||
const text = el('div', 'muenzsatz__text');
|
||||
text.append(el('strong', 'muenzsatz__name', satz.name));
|
||||
text.append(el('span', 'muenzsatz__wort', satz.wort));
|
||||
k.append(text);
|
||||
|
||||
k.addEventListener('click', () => satzSetzen(satz.schluessel));
|
||||
kasten.append(k);
|
||||
}
|
||||
$('zeichen-weg').hidden = !spendenLage.zeichen?.eigen;
|
||||
$('zeichen-hoch').firstChild.textContent = spendenLage.zeichen?.eigen
|
||||
? 'Anderes eigenes Zeichen ' : 'Eigenes Zeichen hochladen ';
|
||||
}
|
||||
|
||||
async function satzSetzen(satz) {
|
||||
const a = await hole('/workspace/api/spenden/zeichen/satz', {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ satz }),
|
||||
});
|
||||
if (!a.ok) { melde(await a.json().catch(() => null), 'Das ging nicht.'); return; }
|
||||
/* FRISCH HOLEN. Die Münze steht an sechs Stellen gleichzeitig --
|
||||
auf den Karten, in beiden Listen, an den Knöpfen, beim eigenen
|
||||
Stand und in dieser Auswahl. Sie einzeln nachzuziehen wäre die
|
||||
Gelegenheit, eine zu vergessen. */
|
||||
spendenHolen();
|
||||
}
|
||||
|
||||
async function zeichenHoch(feld) {
|
||||
|
||||
@@ -110,14 +110,38 @@
|
||||
return Math.abs(Math.round(Number(mille) || 0)) === 1000 ? 'Doge' : 'Dogen';
|
||||
}
|
||||
|
||||
/** Welche Münze zu dieser Zahl gehört.
|
||||
*
|
||||
* ==== DIE GRENZEN KOMMEN VOM SERVER, NICHT VON HIER
|
||||
*
|
||||
* Filipe: „drei varianten für niedrige spenden. mittlere und hohe
|
||||
* spenden." Wo „niedrig" aufhört, steht in der Stufenleiter — und
|
||||
* die kann er ändern. Zwei Zahlen in dieser Datei wären eine
|
||||
* zweite Antwort darauf, und sie wäre nach der ersten Änderung
|
||||
* falsch, ohne dass jemand etwas merkt.
|
||||
*
|
||||
* Ein fehlender Satz gibt leer zurück, und dann tritt die
|
||||
* gezeichnete Münze ein. Ein kaputtes Bild neben einer Zahl sieht
|
||||
* aus wie ein Fehler IN der Zahl. */
|
||||
function muenzeFuer(satz, mille) {
|
||||
if (!satz || typeof satz !== 'object') return '';
|
||||
const g = Array.isArray(satz.grenzen) && satz.grenzen.length === 2
|
||||
? satz.grenzen : [0, Number.MAX_SAFE_INTEGER];
|
||||
const m = Math.round(Number(mille) || 0);
|
||||
if (m < g[0]) return satz.niedrig || '';
|
||||
if (m < g[1]) return satz.mittel || '';
|
||||
return satz.hoch || '';
|
||||
}
|
||||
|
||||
/** Zeichen + Zahl + Wort als ein Stück.
|
||||
*
|
||||
* AN EINER STELLE GEBAUT. Die Zahl steht auf der Karte, in zwei
|
||||
* Listen im Pult, an den Spendenknöpfen und beim eigenen Stand.
|
||||
* Fünfmal zusammengesetzt hieße: Beim nächsten Mal sieht eine
|
||||
* davon anders aus, und gemerkt wird es im Livestream. */
|
||||
function dogenStueck(mille, quelle, klasse) {
|
||||
function dogenStueck(mille, satz, klasse) {
|
||||
const k = el('span', 'dogen' + (klasse ? ' ' + klasse : ''));
|
||||
const quelle = muenzeFuer(satz, mille);
|
||||
if (quelle) {
|
||||
const b = document.createElement('img');
|
||||
b.className = 'dogen__zeichen';
|
||||
@@ -196,19 +220,41 @@
|
||||
tafel.dataset.stufe = karte.stufe?.name || '';
|
||||
tafel.setAttribute('role', 'status');
|
||||
|
||||
/* ==== WAS GROSS AUF DER KARTE STEHT ==========================
|
||||
|
||||
Drei Möglichkeiten, in dieser Reihenfolge:
|
||||
|
||||
1. Ein hochgeladenes Bild der Stufe. Wer eines hochlädt,
|
||||
meint es.
|
||||
2. Die DOGEN-MÜNZE in der Stufe, die zur Zahl passt —
|
||||
Filipes drei Varianten. Das ist ab dem 28.09. die
|
||||
Vorgabe der drei Werksstufen.
|
||||
3. Eine der gezeichneten Vorlagen (Herz, Welle, Krone …).
|
||||
|
||||
Und jede Stufe fällt auf die nächste zurück, wenn sie nicht
|
||||
lädt. Ein leerer Kasten wäre das Schlimmste von allen. */
|
||||
const bild = el('div', 'spendenkarte__bild');
|
||||
if (karte.stufe?.bild) {
|
||||
/* Ein eigenes Bild schlaegt die Vorlage -- und wenn es nicht
|
||||
laedt, tritt die Vorlage wieder ein. Ein leerer Kasten waere
|
||||
das Schlimmste von beidem. */
|
||||
const muenze = karte.stufe?.vorlage === 'dogen'
|
||||
? muenzeFuer(karte.zeichen, karte.dogen_mille) : '';
|
||||
const alsBild = (quelle, ersatz) => {
|
||||
const b = document.createElement('img');
|
||||
b.src = karte.stufe.bild;
|
||||
b.src = quelle;
|
||||
b.alt = '';
|
||||
b.addEventListener('error', () => {
|
||||
b.remove();
|
||||
bild.append(zeichenBauen(karte.stufe?.vorlage, farbe));
|
||||
});
|
||||
b.addEventListener('error', () => { b.remove(); ersatz(); });
|
||||
bild.append(b);
|
||||
};
|
||||
if (karte.stufe?.bild) {
|
||||
alsBild(karte.stufe.bild, () => bild.append(zeichenBauen(karte.stufe?.vorlage, farbe)));
|
||||
} else if (muenze) {
|
||||
/* DIE MÜNZE STEHT DANN SCHON GROSS DA. Neben der Zahl ein
|
||||
zweites Mal wäre sie einmal zu viel -- dieselbe Münze in
|
||||
zwei Größen auf derselben Karte sieht aus wie ein
|
||||
Versehen. Das Stilblatt nimmt die kleine daraufhin weg. */
|
||||
tafel.dataset.muenze = 'ja';
|
||||
alsBild(muenze, () => {
|
||||
delete tafel.dataset.muenze;
|
||||
bild.append(zeichenBauen('herz', farbe));
|
||||
});
|
||||
} else {
|
||||
bild.append(zeichenBauen(karte.stufe?.vorlage, farbe));
|
||||
}
|
||||
@@ -242,7 +288,9 @@
|
||||
}
|
||||
|
||||
window.Spendenkarte = {
|
||||
zeigen, alsDogen, dogenWort, dogenStueck,
|
||||
VORLAGEN: Object.keys(VORLAGEN),
|
||||
zeigen, alsDogen, dogenWort, dogenStueck, muenzeFuer,
|
||||
/* „dogen" ist keine Zeichnung, aber eine gueltige Vorlage --
|
||||
deshalb steht sie hier dabei und nicht in `VORLAGEN`. */
|
||||
VORLAGEN: ['dogen', ...Object.keys(VORLAGEN)],
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -12,19 +12,19 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -391,22 +391,22 @@
|
||||
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
||||
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
||||
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
||||
<script src="assets/js/textform.js?v=202609281853"></script>
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/textform.js?v=202609281932"></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/zuteilung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/zuteilung.js?v=202609281932" defer></script>
|
||||
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
|
||||
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
|
||||
eigene Datei; hier zeigt er den Creator-Katalog.
|
||||
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/aufgaben.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/aufgaben.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/automation.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/automation.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -168,15 +168,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/automation.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/automation.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -197,16 +197,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/befinden.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/befinden.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,24 +12,24 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609281932" />
|
||||
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
|
||||
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
|
||||
Stelle, an der dieselbe Sache anders aussieht. -->
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -304,19 +304,19 @@
|
||||
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
||||
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
||||
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
||||
<script src="assets/js/textform.js?v=202609281853"></script>
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/textform.js?v=202609281932"></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/ampel.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/schulung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereich.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/ampel.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/schulung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereich.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,17 +7,17 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -108,15 +108,15 @@
|
||||
</main>
|
||||
|
||||
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bewerben.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bewerben.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -80,16 +80,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bewerbungen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bewerbungen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -59,6 +59,6 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="platz"></div>
|
||||
<script src="assets/js/buehne.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/buehne.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/calls.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/calls.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -89,15 +89,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/ki.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/calls.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/calls.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,26 +12,26 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
|
||||
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
|
||||
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
|
||||
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
|
||||
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
|
||||
Dialog zu sehen bekam. -->
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/chat.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/chat.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -739,24 +739,24 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/bereiche.js?v=202609281853"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932"></script>
|
||||
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
|
||||
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
|
||||
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
|
||||
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
|
||||
wirklich vor den anderen dasteht. -->
|
||||
<script src="assets/js/textform.js?v=202609281853"></script>
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853"></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853"></script>
|
||||
<script src="assets/js/textform.js?v=202609281932"></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932"></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932"></script>
|
||||
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
|
||||
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
|
||||
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
|
||||
die Knoepfe fehlten, und niemand wuesste warum. -->
|
||||
<script src="assets/js/anruf.js?v=202609281853"></script>
|
||||
<script src="assets/js/anruf.js?v=202609281932"></script>
|
||||
<!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom
|
||||
Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein
|
||||
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
|
||||
wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal
|
||||
auftritt, ist der, den man nie nachstellen kann. -->
|
||||
<script src="assets/js/bildschau.js?v=202609281853"></script>
|
||||
<script src="assets/js/chat.js?v=202609281853"></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bildschau.js?v=202609281932"></script>
|
||||
<script src="assets/js/chat.js?v=202609281932"></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/content.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/content.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -179,15 +179,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/content.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/content.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -36,15 +36,15 @@
|
||||
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
|
||||
type="image/webp" media="(max-width: 899px)" />
|
||||
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
|
||||
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
|
||||
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
|
||||
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
|
||||
die eine Seite, auf der man das Umfaerben sieht. -->
|
||||
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="gate gate--crew">
|
||||
@@ -459,7 +459,7 @@
|
||||
|
||||
|
||||
|
||||
<script src="assets/js/gate.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/gate.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -23,25 +23,25 @@
|
||||
},
|
||||
"icons": [
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-192.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/crew-192.png?v=202609281932",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-512.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/crew-512.png?v=202609281932",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "any"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609281932",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609281853",
|
||||
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609281932",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -108,15 +108,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/dateien.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/dateien.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -297,20 +297,20 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
|
||||
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
|
||||
in Dokumentreihenfolge. -->
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/entwicklung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/vorlagenbrett.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/entwicklung.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/hilfe.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -146,14 +146,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hilfe.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hilfe.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
|
||||
type="image/webp" media="(max-width: 899px)" />
|
||||
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="gate">
|
||||
@@ -427,7 +427,7 @@
|
||||
|
||||
|
||||
|
||||
<script src="assets/js/gate.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/gate.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -383,15 +383,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kalender.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kalender-abo.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kalender.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kalender-abo.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -444,13 +444,13 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853"></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853"></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853"></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853"></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853"></script>
|
||||
<script src="assets/js/leistung.js?v=202609281853"></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932"></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932"></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932"></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932"></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932"></script>
|
||||
<script src="assets/js/leistung.js?v=202609281932"></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
vergessen wird. -->
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/material.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/material.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
<body class="start" data-ton="42" data-buehne="studio">
|
||||
|
||||
@@ -138,14 +138,14 @@
|
||||
<p class="m-laedt" id="laedt">Einen Moment …</p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/material.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/material.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/notizen.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/notizen.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start" data-ton="46">
|
||||
@@ -181,12 +181,12 @@
|
||||
|
||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||
liest daraus die Leitungsrollen. -->
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/notizen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/notizen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/personen.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/personen.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -453,14 +453,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/personen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/personen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -214,16 +214,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/profil.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/profil.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/reaktion.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/reaktion.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start reaktion-seite" data-stand="laedt">
|
||||
@@ -567,27 +567,31 @@
|
||||
<!-- ==== Gestaltung ==================================== -->
|
||||
<section class="pult-tafel" data-tafel="gestaltung" role="tabpanel" hidden
|
||||
id="tafel-gestaltung" aria-labelledby="reiter-gestaltung">
|
||||
<!-- ==== DAS DOGEN-ZEICHEN ==============================
|
||||
Filipe: „die dogen auch mit dem symbol, die symbole
|
||||
schick ich dir später."
|
||||
<!-- ==== DIE DOGEN-MÜNZEN ===============================
|
||||
Filipe: „ich werde die drei varianten schicken für
|
||||
niedrige spenden. mittlere und hohe spenden. alle drei
|
||||
varianten will ich drauf so dass ich sie aussuchen kann
|
||||
wie ich will."
|
||||
|
||||
Bis dahin steht eine gezeichnete Münze da. Hochgeladen
|
||||
wird es hier — ohne Deploy, ohne mich. -->
|
||||
<h3 class="pult__ueber">Das Dogen-Zeichen</h3>
|
||||
<div class="zeichenwahl">
|
||||
<div class="zeichenwahl__schau" id="zeichen-schau"></div>
|
||||
Drei Sätze zu je drei Münzen. Welche gilt, entscheidet
|
||||
die Stufe, in die eine Spende fällt — links die
|
||||
niedrige, rechts die hohe. -->
|
||||
<h3 class="pult__ueber">Die Dogen-Münzen</h3>
|
||||
<div class="muenzwahl" id="muenzwahl" role="group"
|
||||
aria-label="Münzsatz auswählen"></div>
|
||||
<div class="zeichenwahl__tun">
|
||||
<label class="stufe-tun" id="zeichen-hoch">Zeichen hochladen
|
||||
<label class="stufe-tun" id="zeichen-hoch">Eigenes Zeichen hochladen
|
||||
<input type="file" id="zeichen-datei" hidden
|
||||
accept="image/jpeg,image/png,image/webp" />
|
||||
</label>
|
||||
<button type="button" class="stufe-tun stufe-tun--weg"
|
||||
id="zeichen-weg" hidden>Zeichen weg</button>
|
||||
</div>
|
||||
id="zeichen-weg" hidden>Eigenes Zeichen weg</button>
|
||||
</div>
|
||||
<p class="pult__klein">
|
||||
Es steht neben jeder Zahl — auf der Karte, in den Listen und
|
||||
im Stream. Ohne eigenes Zeichen wird eine Münze gezeichnet.
|
||||
Die Münze steht neben jeder Zahl und groß auf der Karte —
|
||||
im Saal wie im Stream. Welche von den dreien, entscheidet
|
||||
die Höhe der Spende: die Stufenleiter darunter wird dafür
|
||||
in Drittel geteilt.
|
||||
</p>
|
||||
|
||||
<h3 class="pult__ueber">Wie eine Spende aussieht</h3>
|
||||
@@ -670,14 +674,14 @@
|
||||
|
||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||
liest daraus die Leitungsrollen. -->
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/spendenkarte.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/reaktion.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/spendenkarte.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/reaktion.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -134,14 +134,14 @@
|
||||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||||
die seit dem 07.09. jede Seite danach absucht. -->
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/rechte.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/rechte.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/report.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/report.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -106,17 +106,17 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/ki.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/report.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/report.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -173,14 +173,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/scouting.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/scouting.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,21 +12,21 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
|
||||
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
|
||||
<link rel="stylesheet" href="assets/css/heim.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/heim.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -732,16 +732,16 @@
|
||||
</p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/live.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/start.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/live.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/start.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -85,16 +85,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/ki.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/startcheck.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/startcheck.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -150,16 +150,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/support.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/support.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -128,16 +128,16 @@
|
||||
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
|
||||
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
|
||||
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
|
||||
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
|
||||
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
|
||||
uebersicht.html, und heute hier. -->
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/support.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/support.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
„Eigenes CSS" leer lassen (der Grund ist schon
|
||||
durchsichtig).
|
||||
====================================================================== -->
|
||||
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202609281932" />
|
||||
<style>
|
||||
/* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das
|
||||
Bild; jede Fläche, die hier steht, deckt dort etwas zu. */
|
||||
@@ -80,7 +80,7 @@
|
||||
<body>
|
||||
<div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div>
|
||||
|
||||
<script src="assets/js/spendenkarte.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/tafel.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/spendenkarte.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/tafel.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281932" />
|
||||
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
|
||||
der Regel hier waere die zweite Stelle, an der dieselbe Sache
|
||||
anders aussieht. -->
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -111,15 +111,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/talente.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/talente.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,20 +7,20 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -110,15 +110,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/team.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/team.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,20 +7,20 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/team.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<!-- `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
|
||||
es niemandem auf, und deshalb prueft pruef-css-klassen die
|
||||
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/teamlage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/teamlage.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -112,15 +112,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/teilen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/teilen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -126,14 +126,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/treff-moderation.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/treff-moderation.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/treff.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
|
||||
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
|
||||
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
|
||||
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -248,14 +248,14 @@
|
||||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||||
die seit dem 07.09. jede Seite danach absucht. -->
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/treff-regeln.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/auskunft.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/treff-regeln.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,22 +12,22 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
|
||||
Dialog "Creator anlegen". -->
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -149,16 +149,16 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/uebersicht.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/uebersicht.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -335,14 +335,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/live.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/unsere-seiten.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/live.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/unsere-seiten.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -106,17 +106,17 @@
|
||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
|
||||
„Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/holen.js?v=202609281932" defer></script>
|
||||
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
|
||||
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
|
||||
von pruef-meldungen, nicht beim Ansehen. -->
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/unterstuetzen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/unterstuetzen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,15 +7,15 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/werdegang.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -144,14 +144,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/werdegang.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/werdegang.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
vergessen wird. -->
|
||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/willkommen.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
<!-- KOERPERKLASSE "start", NICHT "gate" (berichtigt 21.09.2026).
|
||||
`body.gate` ist die Anmeldewand: `display:flex; align-items:center`,
|
||||
@@ -75,13 +75,13 @@
|
||||
<p class="fehler" id="fehler" hidden></p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/willkommen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/willkommen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,20 +12,20 @@
|
||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||
eine Flaeche sind statt zweier. -->
|
||||
<meta name="theme-color" content="#06090f" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281853" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281853" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281932" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202609281932" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609281932" />
|
||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281853" />
|
||||
<link rel="stylesheet" href="assets/css/haus.css?v=202609281932" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -190,15 +190,15 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/meldung.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/meldung.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/hochladen.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/nachfrage.js?v=202609281932" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wissen.js?v=202609281853" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/installieren.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609281932" defer></script>
|
||||
<script src="assets/js/wissen.js?v=202609281932" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||