Scouting: links die normalen Creator, rechts die Premium
Filipe: "ich will dass es da in der mitte eine trennung gibt. links sollen normale creator sein und rechts premium creator. es gibt bei tiktok naemlich diese zwei optionen von streamer ... auch dass wenn man die eintraegt soll man aussuchen koennen." Jede Stufe der Pipeline hat jetzt zwei Spalten mit einer Trennlinie dazwischen. Die Trennung sitzt IN der Stufe, nicht einmal ueber der ganzen Seite: Zwei komplette Pipelines nebeneinander haetten jede Stufenueberschrift verdoppelt und die beiden Seiten waeren nie auf gleicher Hoehe gewesen. GENAU ZWEI WERTE, kein "weiss nicht". Anders als bei `netzwerk`, wo "noch nicht gefragt" eine eigene gueltige Antwort ist: Dort wird eine fremde Tatsache festgehalten, hier eine eigene Absicht -- und deren Normalfall ist "normal". NULL wird als "normal" gelesen, der eine vorhandene Lead steht damit links, ohne dass ihm etwas unterstellt wird. DIE ART UEBERLEBT DIE UEBERGABE. Beim Creator-Onboarding wandert sie auf die Person und ist in der Personenverwaltung aenderbar. Ohne das endet die Angabe genau dort, wo sie zum ersten Mal vertraglich zaehlt. Die Schwelle misst den STUFENKASTEN (@container), nicht das Fenster -- der Fehler vom 06.09.2026 im selben Haus. Auf dem Handy liegen die Spalten untereinander, die senkrechte Linie faellt weg. ZWEI FUNDE BEIM BAUEN, beide von Hauswachen: * `pruef-fingermass` fand, dass meine neue Handy-Messung mit `setViewportSize` statt eigenem Kontext lief -- ohne `hasTouch` greift keine einzige Regel aus `@media (pointer: coarse)`. * Die Klassen hiessen zuerst `.spalte__*` -- die gehoeren `aufgaben.css`, und scouting.html laedt die VOR scouting.css. `margin-left: auto` aus dem Aufgabenbrett zog die Zahl 560 px von ihrem Wort weg, ohne dass eine Pruefung rot wurde. Jetzt `.art-spalte__*`, und der Abstand wird gemessen. pruef-scouting-felder: 28 -> 64 Pruefungen, gruen. Zwei Gegenproben gefahren (Trennung deaktiviert, Spaltenreihenfolge gedreht) -- beide schlugen an. Dazu gruen: haus-trennung, css-klassen, personen-liste, personen-kachel, hand-personen, schranke, formulare, lesbarkeit, agentur, deutsche-texte, tippziele, leerzustand, fingermass. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -0,0 +1,189 @@
|
|||||||
|
/* Bild der Trennung Normal / Premium in der Scout-Pipeline (06.10.2026)
|
||||||
|
|
||||||
|
Filipe: "ich will dass es da in der mitte eine trennung gibt. links
|
||||||
|
sollen normale creator sein und rechts premium creator."
|
||||||
|
|
||||||
|
Die Zahlen sind gruen (pruef-scouting-felder, 63 Pruefungen) -- das
|
||||||
|
sagt, dass die Kaesten an der richtigen Stelle liegen, aber nicht,
|
||||||
|
wie es AUSSIEHT. Dafuer ist dieses Werkzeug da.
|
||||||
|
|
||||||
|
Aufrufen mit: node server/bild-arten.mjs
|
||||||
|
*/
|
||||||
|
import { mkdtempSync, rmSync } from "node:fs";
|
||||||
|
import { tmpdir } from "node:os";
|
||||||
|
import { join } from "node:path";
|
||||||
|
|
||||||
|
const ordner = mkdtempSync(join(tmpdir(), "ws-arten-"));
|
||||||
|
process.env.WORKSPACE_DB = join(ordner, "workspace.db");
|
||||||
|
const { portMussFreiSein } = await import("./helfer-port.mjs");
|
||||||
|
const PORT = await portMussFreiSein(4336, "das Bildwerkzeug Arten");
|
||||||
|
process.env.PORT = String(PORT);
|
||||||
|
process.env.SITE_ACCESS_SECRET = "lokaler-test";
|
||||||
|
process.env.SITE_PUBLIC_LAUNCH_AT = "2020-01-01T00:00:00+01:00";
|
||||||
|
|
||||||
|
const express = (await import("express")).default;
|
||||||
|
const ec = express.response.cookie;
|
||||||
|
express.response.cookie = function (n, w, o) { return ec.call(this, n, w, { ...(o || {}), secure: false }); };
|
||||||
|
await import("./index.js");
|
||||||
|
await new Promise((r) => setTimeout(r, 1200));
|
||||||
|
const BASIS = `http://127.0.0.1:${PORT}`;
|
||||||
|
|
||||||
|
const { DatabaseSync } = await import("node:sqlite");
|
||||||
|
const { scryptSync, randomBytes } = await import("node:crypto");
|
||||||
|
for (let i = 0; i < 60; i++) {
|
||||||
|
try {
|
||||||
|
const p = new DatabaseSync(process.env.WORKSPACE_DB);
|
||||||
|
try { p.prepare("SELECT 1 FROM personen LIMIT 1").get(); break; } finally { p.close(); }
|
||||||
|
} catch { await new Promise((r) => setTimeout(r, 250)); }
|
||||||
|
}
|
||||||
|
const d = new DatabaseSync(process.env.WORKSPACE_DB);
|
||||||
|
const j = new Date().toISOString();
|
||||||
|
const heute = j.slice(0, 10);
|
||||||
|
function anlegen(name, rolle, code) {
|
||||||
|
const salt = randomBytes(16).toString("hex");
|
||||||
|
const hash = scryptSync(code, salt, 64, { N: 32768, r: 8, p: 1, maxmem: 96 * 1024 * 1024 }).toString("hex");
|
||||||
|
d.prepare("INSERT INTO personen (name,rolle,code_hash,code_salt,code_n,aktiv,erstellt) VALUES (?,?,?,?,?,1,?)")
|
||||||
|
.run(name, rolle, hash, salt, 32768, j);
|
||||||
|
return d.prepare("SELECT last_insert_rowid() AS id").get().id;
|
||||||
|
}
|
||||||
|
const dogi = anlegen("Filipe", "admin", "CODE-DOGI-0001");
|
||||||
|
const scout = anlegen("BananaStift", "scout", "CODE-SCOU-0001");
|
||||||
|
|
||||||
|
/* Ein realistischer Stand: beide Arten, mehrere Stufen, eine leere
|
||||||
|
Spalte -- genau die Faelle, die im Alltag vorkommen. */
|
||||||
|
const lead = (name, handle, status, art, prio, land, follower, netz, followup) =>
|
||||||
|
d.prepare(`INSERT INTO leads
|
||||||
|
(name, plattform, handle, status, prioritaet, scout_id, erstellt, erstellt_von,
|
||||||
|
creator_art, land, follower, netzwerk, naechster_followup, live_zeiten)
|
||||||
|
VALUES (?,'TikTok',?,?,?,?,?,?,?,?,?,?,?,?)`)
|
||||||
|
.run(name, handle, status, prio, scout, j, dogi, art, land, follower, netz,
|
||||||
|
followup, "Mo-Fr ab 21 Uhr");
|
||||||
|
|
||||||
|
lead("Tamy", "@coolemama1991", "neu", "normal", "hoch", "DE", 12400, "nein", heute);
|
||||||
|
lead("Mira", "@mira.live", "neu", "normal", "mittel", "AT", 3200, "unbekannt", null);
|
||||||
|
lead("Nala", "@nala", "neu", "premium", "hoch", "CH", 184000, "nein", null);
|
||||||
|
lead("Jo", "@jo_streamt", "angesprochen", "normal", "mittel", "DE", 8700, "nein", null);
|
||||||
|
lead("Elif", "@elif", "angesprochen", "premium", "hoch", "DE", 92000, "nein", heute);
|
||||||
|
lead("Sam", "@samsam", "gespraech", "normal", "niedrig", "LU", 1500, "ja", null);
|
||||||
|
d.close();
|
||||||
|
|
||||||
|
const pw = await import("file:///C:/Users/qciga/Documents/Obelix/Analyse/node_modules/playwright/index.mjs");
|
||||||
|
const browser = await pw.chromium.launch();
|
||||||
|
const fehlerAufSeite = [];
|
||||||
|
|
||||||
|
const anmelden = async (seite, rolle, code) => {
|
||||||
|
await seite.goto(BASIS + "/workspace/", { waitUntil: "networkidle" });
|
||||||
|
await seite.click(`.rolle[data-rolle="${rolle}"]`);
|
||||||
|
await seite.fill("#code", code);
|
||||||
|
await seite.click("button[type=submit]");
|
||||||
|
await seite.waitForURL("**/start.html", { timeout: 25000 });
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ---- 1. Am Rechner ---------------------------------------------------- */
|
||||||
|
const ctx = await browser.newContext({ viewport: { width: 1400, height: 1100 }, deviceScaleFactor: 2 });
|
||||||
|
const seite = await ctx.newPage();
|
||||||
|
seite.on("console", (m) => { if (m.type() === "error") fehlerAufSeite.push(m.text()); });
|
||||||
|
seite.on("pageerror", (f) => fehlerAufSeite.push(String(f)));
|
||||||
|
await anmelden(seite, "scout", "CODE-SCOU-0001");
|
||||||
|
await seite.goto(BASIS + "/workspace/scouting.html", { waitUntil: "networkidle" });
|
||||||
|
await seite.waitForTimeout(1800);
|
||||||
|
|
||||||
|
console.log("\n=== 1. Am Rechner (1400 px) ===");
|
||||||
|
const spalten = await seite.$$eval(".art-spalte", (ks) => ks.map((k) => ({
|
||||||
|
stufe: k.closest(".stufe")?.dataset.stufe,
|
||||||
|
art: k.dataset.art,
|
||||||
|
titel: k.querySelector(".art-spalte__titel")?.textContent.trim(),
|
||||||
|
zahl: k.querySelector(".art-spalte__zahl")?.textContent.trim(),
|
||||||
|
x: Math.round(k.getBoundingClientRect().x),
|
||||||
|
breite: Math.round(k.getBoundingClientRect().width),
|
||||||
|
linie: getComputedStyle(k).borderLeftWidth,
|
||||||
|
namen: [...k.querySelectorAll(".kk__name")].map((n) => n.textContent.trim()).join(", ")
|
||||||
|
|| k.querySelector(".art-spalte__leer")?.textContent.trim(),
|
||||||
|
})));
|
||||||
|
for (const s of spalten) {
|
||||||
|
console.log(` ${String(s.stufe).padEnd(14)} ${String(s.titel).padEnd(8)} ${String(s.zahl).padStart(2)} `
|
||||||
|
+ `x=${String(s.x).padStart(4)} b=${String(s.breite).padStart(4)} Linie=${s.linie.padStart(5)} ${s.namen}`);
|
||||||
|
}
|
||||||
|
const stufe1 = await seite.$('.stufe[data-stufe="neu"]');
|
||||||
|
await stufe1.screenshot({ path: "server/bild-arten-rechner.png" });
|
||||||
|
await seite.screenshot({ path: "server/bild-arten-rechner-ganz.png", fullPage: false });
|
||||||
|
|
||||||
|
/* ---- 2. Das Formular -------------------------------------------------- */
|
||||||
|
await seite.click("#neu-auf");
|
||||||
|
await seite.waitForTimeout(600);
|
||||||
|
const feld = await seite.$("#neu-block");
|
||||||
|
await feld.screenshot({ path: "server/bild-arten-formular.png" });
|
||||||
|
console.log("\n=== 2. Im Formular ===");
|
||||||
|
console.log(" Auswahl:", (await seite.$$eval("#n-art option",
|
||||||
|
(os) => os.map((o) => o.textContent.trim()))).join(" | "));
|
||||||
|
await seite.click("#neu-zu");
|
||||||
|
|
||||||
|
/* ---- 3. Auf dem Handy (mit Finger!) ----------------------------------- */
|
||||||
|
const handyKontext = await browser.newContext({
|
||||||
|
viewport: { width: 390, height: 844 }, hasTouch: true, isMobile: true, deviceScaleFactor: 3,
|
||||||
|
});
|
||||||
|
await handyKontext.addCookies(await ctx.cookies());
|
||||||
|
const handy = await handyKontext.newPage();
|
||||||
|
await handy.goto(BASIS + "/workspace/scouting.html", { waitUntil: "networkidle" });
|
||||||
|
await handy.waitForTimeout(1800);
|
||||||
|
console.log("\n=== 3. Auf dem Handy (390 px) ===");
|
||||||
|
const schmal = await handy.$$eval('.stufe[data-stufe="neu"] .art-spalte', (ks) => ks.map((k) => ({
|
||||||
|
art: k.dataset.art, y: Math.round(k.getBoundingClientRect().y),
|
||||||
|
breite: Math.round(k.getBoundingClientRect().width),
|
||||||
|
ueberRand: k.getBoundingClientRect().right > window.innerWidth,
|
||||||
|
})));
|
||||||
|
for (const s of schmal) {
|
||||||
|
console.log(` ${String(s.art).padEnd(8)} y=${String(s.y).padStart(5)} b=${s.breite}`
|
||||||
|
+ (s.ueberRand ? " UEBER DEN RAND" : ""));
|
||||||
|
}
|
||||||
|
const stufeH = await handy.$('.stufe[data-stufe="neu"]');
|
||||||
|
await stufeH.screenshot({ path: "server/bild-arten-handy.png" });
|
||||||
|
|
||||||
|
/* ---- 4. Die Personenseite nach einer Uebergabe ------------------------- */
|
||||||
|
const ctxD = await browser.newContext({ viewport: { width: 1400, height: 1100 }, deviceScaleFactor: 2 });
|
||||||
|
const dogiSeite = await ctxD.newPage();
|
||||||
|
await anmelden(dogiSeite, "admin", "CODE-DOGI-0001");
|
||||||
|
await dogiSeite.goto(BASIS + "/workspace/scouting.html", { waitUntil: "networkidle" });
|
||||||
|
await dogiSeite.waitForTimeout(1500);
|
||||||
|
/* Elif (Premium) durch die Pipeline bis zur Uebergabe und ins Onboarding. */
|
||||||
|
const elifId = await dogiSeite.evaluate(async () => {
|
||||||
|
const a = await fetch("/workspace/api/leads", { credentials: "same-origin" });
|
||||||
|
const d2 = await a.json();
|
||||||
|
return d2.leads.find((l) => l.name === "Elif")?.id;
|
||||||
|
});
|
||||||
|
await dogiSeite.evaluate(async (id) => {
|
||||||
|
await fetch("/workspace/api/leads/" + id, {
|
||||||
|
method: "PATCH", credentials: "same-origin",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({ status: "uebergeben" }),
|
||||||
|
});
|
||||||
|
await fetch(`/workspace/api/leads/${id}/onboarding`, {
|
||||||
|
method: "POST", credentials: "same-origin",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({ name: "Elif" }),
|
||||||
|
});
|
||||||
|
}, elifId);
|
||||||
|
await dogiSeite.goto(BASIS + "/workspace/personen.html", { waitUntil: "networkidle" });
|
||||||
|
await dogiSeite.waitForTimeout(1800);
|
||||||
|
console.log("\n=== 4. Auf der Personenseite ===");
|
||||||
|
/* Die Rollengruppen sind zugeklappt (Vorgabe: nur DogFather offen).
|
||||||
|
Ohne diesen Klick steht die Creator-Kachel gar nicht im Dokument --
|
||||||
|
beim ersten Lauf meldete dieser Abschnitt deshalb nichts, und das
|
||||||
|
sah aus wie ein Fehler an der Art. */
|
||||||
|
for (const kopf of await dogiSeite.$$(".gruppe__kopf--klappbar")) {
|
||||||
|
const t = (await kopf.textContent()) || "";
|
||||||
|
if (t.toLowerCase().includes("creator")) { await kopf.click(); await dogiSeite.waitForTimeout(800); }
|
||||||
|
}
|
||||||
|
const creator = await dogiSeite.$$eval('.person[data-rolle="creator"]', (ks) => ks.map((k) => ({
|
||||||
|
name: k.querySelector(".person__name")?.textContent.trim(),
|
||||||
|
marken: [...k.querySelectorAll(".marke-rolle")].map((m) => m.textContent.trim()).join(" - "),
|
||||||
|
art: k.querySelector('select[id^="creator-art-"]')?.value,
|
||||||
|
})));
|
||||||
|
for (const c of creator) console.log(` ${String(c.name).padEnd(14)} [${c.marken}] Auswahl: ${c.art}`);
|
||||||
|
const kachel = await dogiSeite.$('.person[data-rolle="creator"]');
|
||||||
|
if (kachel) await kachel.screenshot({ path: "server/bild-arten-person.png" });
|
||||||
|
|
||||||
|
console.log("\nFehler auf der Seite:", fehlerAufSeite.length ? fehlerAufSeite.join(" | ") : "keine");
|
||||||
|
await browser.close();
|
||||||
|
try { rmSync(ordner, { recursive: true, force: true }); } catch { /* Aufraeumrest */ }
|
||||||
|
process.exit(0);
|
||||||
@@ -222,7 +222,113 @@ console.log("\n=== Die Pipeline gibt es auf der crew-Adresse nicht ===");
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* =======================================================================
|
/* =======================================================================
|
||||||
5. Und die Oberflaeche zeigt es auch
|
5. Normal oder Premium -- die beiden Arten, die TikTok kennt
|
||||||
|
======================================================================= */
|
||||||
|
console.log("\n=== Normal und Premium ===");
|
||||||
|
let premiumId = null, uebergebenId = null;
|
||||||
|
{
|
||||||
|
/* Die Liste kommt vom Server, damit die Oberflaeche keine eigene
|
||||||
|
fuehrt -- und die REIHENFOLGE ist die der Spalten: links, rechts. */
|
||||||
|
const { daten } = await ruf("GET", "/workspace/api/leads", keksScout);
|
||||||
|
ok(Array.isArray(daten?.arten) && daten.arten.length === 2
|
||||||
|
&& daten.arten[0] === "normal" && daten.arten[1] === "premium",
|
||||||
|
`die Artenliste kommt vom Server, in der Reihenfolge der Spalten (${(daten?.arten || []).join(", ")})`);
|
||||||
|
ok(daten?.art_name?.premium === "Premium",
|
||||||
|
`und ihre Namen (${daten?.art_name?.premium})`);
|
||||||
|
|
||||||
|
/* DER LEAD VON OBEN HAT NIE EINE ART BEKOMMEN. Er muss trotzdem in
|
||||||
|
einer der beiden Spalten liegen, sonst waere er unsichtbar. */
|
||||||
|
const alt = (daten?.leads || []).find((x) => x.id === leadId);
|
||||||
|
ok(alt?.creator_art === "normal",
|
||||||
|
`ein Kontakt ohne Angabe gilt als "normal" (${alt?.creator_art})`);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const { status, daten } = await ruf("POST", "/workspace/api/leads", keksScout, {
|
||||||
|
name: "Nala", plattform: "TikTok", handle: "@nala",
|
||||||
|
creator_art: "premium", status: "angesprochen",
|
||||||
|
});
|
||||||
|
ok(status === 201, `ein Premium-Kontakt laesst sich anlegen (HTTP ${status})`);
|
||||||
|
premiumId = daten?.id;
|
||||||
|
const liste = await ruf("GET", "/workspace/api/leads", keksScout);
|
||||||
|
const l = (liste.daten?.leads || []).find((x) => x.id === premiumId);
|
||||||
|
ok(l?.creator_art === "premium", `und bleibt Premium (${l?.creator_art})`);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
/* GEGENPROBEN. Eine erfundene Art wird NICHT stillschweigend zu
|
||||||
|
"normal" gemacht -- wer sich vertippt, soll es erfahren, statt die
|
||||||
|
Karte in der falschen Spalte zu suchen. */
|
||||||
|
const falsch = await ruf("PATCH", `/workspace/api/leads/${premiumId}`, keksScout,
|
||||||
|
{ creator_art: "vip" });
|
||||||
|
ok(falsch.status === 400, `eine erfundene Art wird abgelehnt (HTTP ${falsch.status})`);
|
||||||
|
|
||||||
|
/* Und die Gegenprobe zur Gegenprobe: Umstellen geht. Ohne sie hiesse
|
||||||
|
"wird abgelehnt" auch "wird immer abgelehnt". */
|
||||||
|
const zurueck = await ruf("PATCH", `/workspace/api/leads/${premiumId}`, keksScout,
|
||||||
|
{ creator_art: "normal" });
|
||||||
|
ok(zurueck.status === 200, `auf "normal" umstellen geht (HTTP ${zurueck.status})`);
|
||||||
|
const wieder = await ruf("PATCH", `/workspace/api/leads/${premiumId}`, keksScout,
|
||||||
|
{ creator_art: "premium" });
|
||||||
|
ok(wieder.status === 200, `und wieder zurueck auf "premium" (HTTP ${wieder.status})`);
|
||||||
|
const liste = await ruf("GET", "/workspace/api/leads", keksScout);
|
||||||
|
const l = (liste.daten?.leads || []).find((x) => x.id === premiumId);
|
||||||
|
ok(l?.creator_art === "premium", `der Wert steht danach richtig da (${l?.creator_art})`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =======================================================================
|
||||||
|
6. Die Art ueberlebt die Uebergabe
|
||||||
|
======================================================================= */
|
||||||
|
console.log("\n=== Vom Lead zum Creator ===");
|
||||||
|
{
|
||||||
|
const keksDogi = await anmelden("admin", "CODE-DOGI-0001");
|
||||||
|
const neu = await ruf("POST", "/workspace/api/leads", keksScout, {
|
||||||
|
name: "Nova", plattform: "TikTok", handle: "@nova",
|
||||||
|
creator_art: "premium", status: "uebergeben",
|
||||||
|
});
|
||||||
|
uebergebenId = neu.daten?.id;
|
||||||
|
ok(neu.status === 201, `ein uebergebener Premium-Lead entsteht (HTTP ${neu.status})`);
|
||||||
|
|
||||||
|
const ob = await ruf("POST", `/workspace/api/leads/${uebergebenId}/onboarding`, keksDogi,
|
||||||
|
{ name: "Nova" });
|
||||||
|
ok(ob.status === 201, `das Onboarding legt den Creator an (HTTP ${ob.status})`);
|
||||||
|
const creatorId = ob.daten?.id;
|
||||||
|
|
||||||
|
const liste = await ruf("GET", "/workspace/api/verwaltung/personen", keksDogi);
|
||||||
|
const person = (liste.daten?.personen || []).find((x) => x.id === creatorId);
|
||||||
|
/* DAS IST DER PUNKT DIESES ABSCHNITTS: Ohne diese Zeile endet die
|
||||||
|
Angabe genau dort, wo sie zum ersten Mal vertraglich zaehlt. */
|
||||||
|
ok(person?.creator_art === "premium",
|
||||||
|
`und die Art geht mit auf den Creator (${person?.creator_art})`);
|
||||||
|
ok(Array.isArray(liste.daten?.arten) && liste.daten.arten.length === 2,
|
||||||
|
`die Personenliste bringt dieselbe Artenliste mit (${(liste.daten?.arten || []).join(", ")})`);
|
||||||
|
|
||||||
|
/* AENDERBAR, nicht nur gesetzt. Ein Wert, den man einmal setzt und nie
|
||||||
|
wieder, war am 11.09.2026 der eigentliche Mangel der Pipeline. */
|
||||||
|
const um = await ruf("PUT", `/workspace/api/verwaltung/personen/${creatorId}/creator-art`,
|
||||||
|
keksDogi, { creator_art: "normal" });
|
||||||
|
ok(um.status === 200, `die Art laesst sich am Creator aendern (HTTP ${um.status})`);
|
||||||
|
const danach = await ruf("GET", "/workspace/api/verwaltung/personen", keksDogi);
|
||||||
|
const p2 = (danach.daten?.personen || []).find((x) => x.id === creatorId);
|
||||||
|
ok(p2?.creator_art === "normal", `und steht danach auf normal (${p2?.creator_art})`);
|
||||||
|
|
||||||
|
/* Gegenproben: Unsinn und falsche Rolle. */
|
||||||
|
const unsinn = await ruf("PUT", `/workspace/api/verwaltung/personen/${creatorId}/creator-art`,
|
||||||
|
keksDogi, { creator_art: "deluxe" });
|
||||||
|
ok(unsinn.status === 400, `eine erfundene Art wird auch hier abgelehnt (HTTP ${unsinn.status})`);
|
||||||
|
|
||||||
|
const scoutPerson = (danach.daten?.personen || []).find((x) => x.rolle === "scout");
|
||||||
|
const falscheRolle = await ruf("PUT",
|
||||||
|
`/workspace/api/verwaltung/personen/${scoutPerson?.id}/creator-art`, keksDogi,
|
||||||
|
{ creator_art: "premium" });
|
||||||
|
ok(falscheRolle.status === 404,
|
||||||
|
`an einem Scout gibt es keine Creator-Art (HTTP ${falscheRolle.status})`);
|
||||||
|
|
||||||
|
/* Zurueck auf Premium -- die Oberflaechenpruefung unten erwartet es so. */
|
||||||
|
await ruf("PUT", `/workspace/api/verwaltung/personen/${creatorId}/creator-art`,
|
||||||
|
keksDogi, { creator_art: "premium" });
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =======================================================================
|
||||||
|
7. Und die Oberflaeche zeigt es auch
|
||||||
======================================================================= */
|
======================================================================= */
|
||||||
console.log("\n=== Die Seite selbst ===");
|
console.log("\n=== Die Seite selbst ===");
|
||||||
{
|
{
|
||||||
@@ -261,6 +367,79 @@ console.log("\n=== Die Seite selbst ===");
|
|||||||
.catch(() => null);
|
.catch(() => null);
|
||||||
ok(warn === "Schon im Netzwerk", `die Netzwerk-Warnung ist zu sehen (${warn})`);
|
ok(warn === "Schon im Netzwerk", `die Netzwerk-Warnung ist zu sehen (${warn})`);
|
||||||
|
|
||||||
|
/* ===== LINKS NORMAL, RECHTS PREMIUM =============================
|
||||||
|
|
||||||
|
Filipe: "ich will dass es da in der mitte eine trennung gibt."
|
||||||
|
|
||||||
|
Gemessen wird nicht, ob die Klassen da sind, sondern wo die Kaesten
|
||||||
|
WIRKLICH liegen -- links/rechts, auf gleicher Hoehe, mit einer
|
||||||
|
Trennlinie dazwischen. Eine Pruefung auf Klassennamen waere auch
|
||||||
|
dann gruen, wenn das CSS gar nicht geladen haette. */
|
||||||
|
const spaltenLesen = (wo, stufe) => wo.$$eval(
|
||||||
|
`.stufe[data-stufe="${stufe}"] .art-spalte`, (ks) => ks.map((k) => {
|
||||||
|
const r = k.getBoundingClientRect();
|
||||||
|
const stil = getComputedStyle(k);
|
||||||
|
return {
|
||||||
|
art: k.dataset.art,
|
||||||
|
titel: k.querySelector(".art-spalte__titel")?.textContent.trim() || null,
|
||||||
|
zahl: k.querySelector(".art-spalte__zahl")?.textContent.trim() || null,
|
||||||
|
/* Wie weit steht die Zahl von ihrem Wort entfernt? Siehe den
|
||||||
|
Fund vom 06.10.2026 in scouting.css: Eine fremde Regel aus
|
||||||
|
`aufgaben.css` hat sie ans andere Ende der Spalte gezogen,
|
||||||
|
und keine Pruefung wurde rot. */
|
||||||
|
abstand: (() => {
|
||||||
|
const t = k.querySelector(".art-spalte__titel");
|
||||||
|
const z = k.querySelector(".art-spalte__zahl");
|
||||||
|
if (!t || !z) return null;
|
||||||
|
return Math.round(z.getBoundingClientRect().left - t.getBoundingClientRect().right);
|
||||||
|
})(),
|
||||||
|
x: Math.round(r.x), y: Math.round(r.y), breite: Math.round(r.width),
|
||||||
|
randLinks: parseFloat(stil.borderLeftWidth) || 0,
|
||||||
|
namen: [...k.querySelectorAll(".kk__name")].map((n) => n.textContent.trim()),
|
||||||
|
leer: k.querySelector(".art-spalte__leer")?.textContent.trim() || null,
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
|
||||||
|
const neuSpalten = await spaltenLesen(seite, "neu");
|
||||||
|
ok(neuSpalten.length === 2, `die Stufe "Neu" hat zwei Spalten (${neuSpalten.length})`);
|
||||||
|
ok(neuSpalten[0]?.art === "normal" && neuSpalten[0]?.titel === "Normal",
|
||||||
|
`links steht "Normal" (${neuSpalten[0]?.titel})`);
|
||||||
|
ok(neuSpalten[1]?.art === "premium" && neuSpalten[1]?.titel === "Premium",
|
||||||
|
`rechts steht "Premium" (${neuSpalten[1]?.titel})`);
|
||||||
|
/* LINKS IST WIRKLICH LINKS -- in Pixeln, nicht in der Reihenfolge im
|
||||||
|
Quelltext. `order` oder `direction` koennten sie drehen, ohne dass
|
||||||
|
am HTML etwas auffaellt. */
|
||||||
|
ok(neuSpalten.length === 2 && neuSpalten[1].x > neuSpalten[0].x + 100,
|
||||||
|
`und zwar rechts DANEBEN (x ${neuSpalten[0]?.x} -> ${neuSpalten[1]?.x})`);
|
||||||
|
ok(neuSpalten.length === 2 && Math.abs(neuSpalten[0].y - neuSpalten[1].y) <= 4,
|
||||||
|
`beide beginnen auf gleicher Hoehe (y ${neuSpalten[0]?.y} / ${neuSpalten[1]?.y})`);
|
||||||
|
ok((neuSpalten[1]?.randLinks || 0) >= 1,
|
||||||
|
`die Trennung in der Mitte ist eine echte Linie (${neuSpalten[1]?.randLinks} px)`);
|
||||||
|
/* DIE ZAHL GEHOERT NEBEN IHR WORT. Nicht Geschmack: Eine Zahl am
|
||||||
|
anderen Ende einer 580 px breiten Spalte gehoert optisch zu nichts
|
||||||
|
mehr. Gefunden wurde das nur im Bildschirmfoto -- diese Messung
|
||||||
|
holt es in die Zahlen. */
|
||||||
|
ok(neuSpalten.every((k) => k.abstand !== null && k.abstand >= 0 && k.abstand <= 20),
|
||||||
|
`die Zahl steht neben ihrem Wort (${neuSpalten.map((k) => k.abstand + " px").join(" / ")})`);
|
||||||
|
|
||||||
|
/* UND DIE KARTEN LIEGEN AUCH DORT, WO SIE HINGEHOEREN. */
|
||||||
|
ok(neuSpalten[0]?.namen.includes("Tamy"),
|
||||||
|
`der normale Kontakt steht links (${(neuSpalten[0]?.namen || []).join(", ") || "nichts"})`);
|
||||||
|
ok(neuSpalten[1]?.leer === "noch niemand",
|
||||||
|
`die leere Premium-Spalte bleibt stehen und sagt es (${neuSpalten[1]?.leer})`);
|
||||||
|
|
||||||
|
const angSpalten = await spaltenLesen(seite, "angesprochen");
|
||||||
|
ok(angSpalten[1]?.namen.includes("Nala"),
|
||||||
|
`der Premium-Kontakt steht rechts (${(angSpalten[1]?.namen || []).join(", ") || "nichts"})`);
|
||||||
|
ok(angSpalten[0]?.leer === "noch niemand",
|
||||||
|
`und links steht dort "noch niemand" (${angSpalten[0]?.leer})`);
|
||||||
|
|
||||||
|
/* Die Marke auf der Karte -- nur bei Premium, nirgends sonst. */
|
||||||
|
const premiumMarken = await seite.$$eval('.kk .marke-punkt[data-art="premium"]',
|
||||||
|
(ks) => ks.map((k) => k.closest(".kk")?.querySelector(".kk__name")?.textContent.trim()));
|
||||||
|
ok(premiumMarken.length === 2 && premiumMarken.includes("Nala") && premiumMarken.includes("Nova"),
|
||||||
|
`genau die zwei Premium-Karten tragen die Marke (${premiumMarken.join(", ")})`);
|
||||||
|
|
||||||
/* AUFKLAPPEN UND ZAEHLEN: Wie viele Felder stehen wirklich zur
|
/* AUFKLAPPEN UND ZAEHLEN: Wie viele Felder stehen wirklich zur
|
||||||
Verfuegung? Das ist Filipes Frage ("was man da noch alles eintragen
|
Verfuegung? Das ist Filipes Frage ("was man da noch alles eintragen
|
||||||
kann") als Zahl. Vorher waren es fuenf. */
|
kann") als Zahl. Vorher waren es fuenf. */
|
||||||
@@ -268,7 +447,59 @@ console.log("\n=== Die Seite selbst ===");
|
|||||||
await seite.waitForTimeout(700);
|
await seite.waitForTimeout(700);
|
||||||
const felder = await seite.$$eval(".kk__detail input, .kk__detail select, .kk__detail textarea",
|
const felder = await seite.$$eval(".kk__detail input, .kk__detail select, .kk__detail textarea",
|
||||||
(ks) => ks.length);
|
(ks) => ks.length);
|
||||||
ok(felder >= 12, `im Editor stehen ${felder} Felder (vorher 5)`);
|
ok(felder >= 13, `im Editor stehen ${felder} Felder (vorher 5, mit der Art 13)`);
|
||||||
|
|
||||||
|
/* Die Art ist im Editor dabei -- sonst waere sie beim Anlegen zu
|
||||||
|
setzen und danach nie wieder zu aendern. */
|
||||||
|
const artImEditor = await seite.$$eval(".kk__detail select",
|
||||||
|
(ks) => ks.map((k) => [...k.options].map((o) => o.value).join(",")));
|
||||||
|
ok(artImEditor.includes("normal,premium"),
|
||||||
|
`im Editor steht die Art zur Auswahl (${artImEditor.join(" | ")})`);
|
||||||
|
|
||||||
|
/* Und beim ANLEGEN -- das war der zweite Teil von Filipes Wunsch. */
|
||||||
|
await seite.click("#neu-auf");
|
||||||
|
await seite.waitForTimeout(300);
|
||||||
|
const neuArt = await seite.$$eval("#n-art option",
|
||||||
|
(os) => os.map((o) => `${o.value}:${o.textContent.trim()}`));
|
||||||
|
ok(neuArt.length === 2 && neuArt[0] === "normal:Normal" && neuArt[1] === "premium:Premium",
|
||||||
|
`im Formular "Neuer Kontakt" kann man zwischen beiden waehlen (${neuArt.join(", ")})`);
|
||||||
|
await seite.click("#neu-zu");
|
||||||
|
await seite.waitForTimeout(250);
|
||||||
|
|
||||||
|
/* ===== GEGENPROBE: AUF DEM HANDY LIEGEN SIE UNTEREINANDER ========
|
||||||
|
|
||||||
|
Ohne diese Messung wuesste niemand, ob die Trennung ueberhaupt
|
||||||
|
umschaltet -- eine Spaltenregel, die bei 390 px zwei Spalten zu je
|
||||||
|
170 px macht, waere unbedienbar und waere oben trotzdem gruen
|
||||||
|
gewesen. Gleichzeitig beweist sie, dass die erste Messung etwas
|
||||||
|
messen KANN: Dieselben Kaesten, dieselbe Abfrage, anderes Ergebnis.
|
||||||
|
|
||||||
|
MIT EIGENEM KONTEXT UND MIT FINGER (hasTouch), nicht mit
|
||||||
|
`setViewportSize` auf derselben Seite. `hasTouch` gehoert zum
|
||||||
|
KONTEXT und laesst sich danach nicht nachtragen -- ohne ihn meldet
|
||||||
|
der Browser `pointer: fine`, und keine einzige Regel aus
|
||||||
|
`@media (pointer: coarse)` greift. Eine Messung mit Mauszeiger auf
|
||||||
|
390 px vermisst eine Seite, die es auf keinem Telefon gibt, und
|
||||||
|
meldet dabei "in Ordnung". Genau das hat `pruef-fingermass` hier
|
||||||
|
beim ersten Anlauf gefunden -- die Hauswache, die es dafuer gibt. */
|
||||||
|
const handyKontext = await browser.newContext({
|
||||||
|
viewport: { width: 390, height: 844 }, hasTouch: true, isMobile: true,
|
||||||
|
});
|
||||||
|
await handyKontext.addCookies(await ctx.cookies());
|
||||||
|
const handy = await handyKontext.newPage();
|
||||||
|
await handy.goto(seite.url(), { waitUntil: "networkidle" });
|
||||||
|
await handy.waitForTimeout(900);
|
||||||
|
const schmal = await spaltenLesen(handy, "neu");
|
||||||
|
ok(schmal.length === 2, `auf dem Handy sind es immer noch zwei Spalten (${schmal.length})`);
|
||||||
|
ok(schmal.length === 2 && schmal[1].y > schmal[0].y + 40,
|
||||||
|
`aber untereinander statt nebeneinander (y ${schmal[0]?.y} -> ${schmal[1]?.y})`);
|
||||||
|
ok(schmal.length === 2 && Math.abs(schmal[0].x - schmal[1].x) <= 2,
|
||||||
|
`und beide gleich weit links (x ${schmal[0]?.x} / ${schmal[1]?.x})`);
|
||||||
|
ok((schmal[1]?.randLinks || 0) === 0,
|
||||||
|
`die senkrechte Trennlinie faellt dabei weg (${schmal[1]?.randLinks} px)`);
|
||||||
|
ok(schmal.every((k) => k.breite >= 300),
|
||||||
|
`keine Spalte wird gequetscht (${schmal.map((k) => k.breite).join(" / ")} px)`);
|
||||||
|
|
||||||
await browser.close();
|
await browser.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ import {
|
|||||||
db, protokolliere, echteIp, sitzungLesen, personAnlegen, codeNeu, sitzungToken, personSperren, betreuungSetzen, scoutZuteilungSetzen, istLeitung, istDogFather, siehtModis, siehtAlles, ROLLEN_SORTIERUNG, ROLLEN_REIHE, istSpicy, verborgeneIds, TEAM_DOGI_ROLLEN, darfAnlegen, darfRollenWechseln, darfRolleAendern, rollenZumAendern, hausBedingung, istHand, fuehrtDieZugaenge,
|
db, protokolliere, echteIp, sitzungLesen, personAnlegen, codeNeu, sitzungToken, personSperren, betreuungSetzen, scoutZuteilungSetzen, istLeitung, istDogFather, siehtModis, siehtAlles, ROLLEN_SORTIERUNG, ROLLEN_REIHE, istSpicy, verborgeneIds, TEAM_DOGI_ROLLEN, darfAnlegen, darfRollenWechseln, darfRolleAendern, rollenZumAendern, hausBedingung, istHand, fuehrtDieZugaenge,
|
||||||
} from "./workspace.js";
|
} from "./workspace.js";
|
||||||
import { sicherungJetzt } from "./workspace-sicherung.js";
|
import { sicherungJetzt } from "./workspace-sicherung.js";
|
||||||
|
/* Normal und Premium stehen bei der Scout-Pipeline, weil sie dort
|
||||||
|
entstehen. Hier wird dieselbe Liste benutzt und keine zweite
|
||||||
|
angelegt -- sonst koennte eine Seite einen Wert anbieten, den die
|
||||||
|
andere ablehnt. */
|
||||||
|
import { ARTEN, ART_NAME, artVon } from "./workspace-scouts.js";
|
||||||
|
|
||||||
export const personenRouter = express.Router();
|
export const personenRouter = express.Router();
|
||||||
|
|
||||||
@@ -343,6 +348,12 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
|
|||||||
res.json({
|
res.json({
|
||||||
personen: db().prepare(`
|
personen: db().prepare(`
|
||||||
SELECT p.id, p.name, p.rolle, p.aktiv, p.erstellt, p.letzter_login,
|
SELECT p.id, p.name, p.rolle, p.aktiv, p.erstellt, p.letzter_login,
|
||||||
|
/* Normal oder Premium (06.10.2026). Sie kommt beim
|
||||||
|
Creator-Onboarding aus der Scout-Pipeline mit und wird
|
||||||
|
ab da hier gepflegt. Bei allen anderen Rollen ist sie
|
||||||
|
leer und bedeutet nichts -- die Oberflaeche fragt
|
||||||
|
deshalb vorher nach der Rolle, nicht nach dem Wert. */
|
||||||
|
p.creator_art,
|
||||||
(SELECT COUNT(*) FROM sitzungen s WHERE s.person_id = p.id) AS sitzungen,
|
(SELECT COUNT(*) FROM sitzungen s WHERE s.person_id = p.id) AS sitzungen,
|
||||||
(SELECT COUNT(*) FROM aufgaben a
|
(SELECT COUNT(*) FROM aufgaben a
|
||||||
WHERE (a.creator_id = p.id OR a.verantwortlich_id = p.id)
|
WHERE (a.creator_id = p.id OR a.verantwortlich_id = p.id)
|
||||||
@@ -383,7 +394,13 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
|
|||||||
LEFT JOIN scout_zuteilung sz ON sz.scout_id = p.id
|
LEFT JOIN scout_zuteilung sz ON sz.scout_id = p.id
|
||||||
WHERE 1=1${hausBedingung(req.person, "p.rolle")}
|
WHERE 1=1${hausBedingung(req.person, "p.rolle")}
|
||||||
ORDER BY ${ROLLEN_SORTIERUNG.replace("rolle", "p.rolle")}, p.aktiv DESC, p.name`)
|
ORDER BY ${ROLLEN_SORTIERUNG.replace("rolle", "p.rolle")}, p.aktiv DESC, p.name`)
|
||||||
.all().filter((z) => !weg.has(z.id)),
|
.all().filter((z) => !weg.has(z.id))
|
||||||
|
/* NULL heisst "normal" -- aufgeloest wird das hier und nicht in
|
||||||
|
der Oberflaeche, damit es nicht zwei Meinungen darueber gibt.
|
||||||
|
Nur bei Creatorn: Bei allen anderen Rollen bleibt das Feld
|
||||||
|
leer, und "leer" ist dort die richtige Antwort. */
|
||||||
|
.map((z) => (z.rolle === "creator"
|
||||||
|
? { ...z, creator_art: artVon(z.creator_art) } : z)),
|
||||||
/* Wer ueberhaupt als zustaendig eingetragen werden kann.
|
/* Wer ueberhaupt als zustaendig eingetragen werden kann.
|
||||||
|
|
||||||
Bis zum 31.08.2026 waren das nur Scouts. In der Auswahl stand
|
Bis zum 31.08.2026 waren das nur Scouts. In der Auswahl stand
|
||||||
@@ -401,6 +418,14 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
|
|||||||
WHERE rolle IN ('admin', 'manager', 'scout') AND aktiv = 1
|
WHERE rolle IN ('admin', 'manager', 'scout') AND aktiv = 1
|
||||||
ORDER BY ${ROLLEN_SORTIERUNG}, name`).all().filter((z) => !weg.has(z.id)),
|
ORDER BY ${ROLLEN_SORTIERUNG}, name`).all().filter((z) => !weg.has(z.id)),
|
||||||
|
|
||||||
|
/* Normal und Premium kommen MIT -- aus derselben Liste wie in der
|
||||||
|
Scout-Pipeline. Die Oberflaeche fuehrt keine eigene: Sonst
|
||||||
|
stuenden die beiden Arten an drei Stellen im Haus (Server,
|
||||||
|
Pipeline-Seite, Personenseite), und die dritte waere die, die
|
||||||
|
beim naechsten Mal vergessen wird. Genau so ist es am 10.09.
|
||||||
|
schon einmal mit der Rollenwahl passiert. */
|
||||||
|
arten: ARTEN, art_name: ART_NAME,
|
||||||
|
|
||||||
/* =============================================================
|
/* =============================================================
|
||||||
ROLLEN, DIE NICHT IM BROWSER STEHEN DUERFEN (09.09.2026)
|
ROLLEN, DIE NICHT IM BROWSER STEHEN DUERFEN (09.09.2026)
|
||||||
|
|
||||||
@@ -601,6 +626,46 @@ personenRouter.put("/workspace/api/verwaltung/betreuung/:id", gleicheHerkunft, (
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* ---------- Normal oder Premium (06.10.2026) -----------------------------
|
||||||
|
|
||||||
|
Die Art kommt beim Creator-Onboarding aus der Scout-Pipeline mit. Ab
|
||||||
|
hier haengt sie an der PERSON und laeuft dem Lead nicht mehr
|
||||||
|
hinterher: Ein Lead kann geloescht werden, ein Vertrag kann wechseln,
|
||||||
|
und die Pipeline ist ein Arbeitsstand, kein Register.
|
||||||
|
|
||||||
|
DESHALB MUSS SIE HIER AENDERBAR SEIN. Ein Wert, den man einmal setzt
|
||||||
|
und danach nie wieder -- genau das war Filipes Befund vom 11.09.2026
|
||||||
|
ueber die Pipeline ("man kan da nichts machen"), und ihn hier noch
|
||||||
|
einmal zu bauen waere derselbe Fehler mit einer anderen Spalte. */
|
||||||
|
|
||||||
|
personenRouter.put("/workspace/api/verwaltung/personen/:id/creator-art", gleicheHerkunft, (req, res) => {
|
||||||
|
try {
|
||||||
|
const id = Number(req.params.id);
|
||||||
|
if (!Number.isInteger(id)) return res.status(400).json({ fehler: "ungueltig" });
|
||||||
|
|
||||||
|
const creator = db().prepare("SELECT id, name, rolle FROM personen WHERE id = ?").get(id);
|
||||||
|
/* NUR an Creatorn. Ein Manager mit der Art "Premium" waere eine
|
||||||
|
Angabe, die nirgends etwas bedeutet -- und sie stuende dann in
|
||||||
|
der Liste, als haette jemand sie gemeint. */
|
||||||
|
if (!creator || creator.rolle !== "creator") {
|
||||||
|
return res.status(404).json({ fehler: "nicht_gefunden" });
|
||||||
|
}
|
||||||
|
|
||||||
|
const w = String(req.body?.creator_art ?? "").trim();
|
||||||
|
if (!ARTEN.includes(w)) return res.status(400).json({ fehler: "Unbekannte Creator-Art." });
|
||||||
|
|
||||||
|
db().prepare("UPDATE personen SET creator_art = ? WHERE id = ?").run(w, id);
|
||||||
|
protokolliere("creator_art_gesetzt", {
|
||||||
|
personId: req.person.id, rolle: req.person.rolle, ip: echteIp(req),
|
||||||
|
detail: `#${id} ${creator.name} -> ${ART_NAME[w] || w}`.slice(0, 120),
|
||||||
|
});
|
||||||
|
res.json({ ok: true, creator_art: w });
|
||||||
|
} catch (fehler) {
|
||||||
|
console.error("[workspace] Creator-Art setzen:", fehler?.message);
|
||||||
|
res.status(503).json({ fehler: "nicht_verfuegbar" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
/* ---------- Welcher Scout gehoert zu welchem Manager --------------------
|
/* ---------- Welcher Scout gehoert zu welchem Manager --------------------
|
||||||
|
|
||||||
"er soll nur die Scouts sehen, die ihm zugeteilt sind." (01.09.2026)
|
"er soll nur die Scouts sehen, die ihm zugeteilt sind." (01.09.2026)
|
||||||
|
|||||||
@@ -55,6 +55,27 @@ export const NETZWERK = ["nein", "ja", "unbekannt"];
|
|||||||
export const NETZWERK_NAME = {
|
export const NETZWERK_NAME = {
|
||||||
nein: "frei", ja: "schon im Netzwerk", unbekannt: "noch nicht gefragt",
|
nein: "frei", ja: "schon im Netzwerk", unbekannt: "noch nicht gefragt",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* NORMAL ODER PREMIUM -- die beiden Arten, die TikTok kennt (06.10.2026).
|
||||||
|
|
||||||
|
Filipe: "es gibt bei tiktok nämlich diese zwei optionen von streamer."
|
||||||
|
|
||||||
|
GENAU ZWEI, und absichtlich kein "weiss nicht". Die Begruendung steht
|
||||||
|
bei der Spalte in workspace.js; kurz: Hier wird nicht eine fremde
|
||||||
|
Tatsache festgehalten, sondern eine eigene Absicht -- und deren
|
||||||
|
Normalfall ist "normal".
|
||||||
|
|
||||||
|
DIE REIHENFOLGE IST DIE DER SPALTEN auf der Seite: links normal,
|
||||||
|
rechts premium. Die Oberflaeche liest sie von hier, sie fuehrt keine
|
||||||
|
eigene Liste -- sonst stuende die Trennung an zwei Stellen und wuerde
|
||||||
|
an einer davon geaendert. */
|
||||||
|
export const ARTEN = ["normal", "premium"];
|
||||||
|
export const ART_NAME = { normal: "Normal", premium: "Premium" };
|
||||||
|
|
||||||
|
/* NULL ist "normal". Diese Umrechnung steht an EINER Stelle, weil sonst
|
||||||
|
jede Abfrage, jede Spaltenzuteilung und jede Zaehlung ihre eigene
|
||||||
|
Meinung dazu haette, wo ein Lead ohne Eintrag hingehoert. */
|
||||||
|
export const artVon = (wert) => (wert === "premium" ? "premium" : "normal");
|
||||||
const NAME_MAX = 120;
|
const NAME_MAX = 120;
|
||||||
const TEXT_MAX = 3000;
|
const TEXT_MAX = 3000;
|
||||||
|
|
||||||
@@ -120,6 +141,7 @@ const SPALTEN = `
|
|||||||
l.aktivitaet, l.potenzial, l.notizen, l.letzte_nachricht, l.naechster_followup,
|
l.aktivitaet, l.potenzial, l.notizen, l.letzte_nachricht, l.naechster_followup,
|
||||||
l.scout_id, l.erstellt, l.geaendert, l.uebergeben_am, l.creator_id,
|
l.scout_id, l.erstellt, l.geaendert, l.uebergeben_am, l.creator_id,
|
||||||
l.follower, l.land, l.woher, l.kontaktweg, l.live_zeiten, l.netzwerk, l.absage_grund,
|
l.follower, l.land, l.woher, l.kontaktweg, l.live_zeiten, l.netzwerk, l.absage_grund,
|
||||||
|
l.creator_art,
|
||||||
ps.name AS scout_name, pc.name AS creator_name`;
|
ps.name AS scout_name, pc.name AS creator_name`;
|
||||||
|
|
||||||
const VERBUND = `
|
const VERBUND = `
|
||||||
@@ -143,7 +165,11 @@ scoutRouter.get("/workspace/api/leads", (req, res) => {
|
|||||||
andere nicht -- zuletzt bei der Rollenwahl am 10.09. */
|
andere nicht -- zuletzt bei der Rollenwahl am 10.09. */
|
||||||
laender: LAENDER, land_name: LAND_NAME,
|
laender: LAENDER, land_name: LAND_NAME,
|
||||||
netzwerk: NETZWERK, netzwerk_name: NETZWERK_NAME,
|
netzwerk: NETZWERK, netzwerk_name: NETZWERK_NAME,
|
||||||
|
arten: ARTEN, art_name: ART_NAME,
|
||||||
heute,
|
heute,
|
||||||
|
/* `creator_art` wird hier schon aufgeloest (NULL -> "normal"),
|
||||||
|
damit die Oberflaeche nicht ihre eigene Regel dafuer braucht --
|
||||||
|
sie waere die zweite und wuerde irgendwann die andere sagen. */
|
||||||
leads: db().prepare(`
|
leads: db().prepare(`
|
||||||
SELECT ${SPALTEN} ${VERBUND}
|
SELECT ${SPALTEN} ${VERBUND}
|
||||||
WHERE ${wo}
|
WHERE ${wo}
|
||||||
@@ -153,7 +179,8 @@ scoutRouter.get("/workspace/api/leads", (req, res) => {
|
|||||||
WHEN 'uebergeben' THEN 4 ELSE 5 END,
|
WHEN 'uebergeben' THEN 4 ELSE 5 END,
|
||||||
CASE l.prioritaet WHEN 'hoch' THEN 0 WHEN 'mittel' THEN 1 ELSE 2 END,
|
CASE l.prioritaet WHEN 'hoch' THEN 0 WHEN 'mittel' THEN 1 ELSE 2 END,
|
||||||
CASE WHEN l.naechster_followup IS NULL THEN 1 ELSE 0 END,
|
CASE WHEN l.naechster_followup IS NULL THEN 1 ELSE 0 END,
|
||||||
l.naechster_followup, l.id DESC`).all(...werte),
|
l.naechster_followup, l.id DESC`).all(...werte)
|
||||||
|
.map((l) => ({ ...l, creator_art: artVon(l.creator_art) })),
|
||||||
});
|
});
|
||||||
} catch (fehler) {
|
} catch (fehler) {
|
||||||
console.error("[workspace] Leads lesen:", fehler?.message);
|
console.error("[workspace] Leads lesen:", fehler?.message);
|
||||||
@@ -216,6 +243,19 @@ function pruefe(körper, { neu }) {
|
|||||||
else if (!NETZWERK.includes(w)) fehler.push("Unbekannte Angabe zum Netzwerk.");
|
else if (!NETZWERK.includes(w)) fehler.push("Unbekannte Angabe zum Netzwerk.");
|
||||||
else aus.netzwerk = w;
|
else aus.netzwerk = w;
|
||||||
}
|
}
|
||||||
|
/* Normal oder Premium. Ein leerer Wert ist hier NICHT dasselbe wie bei
|
||||||
|
Land und Netzwerk: Dort heisst leer "nicht angegeben" und wird als
|
||||||
|
NULL gespeichert, hier gibt es keinen dritten Zustand -- leer faellt
|
||||||
|
auf "normal" zurueck, so wie es die Spalte ohnehin liest. Ein
|
||||||
|
erfundener Wert wird trotzdem abgelehnt und nicht stillschweigend
|
||||||
|
zu "normal" gemacht: Wer "premiumm" schickt, hat sich vertippt und
|
||||||
|
soll es erfahren, statt die Karte auf der falschen Seite zu finden. */
|
||||||
|
if (körper.creator_art !== undefined) {
|
||||||
|
const w = String(körper.creator_art ?? "").trim();
|
||||||
|
if (!w) aus.creator_art = "normal";
|
||||||
|
else if (!ARTEN.includes(w)) fehler.push("Unbekannte Creator-Art.");
|
||||||
|
else aus.creator_art = w;
|
||||||
|
}
|
||||||
if (körper.follower !== undefined) {
|
if (körper.follower !== undefined) {
|
||||||
const roh = String(körper.follower ?? "").trim();
|
const roh = String(körper.follower ?? "").trim();
|
||||||
if (!roh) aus.follower = null;
|
if (!roh) aus.follower = null;
|
||||||
@@ -270,8 +310,9 @@ scoutRouter.post("/workspace/api/leads", gleicheHerkunft, (req, res) => {
|
|||||||
INSERT INTO leads
|
INSERT INTO leads
|
||||||
(name, plattform, handle, status, prioritaet, aktivitaet, potenzial,
|
(name, plattform, handle, status, prioritaet, aktivitaet, potenzial,
|
||||||
notizen, letzte_nachricht, naechster_followup, scout_id, erstellt, erstellt_von,
|
notizen, letzte_nachricht, naechster_followup, scout_id, erstellt, erstellt_von,
|
||||||
follower, land, woher, kontaktweg, live_zeiten, netzwerk, absage_grund)
|
follower, land, woher, kontaktweg, live_zeiten, netzwerk, absage_grund,
|
||||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`).run(
|
creator_art)
|
||||||
|
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`).run(
|
||||||
aus.name, aus.plattform ?? null, aus.handle ?? null,
|
aus.name, aus.plattform ?? null, aus.handle ?? null,
|
||||||
aus.status ?? "neu", aus.prioritaet ?? "mittel",
|
aus.status ?? "neu", aus.prioritaet ?? "mittel",
|
||||||
aus.aktivitaet ?? null, aus.potenzial ?? null, aus.notizen ?? null,
|
aus.aktivitaet ?? null, aus.potenzial ?? null, aus.notizen ?? null,
|
||||||
@@ -279,7 +320,7 @@ scoutRouter.post("/workspace/api/leads", gleicheHerkunft, (req, res) => {
|
|||||||
scoutId, jetzt(), req.person.id,
|
scoutId, jetzt(), req.person.id,
|
||||||
aus.follower ?? null, aus.land ?? null, aus.woher ?? null,
|
aus.follower ?? null, aus.land ?? null, aus.woher ?? null,
|
||||||
aus.kontaktweg ?? null, aus.live_zeiten ?? null, aus.netzwerk ?? null,
|
aus.kontaktweg ?? null, aus.live_zeiten ?? null, aus.netzwerk ?? null,
|
||||||
aus.absage_grund ?? null);
|
aus.absage_grund ?? null, aus.creator_art ?? "normal");
|
||||||
|
|
||||||
protokolliere("lead_angelegt", {
|
protokolliere("lead_angelegt", {
|
||||||
personId: req.person.id, rolle: req.person.rolle, ip: echteIp(req),
|
personId: req.person.id, rolle: req.person.rolle, ip: echteIp(req),
|
||||||
@@ -382,6 +423,17 @@ scoutRouter.post("/workspace/api/leads/:id/onboarding", gleicheHerkunft, (req, r
|
|||||||
db().prepare("UPDATE leads SET creator_id = ?, geaendert = ? WHERE id = ?")
|
db().prepare("UPDATE leads SET creator_id = ?, geaendert = ? WHERE id = ?")
|
||||||
.run(neu.id, jetzt(), id);
|
.run(neu.id, jetzt(), id);
|
||||||
|
|
||||||
|
/* DIE ART GEHT MIT (06.10.2026).
|
||||||
|
|
||||||
|
Sonst endet die Angabe genau in dem Moment, in dem sie zum ersten
|
||||||
|
Mal vertraglich zaehlt: Der Scout haelt fest, dass jemand als
|
||||||
|
Premium geholt werden soll, das Onboarding legt die Person an --
|
||||||
|
und am Creator steht es nirgends mehr. Ab hier ist es eine Angabe
|
||||||
|
an der Person und laeuft dem Lead nicht mehr hinterher; geaendert
|
||||||
|
wird sie danach in der Personenverwaltung. */
|
||||||
|
db().prepare("UPDATE personen SET creator_art = ? WHERE id = ?")
|
||||||
|
.run(artVon(lead.creator_art), neu.id);
|
||||||
|
|
||||||
/* Die Angaben des Scouts wandern ins Creator-Profil -- sonst müsste
|
/* Die Angaben des Scouts wandern ins Creator-Profil -- sonst müsste
|
||||||
das Management sie abtippen, obwohl sie längst da sind. */
|
das Management sie abtippen, obwohl sie längst da sind. */
|
||||||
const handles = [lead.plattform, lead.handle].filter(Boolean).join(" · ") || null;
|
const handles = [lead.plattform, lead.handle].filter(Boolean).join(" · ") || null;
|
||||||
|
|||||||
@@ -3921,7 +3921,34 @@ function umstellungen(d) {
|
|||||||
["leads", "netzwerk", "TEXT"], // schon bei einer Agentur? nein/ja/unbekannt
|
["leads", "netzwerk", "TEXT"], // schon bei einer Agentur? nein/ja/unbekannt
|
||||||
["leads", "absage_grund", "TEXT"], // warum es nicht gepasst hat
|
["leads", "absage_grund", "TEXT"], // warum es nicht gepasst hat
|
||||||
|
|
||||||
|
/* ---- NORMAL ODER PREMIUM (06.10.2026) --------------------------
|
||||||
|
|
||||||
|
Filipe: "es gibt bei tiktok nämlich diese zwei optionen von
|
||||||
|
streamer ... auch dass wenn man die einträgt soll man aussuchen
|
||||||
|
können zwischen normalen und premium creator."
|
||||||
|
|
||||||
|
Es sind GENAU ZWEI Werte, kein dritter. Das ist bewusst anders
|
||||||
|
als bei `netzwerk`, wo "noch nicht gefragt" eine eigene, gueltige
|
||||||
|
Antwort ist: Dort wird eine TATSACHE ueber eine fremde Person
|
||||||
|
festgehalten, die man wirklich nicht kennen kann. Hier wird
|
||||||
|
entschieden, unter welcher Art WIR jemanden holen wollen -- und
|
||||||
|
der Normalfall ist "normal". Ein dritter Zustand waere eine
|
||||||
|
Spalte, in der die Haelfte der Karten liegt, und die Trennung,
|
||||||
|
um die es geht, waere wieder keine.
|
||||||
|
|
||||||
|
NULL heisst deshalb "normal" und wird auch so gelesen (siehe
|
||||||
|
`artVon()` in workspace-scouts.js). Die eine Zeile, die es am
|
||||||
|
06.10. schon gab, steht damit links, ohne dass eine Umstellung
|
||||||
|
ihr etwas unterstellt, das niemand eingetragen hat. */
|
||||||
|
["leads", "creator_art", "TEXT"], // normal | premium
|
||||||
|
|
||||||
["personen", "bild", "TEXT"], // Dateiname des Profilbildes
|
["personen", "bild", "TEXT"], // Dateiname des Profilbildes
|
||||||
|
/* Die Art ueberlebt die Uebergabe (06.10.2026). Sie steht an der
|
||||||
|
PERSON und nicht im `profile`-Steckbrief: Unter welcher Art
|
||||||
|
jemand geholt wurde, ist eine Angabe der Agentur -- so wie die
|
||||||
|
Rolle --, keine, die der Creator ueber sich selbst schreibt.
|
||||||
|
Bei allen anderen Rollen bleibt sie leer und bedeutet nichts. */
|
||||||
|
["personen", "creator_art", "TEXT"], // normal | premium, nur bei Creatorn
|
||||||
["personen", "ueber_mich", "TEXT"], // ein Satz zur Person
|
["personen", "ueber_mich", "TEXT"], // ein Satz zur Person
|
||||||
["personen", "tiktok", "TEXT"], // öffentlicher Name, ohne @
|
["personen", "tiktok", "TEXT"], // öffentlicher Name, ohne @
|
||||||
["personen", "instagram", "TEXT"],
|
["personen", "instagram", "TEXT"],
|
||||||
|
|||||||
+14
-14
@@ -7,17 +7,17 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/anleitung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/anleitung.css?v=202610062332" />
|
||||||
<!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die
|
<!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die
|
||||||
Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur
|
Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur
|
||||||
Variablen, und bei Variablen entscheidet allein, wer zuletzt
|
Variablen, und bei Variablen entscheidet allein, wer zuletzt
|
||||||
kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. -->
|
kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. -->
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -289,16 +289,16 @@
|
|||||||
|
|
||||||
Und anleitung.js braucht es doppelt: Symbol, Farbe, Name und
|
Und anleitung.js braucht es doppelt: Symbol, Farbe, Name und
|
||||||
Adresse jeder Karte kommen von dort, nicht vom Server. -->
|
Adresse jeder Karte kommen von dort, nicht vom Server. -->
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine
|
<!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine
|
||||||
Liste. pruef-css-klassen setzt das durch, und zwar auch die
|
Liste. pruef-css-klassen setzt das durch, und zwar auch die
|
||||||
Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen
|
Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen
|
||||||
Bedienelement. -->
|
Bedienelement. -->
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/anleitung.js?v=202610062222" defer></script>
|
<script src="assets/js/anleitung.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
verdeckt. Gefunden hat es pruef-struktur.
|
verdeckt. Gefunden hat es pruef-struktur.
|
||||||
|
|
||||||
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
|
Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. -->
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
|
<!-- Ohne diese drei nimmt ein iPhone einen Bildschirmausschnitt als
|
||||||
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
|
Symbol, Android zeichnet die Leiste weiss, und die Seite oeffnet
|
||||||
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
|
ausserhalb der App -- auf einer Seite, die genau erklaeren soll,
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
schreibt jede Seite app.webmanifest -- auch die hier. -->
|
schreibt jede Seite app.webmanifest -- auch die hier. -->
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<style>
|
<style>
|
||||||
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
|
/* Bewusst in der Seite und nicht in einer eigenen Datei: Diese Seite
|
||||||
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
|
soll auch dann noch etwas anzeigen, wenn genau das schiefgeht,
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/anruf-probe.js?v=202610062222" defer></script>
|
<script src="assets/js/anruf-probe.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -23,25 +23,25 @@
|
|||||||
},
|
},
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/workspace-192.png?v=202610062222",
|
"src": "/assets/img/app-symbole/workspace-192.png?v=202610062332",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "any"
|
"purpose": "any"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/workspace-512.png?v=202610062222",
|
"src": "/assets/img/app-symbole/workspace-512.png?v=202610062332",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "any"
|
"purpose": "any"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202610062222",
|
"src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202610062332",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202610062222",
|
"src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202610062332",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
|
|||||||
@@ -142,6 +142,19 @@
|
|||||||
justify-content: flex-start; margin-top: auto;
|
justify-content: flex-start; margin-top: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NORMAL ODER PREMIUM (06.10.2026).
|
||||||
|
|
||||||
|
Dasselbe Gold wie in der Scout-Pipeline (--k-gold) -- die Marke heisst
|
||||||
|
dort und hier dasselbe und soll deshalb auch gleich aussehen. Zwei
|
||||||
|
Toene fuer eine Aussage waeren zwei Aussagen.
|
||||||
|
|
||||||
|
Nur Premium bekommt eine Marke. "Normal" auf jeder zweiten Kachel
|
||||||
|
waere ein Wort, das nie etwas Neues sagt. */
|
||||||
|
.marke-rolle[data-art="premium"] {
|
||||||
|
background: color-mix(in srgb, var(--k-gold) 16%, transparent);
|
||||||
|
color: var(--k-gold);
|
||||||
|
}
|
||||||
|
|
||||||
/* Gesperrt ist jetzt eine Marke in der Warnfarbe, kein graues Wort in
|
/* Gesperrt ist jetzt eine Marke in der Warnfarbe, kein graues Wort in
|
||||||
einer Reihe grauer Woerter. */
|
einer Reihe grauer Woerter. */
|
||||||
.marke-rolle[data-rolle="gesperrt"] {
|
.marke-rolle[data-rolle="gesperrt"] {
|
||||||
|
|||||||
@@ -322,3 +322,112 @@
|
|||||||
.kk__fakt, .knopf-still--bearbeiten { border: 1px solid CanvasText; }
|
.kk__fakt, .knopf-still--bearbeiten { border: 1px solid CanvasText; }
|
||||||
.marke-punkt[data-warn="ja"] { border: 2px solid CanvasText; }
|
.marke-punkt[data-warn="ja"] { border: 2px solid CanvasText; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* =====================================================================
|
||||||
|
LINKS NORMAL, RECHTS PREMIUM (06.10.2026)
|
||||||
|
|
||||||
|
Filipe: "ich will dass es da in der mitte eine trennung gibt. links
|
||||||
|
sollen normale creator sein und rechts premium creator. es gibt bei
|
||||||
|
tiktok nämlich diese zwei optionen von streamer."
|
||||||
|
|
||||||
|
DIE SCHWELLE WIRD AM STUFENKASTEN GEMESSEN, NICHT AM FENSTER
|
||||||
|
(@container statt @media). Das ist der Unterschied, der am 06.09.2026
|
||||||
|
im Creator Workspace zwei Fehler gekostet hat: Eine Zahl, die das
|
||||||
|
FENSTER misst, weiß nichts von Rändern, Seitenleisten oder davon,
|
||||||
|
dass der Inhalt bei 1240px aufhört. Der Kasten misst sich selbst --
|
||||||
|
er bricht genau dann um, wenn ER zu schmal wird, und bleibt richtig,
|
||||||
|
auch wenn sich an der Seite drumherum etwas ändert.
|
||||||
|
|
||||||
|
DIE 680 STEHT GENAU EINMAL und sie zählt etwas Bestimmtes:
|
||||||
|
zwei Kartenspalten von je 320px (schmaler wird eine Karte mit ihren
|
||||||
|
zwei Knöpfen unbedienbar) plus 40px Trennabstand. Wer die Karte
|
||||||
|
breiter macht, ändert sie hier -- und nirgendwo sonst.
|
||||||
|
|
||||||
|
WARUM DIE KLASSEN „art-spalte" HEISSEN UND NICHT „spalte":
|
||||||
|
`aufgaben.css` besitzt `.spalte`, `.spalte__kopf`, `.spalte__zahl` und
|
||||||
|
`.spalte__leer` -- das Aufgabenbrett. Und `scouting.html` lädt
|
||||||
|
`aufgaben.css` VOR dieser Datei. Der erste Entwurf hieß hier
|
||||||
|
`.spalte__zahl`, und prompt zog `margin-left: auto` aus dem
|
||||||
|
Aufgabenbrett die Zahl ans rechte Ende der Spalte, 560 px von ihrem
|
||||||
|
Wort entfernt. Keine Prüfung wurde dabei rot: Die Klasse war ja da,
|
||||||
|
sie gehörte nur jemand anderem. Gesehen habe ich es erst im
|
||||||
|
Bildschirmfoto -- deshalb misst `pruef-scouting-felder` jetzt den
|
||||||
|
Abstand zwischen Wort und Zahl.
|
||||||
|
===================================================================== */
|
||||||
|
|
||||||
|
.stufe { container-type: inline-size; }
|
||||||
|
|
||||||
|
/* Untereinander ist der Grundzustand, nicht der Notfall: So sieht es
|
||||||
|
auf dem Handy aus, und dort wird diese Seite am häufigsten benutzt. */
|
||||||
|
.stufe__arten { display: grid; gap: 22px; }
|
||||||
|
|
||||||
|
.art-spalte__kopf {
|
||||||
|
display: flex; align-items: center; gap: 8px;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
.art-spalte__titel {
|
||||||
|
margin: 0;
|
||||||
|
/* .76rem = 12,2px. Unter 11,5px gilt Text im Großcheck als zu klein
|
||||||
|
zum Lesen -- und das ist er auch. */
|
||||||
|
font-size: .76rem; font-weight: 700;
|
||||||
|
letter-spacing: .09em; text-transform: uppercase;
|
||||||
|
color: var(--text-still);
|
||||||
|
}
|
||||||
|
.art-spalte__zahl {
|
||||||
|
min-width: 20px; padding: 1px 7px; text-align: center;
|
||||||
|
font-size: .72rem; font-weight: 700; color: var(--text-still);
|
||||||
|
background: rgba(255, 255, 255, .06);
|
||||||
|
border-radius: 999px;
|
||||||
|
}
|
||||||
|
/* Premium trägt das Gold des Hauses (--k-gold). Kein neuer Farbwert:
|
||||||
|
Das Haus hat einen Ton für "das hier ist etwas Besonderes", und zwei
|
||||||
|
verschiedene Goldtöne nebeneinander wären nur zwei. */
|
||||||
|
.art-spalte[data-art="premium"] .art-spalte__titel { color: var(--k-gold); }
|
||||||
|
.art-spalte[data-art="premium"] .art-spalte__zahl {
|
||||||
|
color: var(--k-gold);
|
||||||
|
background: color-mix(in srgb, var(--k-gold) 13%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Eine leere Spalte verschwindet NICHT. Sonst hätte eine Stufe mal eine
|
||||||
|
und mal zwei Spalten, und man wüsste nicht, ob dort niemand steht
|
||||||
|
oder ob die Trennung an dieser Stelle nicht gilt. */
|
||||||
|
.art-spalte__leer {
|
||||||
|
margin: 0; padding: 12px 2px;
|
||||||
|
font-size: .82rem; color: var(--text-still);
|
||||||
|
}
|
||||||
|
|
||||||
|
@container (min-width: 680px) {
|
||||||
|
.stufe__arten {
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 0;
|
||||||
|
}
|
||||||
|
/* DIE TRENNUNG IN DER MITTE. Eine Linie am linken Rand der rechten
|
||||||
|
Spalte -- sie läuft dadurch genau so weit, wie die längere der
|
||||||
|
beiden Spalten reicht, und hört von selbst auf. Ein eigenes Element
|
||||||
|
dafür müsste in der Höhe nachgeführt werden und wäre bei jeder
|
||||||
|
aufgeklappten Karte zu kurz. */
|
||||||
|
.art-spalte[data-art="normal"] { padding-right: 20px; }
|
||||||
|
.art-spalte[data-art="premium"] {
|
||||||
|
padding-left: 20px;
|
||||||
|
/* --rand-hell (0,30) statt --rand (0,16). Im Bildschirmfoto vom
|
||||||
|
06.10.2026 verschwand die dünnere Linie über dem Hintergrundbild
|
||||||
|
fast ganz -- und genau sie war das Gewünschte. 0,30 bleibt eine
|
||||||
|
ruhige Linie und kein Strich. */
|
||||||
|
border-left: 1px solid var(--rand-hell);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---- Die Marke auf der Karte ---------------------------------------
|
||||||
|
Nur Premium bekommt eine. "Normal" auf jeder zweiten Karte wäre ein
|
||||||
|
Wort, das nie etwas Neues sagt -- dieselbe Regel wie bei "Schon im
|
||||||
|
Netzwerk", wo "frei" ebenfalls stumm bleibt. */
|
||||||
|
.marke-punkt[data-art="premium"] {
|
||||||
|
color: var(--k-gold);
|
||||||
|
border-color: color-mix(in srgb, var(--k-gold) 42%, transparent);
|
||||||
|
background: color-mix(in srgb, var(--k-gold) 12%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (forced-colors: active) {
|
||||||
|
.art-spalte[data-art="premium"] { border-left: 1px solid CanvasText; }
|
||||||
|
.marke-punkt[data-art="premium"] { border: 2px solid CanvasText; }
|
||||||
|
}
|
||||||
|
|||||||
@@ -426,6 +426,12 @@ Der Code gilt einmal fuer die `
|
|||||||
/* ---------- Liste ----------------------------------------------------- */
|
/* ---------- Liste ----------------------------------------------------- */
|
||||||
|
|
||||||
let betreuerListe = [];
|
let betreuerListe = [];
|
||||||
|
/* Normal und Premium kommen vom Server (siehe die Personenliste).
|
||||||
|
Die Vorgabe hier ist die Rueckfallebene fuer den Fall, dass ein
|
||||||
|
alter Serverstand die Liste noch nicht mitschickt -- dann fehlt
|
||||||
|
die Auswahl nicht, sie ist nur nicht nachgefuehrt. */
|
||||||
|
let artenListe = ['normal', 'premium'];
|
||||||
|
let artName = { normal: 'Normal', premium: 'Premium' };
|
||||||
|
|
||||||
/** Ein oder zwei Buchstaben aus einem Namen.
|
/** Ein oder zwei Buchstaben aus einem Namen.
|
||||||
*
|
*
|
||||||
@@ -562,6 +568,22 @@ Der Code gilt einmal fuer die `
|
|||||||
anderen grauen Woertern -- auf einer Kachel, die ohnehin blasser
|
anderen grauen Woertern -- auf einer Kachel, die ohnehin blasser
|
||||||
ist, hat es niemand gesehen. Jetzt ist es eine Marke in der
|
ist, hat es niemand gesehen. Jetzt ist es eine Marke in der
|
||||||
Warnfarbe. */
|
Warnfarbe. */
|
||||||
|
/* PREMIUM STEHT NEBEN DER ROLLE (06.10.2026).
|
||||||
|
|
||||||
|
"Creator" allein sagt nicht mehr alles, seit es die beiden Arten
|
||||||
|
gibt, die TikTok kennt. Die Marke steht deshalb direkt neben der
|
||||||
|
Rolle und nicht im Zahlenband -- sie beschreibt, WER jemand ist,
|
||||||
|
nicht wie viel er tut.
|
||||||
|
|
||||||
|
Nur Premium bekommt eine Marke, genau wie in der Pipeline:
|
||||||
|
"Normal" auf jeder zweiten Kachel wiederholte nur, was ohnehin
|
||||||
|
der Normalfall ist. */
|
||||||
|
if (p.rolle === 'creator' && p.creator_art === 'premium') {
|
||||||
|
const a = el('span', 'marke-rolle', 'Premium');
|
||||||
|
a.dataset.art = 'premium';
|
||||||
|
a.title = 'Premium-Creator – die zweite der beiden Arten, die TikTok kennt.';
|
||||||
|
marken.append(a);
|
||||||
|
}
|
||||||
if (!p.aktiv) {
|
if (!p.aktiv) {
|
||||||
const g = el('span', 'marke-rolle', 'gesperrt');
|
const g = el('span', 'marke-rolle', 'gesperrt');
|
||||||
g.dataset.rolle = 'gesperrt';
|
g.dataset.rolle = 'gesperrt';
|
||||||
@@ -637,6 +659,44 @@ Der Code gilt einmal fuer die `
|
|||||||
links.append(el('div', 'person__bezug', `gehört zu ${p.manager_name}`));
|
links.append(el('div', 'person__bezug', `gehört zu ${p.manager_name}`));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NORMAL ODER PREMIUM — änderbar (06.10.2026).
|
||||||
|
|
||||||
|
Beim Creator-Onboarding kommt die Art aus der Scout-Pipeline mit.
|
||||||
|
Danach hängt sie an der Person, und hier wird sie geändert: Ein
|
||||||
|
Vertrag kann wechseln, und ein Lead, aus dem die Angabe einmal
|
||||||
|
stammte, kann längst gelöscht sein.
|
||||||
|
|
||||||
|
Dieselbe Bauart wie „Betreut von" direkt darunter — ein Auswahlfeld,
|
||||||
|
das beim Umstellen sofort speichert. Kein eigener Speichern-Knopf:
|
||||||
|
Bei einer Auswahl mit zwei Werten wäre er ein zweiter Klick, den
|
||||||
|
man vergisst, und dann steht etwas anderes da, als man sieht. */
|
||||||
|
if (p.rolle === 'creator') {
|
||||||
|
const a = el('div', 'betreuung');
|
||||||
|
const as = el('label', 'betreuung__schild', 'Art');
|
||||||
|
as.htmlFor = 'creator-art-' + p.id;
|
||||||
|
const aw = el('select', 'betreuung__wahl');
|
||||||
|
aw.id = 'creator-art-' + p.id;
|
||||||
|
for (const w of artenListe) aw.append(new Option(artName[w] || w, w));
|
||||||
|
aw.value = p.creator_art === 'premium' ? 'premium' : 'normal';
|
||||||
|
aw.addEventListener('change', async () => {
|
||||||
|
aw.disabled = true; melde('');
|
||||||
|
try {
|
||||||
|
const antwort = await hole(`/workspace/api/verwaltung/personen/${p.id}/creator-art`, {
|
||||||
|
method: 'PUT',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({ creator_art: aw.value }),
|
||||||
|
});
|
||||||
|
if (!antwort.ok) {
|
||||||
|
melde(sagWas((await antwort.json().catch(() => ({}))).fehler, 'Ging nicht.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await laden();
|
||||||
|
} catch { /* umgeleitet */ } finally { aw.disabled = false; }
|
||||||
|
});
|
||||||
|
a.append(as, aw);
|
||||||
|
links.append(a);
|
||||||
|
}
|
||||||
|
|
||||||
/* Zuständigkeit. Steht nur bei Creator und nur dann, wenn es
|
/* Zuständigkeit. Steht nur bei Creator und nur dann, wenn es
|
||||||
überhaupt einen Scout gibt, dem man sie geben könnte. */
|
überhaupt einen Scout gibt, dem man sie geben könnte. */
|
||||||
if (p.rolle === 'creator' && betreuerListe.length) {
|
if (p.rolle === 'creator' && betreuerListe.length) {
|
||||||
@@ -1257,8 +1317,13 @@ Der Code gilt einmal fuer die `
|
|||||||
try {
|
try {
|
||||||
const a = await hole('/workspace/api/verwaltung/personen');
|
const a = await hole('/workspace/api/verwaltung/personen');
|
||||||
if (!a.ok) { melde('Personen konnten nicht geladen werden.'); return; }
|
if (!a.ok) { melde('Personen konnten nicht geladen werden.'); return; }
|
||||||
const { personen, betreuer, zusatzrollen } = await a.json();
|
const { personen, betreuer, zusatzrollen, arten, art_name } = await a.json();
|
||||||
betreuerListe = betreuer || [];
|
betreuerListe = betreuer || [];
|
||||||
|
/* Nur uebernehmen, wenn wirklich etwas kommt: `|| []` haette hier
|
||||||
|
eine leere Auswahl ergeben -- ein Feld ohne einen einzigen
|
||||||
|
Eintrag sieht aus wie ein Fehler und ist einer. */
|
||||||
|
if (Array.isArray(arten) && arten.length) artenListe = arten;
|
||||||
|
if (art_name) artName = art_name;
|
||||||
zusatzAbschnitte = Array.isArray(zusatzrollen) ? zusatzrollen : [];
|
zusatzAbschnitte = Array.isArray(zusatzrollen) ? zusatzrollen : [];
|
||||||
rollenwahlErgaenzen(zusatzrollen);
|
rollenwahlErgaenzen(zusatzrollen);
|
||||||
alle = personen;
|
alle = personen;
|
||||||
|
|||||||
@@ -48,6 +48,15 @@
|
|||||||
Oberflaeche fuehrt keine eigenen. Leere Vorgabe, damit ein
|
Oberflaeche fuehrt keine eigenen. Leere Vorgabe, damit ein
|
||||||
Ausfall der Abfrage kein kaputtes Formular ergibt. */
|
Ausfall der Abfrage kein kaputtes Formular ergibt. */
|
||||||
let laenderListe = [], landName = {}, netzwerkListe = [], netzwerkName = {};
|
let laenderListe = [], landName = {}, netzwerkListe = [], netzwerkName = {};
|
||||||
|
/* Normal und Premium -- die beiden Arten, die TikTok kennt.
|
||||||
|
|
||||||
|
DIE RUECKFALLLISTE IST KEIN SCHMUCK: Sie steht hier, damit die
|
||||||
|
Trennung auch dann zwei Spalten hat, wenn ein alter Server die
|
||||||
|
Listen noch nicht mitschickt. Ohne sie waere die Seite in genau dem
|
||||||
|
Moment leer, in dem jemand sie zum ersten Mal nach einem Deploy
|
||||||
|
aufmacht -- der Server neu, die Datei aus dem Zwischenspeicher alt,
|
||||||
|
oder umgekehrt. */
|
||||||
|
let artenListe = ['normal', 'premium'], artName = { normal: 'Normal', premium: 'Premium' };
|
||||||
let heute = '';
|
let heute = '';
|
||||||
let daten = [];
|
let daten = [];
|
||||||
let offen = new Set();
|
let offen = new Set();
|
||||||
@@ -111,7 +120,13 @@
|
|||||||
/* Kopf */
|
/* Kopf */
|
||||||
const kopf = el('div', 'kk__kopf');
|
const kopf = el('div', 'kk__kopf');
|
||||||
const links = el('div');
|
const links = el('div');
|
||||||
links.append(el('h3', 'kk__name', l.name));
|
/* h4, NICHT h3 (06.10.2026). Ueber der Karte stehen jetzt drei
|
||||||
|
Ebenen: "Pipeline" (h1), die Stufe (h2) und die Spalte Normal /
|
||||||
|
Premium (h3). Bliebe der Name ein h3, saesse er auf derselben
|
||||||
|
Ebene wie die Spalte, in der er liegt -- wer sich per
|
||||||
|
Ueberschriften durch die Seite bewegt, bekaeme die Trennung nicht
|
||||||
|
mehr zu hoeren. */
|
||||||
|
links.append(el('h4', 'kk__name', l.name));
|
||||||
const unter = [l.plattform, l.handle].filter(Boolean).join(' · ');
|
const unter = [l.plattform, l.handle].filter(Boolean).join(' · ');
|
||||||
if (unter) links.append(el('p', 'kk__unter', unter));
|
if (unter) links.append(el('p', 'kk__unter', unter));
|
||||||
kopf.append(links);
|
kopf.append(links);
|
||||||
@@ -134,6 +149,23 @@
|
|||||||
n.title = 'Noch nicht geklärt, ob die Person schon bei einer Agentur ist.';
|
n.title = 'Noch nicht geklärt, ob die Person schon bei einer Agentur ist.';
|
||||||
marken.append(n);
|
marken.append(n);
|
||||||
}
|
}
|
||||||
|
/* PREMIUM TRAEGT EIN ZEICHEN, NORMAL NICHT (06.10.2026).
|
||||||
|
|
||||||
|
Dieselbe Regel wie bei "Schon im Netzwerk": Nur der Fall, der vom
|
||||||
|
Normalfall abweicht, bekommt eine Marke. Eine Marke "Normal" auf
|
||||||
|
jeder zweiten Karte waere ein Wort, das nie etwas Neues sagt.
|
||||||
|
|
||||||
|
WARUM UEBERHAUPT, WO DOCH DIE SPALTE ES SCHON SAGT: Die beiden
|
||||||
|
Spalten werden verschieden lang. Steht links eine lange Liste und
|
||||||
|
rechts eine kurze, ist eine Karte weit unten vom Kopf ihrer Spalte
|
||||||
|
durch einen halben Bildschirm getrennt -- und auf dem Handy liegen
|
||||||
|
die Spalten ohnehin untereinander. */
|
||||||
|
if (l.creator_art === 'premium') {
|
||||||
|
const a = el('span', 'marke-punkt', artName.premium || 'Premium');
|
||||||
|
a.dataset.art = 'premium';
|
||||||
|
a.title = 'Premium-Creator – die zweite der beiden Arten, die TikTok kennt.';
|
||||||
|
marken.append(a);
|
||||||
|
}
|
||||||
const prio = el('span', 'marke-punkt', l.prioritaet === 'hoch' ? 'Hoch'
|
const prio = el('span', 'marke-punkt', l.prioritaet === 'hoch' ? 'Hoch'
|
||||||
: l.prioritaet === 'niedrig' ? 'Niedrig' : 'Mittel');
|
: l.prioritaet === 'niedrig' ? 'Niedrig' : 'Mittel');
|
||||||
prio.dataset.prio = l.prioritaet;
|
prio.dataset.prio = l.prioritaet;
|
||||||
@@ -240,6 +272,16 @@
|
|||||||
const o = document.createElement('option'); o.value = w; o.textContent = t; f.append(o);
|
const o = document.createElement('option'); o.value = w; o.textContent = t; f.append(o);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
/* Die Art laesst sich auch nachtraeglich aendern -- ein Lead rutscht
|
||||||
|
dabei in die andere Spalte. Genau das war der Mangel vom
|
||||||
|
11.09.2026 ("man kan da nichts machen"): ein Feld, das man beim
|
||||||
|
Anlegen setzt und danach nie wieder. */
|
||||||
|
const fArt = mach('Art', 'select', l.creator_art || 'normal', (f) => {
|
||||||
|
for (const w of artenListe) {
|
||||||
|
const o = document.createElement('option');
|
||||||
|
o.value = w; o.textContent = artName[w] || w; f.append(o);
|
||||||
|
}
|
||||||
|
});
|
||||||
const fStufe = mach('Stufe', 'select', l.status, (f) => {
|
const fStufe = mach('Stufe', 'select', l.status, (f) => {
|
||||||
for (const [w, t] of Object.entries(stufen)) {
|
for (const [w, t] of Object.entries(stufen)) {
|
||||||
const o = document.createElement('option'); o.value = w; o.textContent = t; f.append(o);
|
const o = document.createElement('option'); o.value = w; o.textContent = t; f.append(o);
|
||||||
@@ -310,6 +352,7 @@
|
|||||||
const r = await schicke('/workspace/api/leads/' + l.id, 'PATCH', {
|
const r = await schicke('/workspace/api/leads/' + l.id, 'PATCH', {
|
||||||
notizen: notiz.value, letzte_nachricht: fNachricht.value,
|
notizen: notiz.value, letzte_nachricht: fNachricht.value,
|
||||||
naechster_followup: fFollowup.value, prioritaet: fPrio.value, status: fStufe.value,
|
naechster_followup: fFollowup.value, prioritaet: fPrio.value, status: fStufe.value,
|
||||||
|
creator_art: fArt.value,
|
||||||
netzwerk: fNetz.value, land: fLand.value, follower: fFollower.value,
|
netzwerk: fNetz.value, land: fLand.value, follower: fFollower.value,
|
||||||
woher: fWoher.value, kontaktweg: fWeg.value, live_zeiten: fZeiten.value,
|
woher: fWoher.value, kontaktweg: fWeg.value, live_zeiten: fZeiten.value,
|
||||||
aktivitaet: fAktiv.value, potenzial: fPot.value,
|
aktivitaet: fAktiv.value, potenzial: fPot.value,
|
||||||
@@ -475,13 +518,58 @@
|
|||||||
if (STUFE_WAS[wert]) kt.append(el('p', 'stufe__was', STUFE_WAS[wert]));
|
if (STUFE_WAS[wert]) kt.append(el('p', 'stufe__was', STUFE_WAS[wert]));
|
||||||
kopf.append(kt, el('span', 'stufe__zahl', String(drin.length)));
|
kopf.append(kt, el('span', 'stufe__zahl', String(drin.length)));
|
||||||
gruppe.append(kopf);
|
gruppe.append(kopf);
|
||||||
|
|
||||||
|
/* ====== LINKS NORMAL, RECHTS PREMIUM (06.10.2026) ==============
|
||||||
|
|
||||||
|
Filipe: "ich will dass es da in der mitte eine trennung gibt.
|
||||||
|
links sollen normale creator sein und rechts premium creator.
|
||||||
|
es gibt bei tiktok nämlich diese zwei optionen von streamer."
|
||||||
|
|
||||||
|
DIE TRENNUNG SITZT IN JEDER STUFE, nicht einmal ueber der
|
||||||
|
ganzen Seite. Zwei komplette Pipelines nebeneinander haetten
|
||||||
|
jede Stufenueberschrift zweimal gebraucht, und die beiden
|
||||||
|
Seiten waeren nie auf gleicher Hoehe gewesen -- "Angesprochen"
|
||||||
|
links auf Hoehe von "Interessiert" rechts. So bleibt die Stufe
|
||||||
|
die Ueberschrift und die Art die Spalte darunter.
|
||||||
|
|
||||||
|
DIE REIHENFOLGE KOMMT VOM SERVER (artenListe) und ist dort
|
||||||
|
"normal, premium" -- links, rechts. Sie steht nicht zweimal da;
|
||||||
|
waere sie hier noch einmal hingeschrieben, koennte eine der
|
||||||
|
beiden Stellen gedreht werden und die Spalten wuerden
|
||||||
|
vertauscht, ohne dass irgendetwas kaputtginge.
|
||||||
|
|
||||||
|
EINE LEERE SPALTE BLEIBT STEHEN und sagt "noch niemand". Wer
|
||||||
|
sie wegliesse, haette eine Stufe, die ploetzlich eine Spalte
|
||||||
|
hat statt zwei -- und man wuesste nicht, ob da niemand ist oder
|
||||||
|
ob die Trennung an dieser Stelle nicht gilt. Die Zahl im Kopf
|
||||||
|
beantwortet es ohne Nachzaehlen. */
|
||||||
|
const spalten = el('div', 'stufe__arten');
|
||||||
|
for (const art of artenListe) {
|
||||||
|
const inDieser = drin.filter((l) => (l.creator_art || 'normal') === art);
|
||||||
|
const sp = el('section', 'art-spalte');
|
||||||
|
sp.dataset.art = art;
|
||||||
|
|
||||||
|
const spKopf = el('div', 'art-spalte__kopf');
|
||||||
|
const spTitel = el('h3', 'art-spalte__titel', artName[art] || art);
|
||||||
|
/* Die Ueberschrift benennt den Bereich fuer die Sprachausgabe --
|
||||||
|
sonst liest sie zwei Kartenstapel vor, ohne zu sagen, welcher
|
||||||
|
welcher ist. */
|
||||||
|
spTitel.id = `art-spalte-${wert}-${art}`;
|
||||||
|
sp.setAttribute('aria-labelledby', spTitel.id);
|
||||||
|
spKopf.append(spTitel, el('span', 'art-spalte__zahl', String(inDieser.length)));
|
||||||
|
sp.append(spKopf);
|
||||||
|
|
||||||
const box = el('div', 'stufe__karten');
|
const box = el('div', 'stufe__karten');
|
||||||
for (const l of drin) {
|
if (!inDieser.length) box.append(el('p', 'art-spalte__leer', 'noch niemand'));
|
||||||
|
for (const l of inDieser) {
|
||||||
const k = karte(l);
|
const k = karte(l);
|
||||||
k.id = 'lead-' + l.id;
|
k.id = 'lead-' + l.id;
|
||||||
box.append(k);
|
box.append(k);
|
||||||
}
|
}
|
||||||
gruppe.append(box);
|
sp.append(box);
|
||||||
|
spalten.append(sp);
|
||||||
|
}
|
||||||
|
gruppe.append(spalten);
|
||||||
ziel.append(gruppe);
|
ziel.append(gruppe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -494,12 +582,38 @@
|
|||||||
stufen = d.stufen; heute = d.heute; daten = d.leads;
|
stufen = d.stufen; heute = d.heute; daten = d.leads;
|
||||||
laenderListe = d.laender || []; landName = d.land_name || {};
|
laenderListe = d.laender || []; landName = d.land_name || {};
|
||||||
netzwerkListe = d.netzwerk || []; netzwerkName = d.netzwerk_name || {};
|
netzwerkListe = d.netzwerk || []; netzwerkName = d.netzwerk_name || {};
|
||||||
|
/* Nur uebernehmen, wenn wirklich etwas kommt -- sonst stuende hier
|
||||||
|
eine leere Liste und die Seite haette null Spalten statt zwei.
|
||||||
|
`|| []` waere an dieser Stelle genau der stille Ausfall, den die
|
||||||
|
Rueckfallliste oben verhindern soll. */
|
||||||
|
if (Array.isArray(d.arten) && d.arten.length) artenListe = d.arten;
|
||||||
|
if (d.art_name) artName = d.art_name;
|
||||||
|
artwahlFuellen();
|
||||||
zeichne();
|
zeichne();
|
||||||
} catch { /* umgeleitet */ }
|
} catch { /* umgeleitet */ }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------- Neuer Kontakt ------------------------------------------------ */
|
/* ---------- Neuer Kontakt ------------------------------------------------ */
|
||||||
|
|
||||||
|
/* Die Auswahl im Anlege-Formular wird aus derselben Liste gefuellt wie
|
||||||
|
die Spalten. In scouting.html stehen Normal und Premium zwar schon
|
||||||
|
fest drin -- das ist die Vorgabe, damit das Feld auch vor der ersten
|
||||||
|
Antwort bedienbar ist. Sobald der Server geantwortet hat, gilt
|
||||||
|
seine Liste, und zwar auch dann, wenn dort eines Tages etwas anderes
|
||||||
|
steht. Die bereits getroffene Wahl bleibt erhalten. */
|
||||||
|
function artwahlFuellen() {
|
||||||
|
const f = $('n-art');
|
||||||
|
if (!f) return;
|
||||||
|
const vorher = f.value;
|
||||||
|
f.textContent = '';
|
||||||
|
for (const w of artenListe) {
|
||||||
|
const o = document.createElement('option');
|
||||||
|
o.value = w; o.textContent = artName[w] || w;
|
||||||
|
f.append(o);
|
||||||
|
}
|
||||||
|
f.value = artenListe.includes(vorher) ? vorher : (artenListe[0] || '');
|
||||||
|
}
|
||||||
|
|
||||||
$('neu-auf').addEventListener('click', () => {
|
$('neu-auf').addEventListener('click', () => {
|
||||||
$('neu-block').hidden = false;
|
$('neu-block').hidden = false;
|
||||||
$('neu-auf').hidden = true;
|
$('neu-auf').hidden = true;
|
||||||
@@ -523,6 +637,7 @@
|
|||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
name: $('n-name').value, plattform: $('n-plattform').value,
|
name: $('n-name').value, plattform: $('n-plattform').value,
|
||||||
handle: $('n-handle').value, prioritaet: $('n-prio').value,
|
handle: $('n-handle').value, prioritaet: $('n-prio').value,
|
||||||
|
creator_art: $('n-art').value,
|
||||||
aktivitaet: $('n-aktivitaet').value, potenzial: $('n-potenzial').value,
|
aktivitaet: $('n-aktivitaet').value, potenzial: $('n-potenzial').value,
|
||||||
naechster_followup: $('n-followup').value,
|
naechster_followup: $('n-followup').value,
|
||||||
scout_id: $('n-scout').value || null,
|
scout_id: $('n-scout').value || null,
|
||||||
|
|||||||
+19
-19
@@ -12,19 +12,19 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -430,22 +430,22 @@
|
|||||||
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
||||||
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
||||||
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
||||||
<script src="assets/js/textform.js?v=202610062222"></script>
|
<script src="assets/js/textform.js?v=202610062332"></script>
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/zuteilung.js?v=202610062222" defer></script>
|
<script src="assets/js/zuteilung.js?v=202610062332" defer></script>
|
||||||
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
|
<!-- Der Vorlagenkatalog stand bis zum 23.09.2026 mitten in
|
||||||
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
|
aufgaben.js. Er bedient jetzt zwei Seiten und hat deshalb eine
|
||||||
eigene Datei; hier zeigt er den Creator-Katalog.
|
eigene Datei; hier zeigt er den Creator-Katalog.
|
||||||
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
|
Vor aufgaben.js, weil die Seite ihn beim Start einrichtet. -->
|
||||||
<script src="assets/js/vorlagenbrett.js?v=202610062222" defer></script>
|
<script src="assets/js/vorlagenbrett.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/aufgaben.js?v=202610062222" defer></script>
|
<script src="assets/js/aufgaben.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/automation.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/automation.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -168,15 +168,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/automation.js?v=202610062222" defer></script>
|
<script src="assets/js/automation.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -7,14 +7,14 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -197,16 +197,16 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/befinden.js?v=202610062222" defer></script>
|
<script src="assets/js/befinden.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+22
-22
@@ -12,24 +12,24 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bereich.css?v=202610062332" />
|
||||||
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
|
<!-- Wegen des Blocks „Willst du dazugehoeren?" auf dem Brett
|
||||||
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
|
„Mitmachen". Eine eigene Kopie der Regel hier waere die zweite
|
||||||
Stelle, an der dieselbe Sache anders aussieht. -->
|
Stelle, an der dieselbe Sache anders aussieht. -->
|
||||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -318,19 +318,19 @@
|
|||||||
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
<!-- TEXTFORM ZUERST (21.09.2026): Die Seite fragt beim Zeichnen nach
|
||||||
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
`window.Textform`. Kaeme sie spaeter, waere der erste Eintrag ohne
|
||||||
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
Gestaltung. Kein `defer`, damit sie wirklich vorher dasteht. -->
|
||||||
<script src="assets/js/textform.js?v=202610062222"></script>
|
<script src="assets/js/textform.js?v=202610062332"></script>
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/checkliste.js?v=202610062222" defer></script>
|
<script src="assets/js/checkliste.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/ampel.js?v=202610062222" defer></script>
|
<script src="assets/js/ampel.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/schulung.js?v=202610062222" defer></script>
|
<script src="assets/js/schulung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereich.js?v=202610062222" defer></script>
|
<script src="assets/js/bereich.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+19
-19
@@ -7,17 +7,17 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bereich.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/treff.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/treff.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -108,15 +108,15 @@
|
|||||||
</main>
|
</main>
|
||||||
|
|
||||||
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
|
<!-- Der Fuß gehört zu jeder Seite - siehe pruef-css-klassen. -->
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/auskunft.js?v=202610062222" defer></script>
|
<script src="assets/js/auskunft.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bewerben.js?v=202610062222" defer></script>
|
<script src="assets/js/bewerben.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+18
-18
@@ -7,16 +7,16 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
<!-- haus.css MUSS die letzte Stilvorlage sein - siehe treff-regeln.html. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -80,16 +80,16 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/auskunft.js?v=202610062222" defer></script>
|
<script src="assets/js/auskunft.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bewerbungen.js?v=202610062222" defer></script>
|
<script src="assets/js/bewerbungen.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -59,11 +59,11 @@
|
|||||||
<!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite:
|
<!-- DIE WERBEEINBLENDUNG. Dieselbe Datei wie in der Reaction-Seite:
|
||||||
Zwei Fassungen altern unterschiedlich, und dann sieht der Stream
|
Zwei Fassungen altern unterschiedlich, und dann sieht der Stream
|
||||||
anders aus als das, worueber geredet wird. -->
|
anders aus als das, worueber geredet wird. -->
|
||||||
<link rel="stylesheet" href="assets/css/werbung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/werbung.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
<body class="obs-buehne">
|
<body class="obs-buehne">
|
||||||
<div id="platz"></div>
|
<div id="platz"></div>
|
||||||
<script src="assets/js/werbung.js?v=202610062222" defer></script>
|
<script src="assets/js/werbung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/buehne.js?v=202610062222" defer></script>
|
<script src="assets/js/buehne.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/calls.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/calls.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -89,15 +89,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/ki.js?v=202610062222" defer></script>
|
<script src="assets/js/ki.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/calls.js?v=202610062222" defer></script>
|
<script src="assets/js/calls.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+20
-20
@@ -12,26 +12,26 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
|
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
|
||||||
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
|
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
|
||||||
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
|
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
|
||||||
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
|
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
|
||||||
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
|
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
|
||||||
Dialog zu sehen bekam. -->
|
Dialog zu sehen bekam. -->
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/chat.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/chat.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -739,24 +739,24 @@
|
|||||||
</form>
|
</form>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script src="assets/js/bereiche.js?v=202610062222"></script>
|
<script src="assets/js/bereiche.js?v=202610062332"></script>
|
||||||
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
|
<!-- TEXTFORM VOR ALLEM ANDEREN (21.09.2026): chat.js und bereich.js
|
||||||
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
|
fragen beim Zeichnen nach `window.Textform`. Kaeme sie spaeter,
|
||||||
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
|
waere die erste gezeichnete Nachricht ohne Gestaltung -- und das
|
||||||
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
|
faellt nur dem auf, der genau hinsieht. KEIN `defer`, damit sie
|
||||||
wirklich vor den anderen dasteht. -->
|
wirklich vor den anderen dasteht. -->
|
||||||
<script src="assets/js/textform.js?v=202610062222"></script>
|
<script src="assets/js/textform.js?v=202610062332"></script>
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222"></script>
|
<script src="assets/js/kopf.js?v=202610062332"></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222"></script>
|
<script src="assets/js/glocke.js?v=202610062332"></script>
|
||||||
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
|
<!-- ANRUF VOR CHAT (18.09.2026): anruf.js stellt `window.anrufStarten`
|
||||||
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
|
bereit, und chat.js baut die Knoepfe nur, wenn es das gibt.
|
||||||
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
|
Andersherum waere die Reihenfolge eine stille Abhaengigkeit --
|
||||||
die Knoepfe fehlten, und niemand wuesste warum. -->
|
die Knoepfe fehlten, und niemand wuesste warum. -->
|
||||||
<script src="assets/js/anruf.js?v=202610062222"></script>
|
<script src="assets/js/anruf.js?v=202610062332"></script>
|
||||||
<!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom
|
<!-- DIE BILDSCHAU (25.09.2026). Eigene Datei, weil sie nichts vom
|
||||||
Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein
|
Chat weiss: Sie bekommt einen Weg und einen Namen und zeigt ein
|
||||||
Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne
|
Bild. Jede andere Seite mit Fotos kann sie ebenso benutzen, ohne
|
||||||
@@ -767,8 +767,8 @@
|
|||||||
sie beim ersten Foto noch nicht da -- und der erste Klick ginge
|
sie beim ersten Foto noch nicht da -- und der erste Klick ginge
|
||||||
wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal
|
wie frueher in den Tab. Ein Fehler, der nur beim ERSTEN Mal
|
||||||
auftritt, ist der, den man nie nachstellen kann. -->
|
auftritt, ist der, den man nie nachstellen kann. -->
|
||||||
<script src="assets/js/bildschau.js?v=202610062222"></script>
|
<script src="assets/js/bildschau.js?v=202610062332"></script>
|
||||||
<script src="assets/js/chat.js?v=202610062222"></script>
|
<script src="assets/js/chat.js?v=202610062332"></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/content.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/content.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -179,15 +179,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/checkliste.js?v=202610062222" defer></script>
|
<script src="assets/js/checkliste.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/content.js?v=202610062222" defer></script>
|
<script src="assets/js/content.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -36,15 +36,15 @@
|
|||||||
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
|
<link rel="preload" as="image" href="assets/img/buehne/crew-gate-hoch-580.webp"
|
||||||
type="image/webp" media="(max-width: 899px)" />
|
type="image/webp" media="(max-width: 899px)" />
|
||||||
|
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/crew-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/crew-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
|
<!-- Diese Wand steht NUR auf der Adresse von Team Dogi (ueberall sonst
|
||||||
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
|
404, siehe crewWeiche). Sie darf das Haus deshalb direkt nennen
|
||||||
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
|
statt ueber den Platzhalter haus.css zu gehen -- und sie MUSS es:
|
||||||
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
|
Eine Zugangswand, die sich erst nach dem Umbiegen faerbt, waere
|
||||||
die eine Seite, auf der man das Umfaerben sieht. -->
|
die eine Seite, auf der man das Umfaerben sieht. -->
|
||||||
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/crew-haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="gate gate--crew">
|
<body class="gate gate--crew">
|
||||||
@@ -459,7 +459,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/gate.js?v=202610062222" defer></script>
|
<script src="assets/js/gate.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -23,25 +23,25 @@
|
|||||||
},
|
},
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/crew-192.png?v=202610062222",
|
"src": "/assets/img/app-symbole/crew-192.png?v=202610062332",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "any"
|
"purpose": "any"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/crew-512.png?v=202610062222",
|
"src": "/assets/img/app-symbole/crew-512.png?v=202610062332",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "any"
|
"purpose": "any"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202610062222",
|
"src": "/assets/img/app-symbole/crew-192-maskable.png?v=202610062332",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202610062222",
|
"src": "/assets/img/app-symbole/crew-512-maskable.png?v=202610062332",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
|
|||||||
+17
-17
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/dateien.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -108,15 +108,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/dateien.js?v=202610062222" defer></script>
|
<script src="assets/js/dateien.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+18
-18
@@ -7,14 +7,14 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -306,20 +306,20 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
|
<!-- VOR entwicklung.js: Die Seite richtet den Katalog beim Start ein,
|
||||||
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
|
also muss es ihn zu dem Zeitpunkt geben. Mit "defer" laufen beide
|
||||||
in Dokumentreihenfolge. -->
|
in Dokumentreihenfolge. -->
|
||||||
<script src="assets/js/vorlagenbrett.js?v=202610062222" defer></script>
|
<script src="assets/js/vorlagenbrett.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/entwicklung.js?v=202610062222" defer></script>
|
<script src="assets/js/entwicklung.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+15
-15
@@ -7,13 +7,13 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/hilfe.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/hilfe.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -146,14 +146,14 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hilfe.js?v=202610062222" defer></script>
|
<script src="assets/js/hilfe.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -30,9 +30,9 @@
|
|||||||
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
|
<link rel="preload" as="image" href="assets/img/buehne/gate-hoch-580.webp"
|
||||||
type="image/webp" media="(max-width: 899px)" />
|
type="image/webp" media="(max-width: 899px)" />
|
||||||
|
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="gate">
|
<body class="gate">
|
||||||
@@ -427,7 +427,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/gate.js?v=202610062222" defer></script>
|
<script src="assets/js/gate.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/kalender.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -383,15 +383,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kalender.js?v=202610062222" defer></script>
|
<script src="assets/js/kalender.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kalender-abo.js?v=202610062222" defer></script>
|
<script src="assets/js/kalender-abo.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/leistung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -444,13 +444,13 @@
|
|||||||
</form>
|
</form>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222"></script>
|
<script src="assets/js/meldung.js?v=202610062332"></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222"></script>
|
<script src="assets/js/nachfrage.js?v=202610062332"></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222"></script>
|
<script src="assets/js/wahl.js?v=202610062332"></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222"></script>
|
<script src="assets/js/bereiche.js?v=202610062332"></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222"></script>
|
<script src="assets/js/kopf.js?v=202610062332"></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222"></script>
|
<script src="assets/js/glocke.js?v=202610062332"></script>
|
||||||
<script src="assets/js/leistung.js?v=202610062222"></script>
|
<script src="assets/js/leistung.js?v=202610062332"></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,17 +7,17 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/manager-ziele.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/manager-ziele.css?v=202610062332" />
|
||||||
<!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die
|
<!-- module.css an VORLETZTER, haus.css an LETZTER Stelle. Die
|
||||||
Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur
|
Reihenfolge ist keine Geschmacksfrage: haus.css setzt nur
|
||||||
Variablen, und bei Variablen entscheidet allein, wer zuletzt
|
Variablen, und bei Variablen entscheidet allein, wer zuletzt
|
||||||
kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. -->
|
kommt. pruef-css-klassen.mjs misst genau dieses Paar nach. -->
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -218,16 +218,16 @@
|
|||||||
kopf.js liest daraus die Leitungsrollen. Ohne sie stürzt jede
|
kopf.js liest daraus die Leitungsrollen. Ohne sie stürzt jede
|
||||||
Seite ab, und zwar nur in der Browserkonsole -- die Kopfleiste
|
Seite ab, und zwar nur in der Browserkonsole -- die Kopfleiste
|
||||||
kommt trotzdem. -->
|
kommt trotzdem. -->
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine
|
<!-- wahl.js gehört zu kopf.js: Der Sicht-Umschalter baut daraus seine
|
||||||
Liste. pruef-css-klassen setzt das durch, und zwar auch die
|
Liste. pruef-css-klassen setzt das durch, und zwar auch die
|
||||||
Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen
|
Reihenfolge -- kopf.js fragt beim Aufbau nach dem fertigen
|
||||||
Bedienelement. -->
|
Bedienelement. -->
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/manager-ziele.js?v=202610062222" defer></script>
|
<script src="assets/js/manager-ziele.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -12,13 +12,13 @@
|
|||||||
vergessen wird. -->
|
vergessen wird. -->
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/material.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/material.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
<body class="start" data-ton="42" data-buehne="studio">
|
<body class="start" data-ton="42" data-buehne="studio">
|
||||||
|
|
||||||
@@ -138,14 +138,14 @@
|
|||||||
<p class="m-laedt" id="laedt">Einen Moment …</p>
|
<p class="m-laedt" id="laedt">Einen Moment …</p>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/material.js?v=202610062222" defer></script>
|
<script src="assets/js/material.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+14
-14
@@ -7,13 +7,13 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/notizen.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/notizen.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start" data-ton="46">
|
<body class="start" data-ton="46">
|
||||||
@@ -181,12 +181,12 @@
|
|||||||
|
|
||||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||||
liest daraus die Leitungsrollen. -->
|
liest daraus die Leitungsrollen. -->
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/notizen.js?v=202610062222" defer></script>
|
<script src="assets/js/notizen.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/personen.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/personen.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -453,14 +453,14 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/personen.js?v=202610062222" defer></script>
|
<script src="assets/js/personen.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+18
-18
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/profil.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/profil.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -214,16 +214,16 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/steckbrief.js?v=202610062222" defer></script>
|
<script src="assets/js/steckbrief.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/profil.js?v=202610062222" defer></script>
|
<script src="assets/js/profil.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+19
-19
@@ -7,15 +7,15 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/reaktion.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/reaktion.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/werbung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/werbung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start reaktion-seite" data-stand="laedt">
|
<body class="start reaktion-seite" data-stand="laedt">
|
||||||
@@ -905,15 +905,15 @@
|
|||||||
|
|
||||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||||
liest daraus die Leitungsrollen. -->
|
liest daraus die Leitungsrollen. -->
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/spendenkarte.js?v=202610062222" defer></script>
|
<script src="assets/js/spendenkarte.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/werbung.js?v=202610062222" defer></script>
|
<script src="assets/js/werbung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/reaktion.js?v=202610062222" defer></script>
|
<script src="assets/js/reaktion.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -7,14 +7,14 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/treff.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/treff.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -134,14 +134,14 @@
|
|||||||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||||||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||||||
die seit dem 07.09. jede Seite danach absucht. -->
|
die seit dem 07.09. jede Seite danach absucht. -->
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/rechte.js?v=202610062222" defer></script>
|
<script src="assets/js/rechte.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+18
-18
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/report.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/report.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -106,17 +106,17 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/ki.js?v=202610062222" defer></script>
|
<script src="assets/js/ki.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/report.js?v=202610062222" defer></script>
|
<script src="assets/js/report.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+37
-16
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/scouting.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -85,6 +85,27 @@
|
|||||||
<label class="feld-schild" for="n-handle">Profil / Handle</label>
|
<label class="feld-schild" for="n-handle">Profil / Handle</label>
|
||||||
<input id="n-handle" maxlength="120" placeholder="@…" />
|
<input id="n-handle" maxlength="120" placeholder="@…" />
|
||||||
</div>
|
</div>
|
||||||
|
<!-- NORMAL ODER PREMIUM (06.10.2026).
|
||||||
|
|
||||||
|
Filipe: "auch dass wenn man die einträgt soll man aussuchen
|
||||||
|
können zwischen normalen und premium creator."
|
||||||
|
|
||||||
|
Steht direkt beim Handle und nicht weiter unten: Die Wahl
|
||||||
|
entscheidet, in WELCHER Spalte die Karte danach liegt. Wer
|
||||||
|
sie erst am Ende des Formulars findet, hat die Karte schon
|
||||||
|
zweimal auf der falschen Seite gesucht.
|
||||||
|
|
||||||
|
Die Auswahl wird beim Laden aus der Serverliste gefuellt
|
||||||
|
(siehe scouting.js) -- hier steht nur die Vorgabe, damit das
|
||||||
|
Feld auch dann bedienbar ist, wenn die Liste noch nicht da
|
||||||
|
ist. -->
|
||||||
|
<div class="feld">
|
||||||
|
<label class="feld-schild" for="n-art">Art</label>
|
||||||
|
<select id="n-art">
|
||||||
|
<option value="normal" selected>Normal</option>
|
||||||
|
<option value="premium">Premium</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
<div class="feld">
|
<div class="feld">
|
||||||
<label class="feld-schild" for="n-prio">Priorität</label>
|
<label class="feld-schild" for="n-prio">Priorität</label>
|
||||||
<select id="n-prio">
|
<select id="n-prio">
|
||||||
@@ -173,14 +194,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/scouting.js?v=202610062222" defer></script>
|
<script src="assets/js/scouting.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+19
-19
@@ -12,26 +12,26 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
|
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
|
||||||
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
|
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
|
||||||
<link rel="stylesheet" href="assets/css/heim.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/heim.css?v=202610062332" />
|
||||||
<!-- Die Einweisung bringt ihr Aussehen mit. Sie steht in
|
<!-- Die Einweisung bringt ihr Aussehen mit. Sie steht in
|
||||||
anleitung.css, weil sie dorthin gehoert -- und nicht in
|
anleitung.css, weil sie dorthin gehoert -- und nicht in
|
||||||
start.css, wo sie zwischen 48 Kachelfarben verschwinden
|
start.css, wo sie zwischen 48 Kachelfarben verschwinden
|
||||||
wuerde. -->
|
wuerde. -->
|
||||||
<link rel="stylesheet" href="assets/css/anleitung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/anleitung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -768,22 +768,22 @@
|
|||||||
</p>
|
</p>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/live.js?v=202610062222" defer></script>
|
<script src="assets/js/live.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/start.js?v=202610062222" defer></script>
|
<script src="assets/js/start.js?v=202610062332" defer></script>
|
||||||
<!-- Die Begruessung und der Rundgang beim ersten Anmelden.
|
<!-- Die Begruessung und der Rundgang beim ersten Anmelden.
|
||||||
EIGENE DATEI und nicht ein Stueck start.js: Sie laeuft auf der
|
EIGENE DATEI und nicht ein Stueck start.js: Sie laeuft auf der
|
||||||
meistbenutzten Seite des Hauses, und wenn hier etwas schiefgeht,
|
meistbenutzten Seite des Hauses, und wenn hier etwas schiefgeht,
|
||||||
darf davon nichts anderes betroffen sein. -->
|
darf davon nichts anderes betroffen sein. -->
|
||||||
<script src="assets/js/rundgang.js?v=202610062222" defer></script>
|
<script src="assets/js/rundgang.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/aufstieg.js?v=202610062222" defer></script>
|
<script src="assets/js/aufstieg.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/startcheck.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -85,16 +85,16 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/ki.js?v=202610062222" defer></script>
|
<script src="assets/js/ki.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/startcheck.js?v=202610062222" defer></script>
|
<script src="assets/js/startcheck.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+18
-18
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/profil.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/profil.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -150,16 +150,16 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/auskunft.js?v=202610062222" defer></script>
|
<script src="assets/js/auskunft.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/steckbrief.js?v=202610062222" defer></script>
|
<script src="assets/js/steckbrief.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+14
-14
@@ -7,13 +7,13 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/support.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/support.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -154,16 +154,16 @@
|
|||||||
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
|
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
|
||||||
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
|
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
|
||||||
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
|
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
|
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
|
||||||
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
|
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
|
||||||
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
|
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
|
||||||
uebersicht.html, und heute hier. -->
|
uebersicht.html, und heute hier. -->
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/support.js?v=202610062222" defer></script>
|
<script src="assets/js/support.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
„Eigenes CSS" leer lassen (der Grund ist schon
|
„Eigenes CSS" leer lassen (der Grund ist schon
|
||||||
durchsichtig).
|
durchsichtig).
|
||||||
====================================================================== -->
|
====================================================================== -->
|
||||||
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/spendenkarte.css?v=202610062332" />
|
||||||
<style>
|
<style>
|
||||||
/* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das
|
/* DURCHSICHTIG BIS AUF DIE KARTEN. OBS legt die Quelle über das
|
||||||
Bild; jede Fläche, die hier steht, deckt dort etwas zu. */
|
Bild; jede Fläche, die hier steht, deckt dort etwas zu. */
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div>
|
<div class="obs-tafel spendentafel" id="tafel" aria-live="polite"></div>
|
||||||
|
|
||||||
<script src="assets/js/spendenkarte.js?v=202610062222" defer></script>
|
<script src="assets/js/spendenkarte.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/tafel.js?v=202610062222" defer></script>
|
<script src="assets/js/tafel.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+18
-18
@@ -7,18 +7,18 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062332" />
|
||||||
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
|
<!-- Wegen des Kastens „Anfragen“ ueber der Liste. Eine eigene Kopie
|
||||||
der Regel hier waere die zweite Stelle, an der dieselbe Sache
|
der Regel hier waere die zweite Stelle, an der dieselbe Sache
|
||||||
anders aussieht. -->
|
anders aussieht. -->
|
||||||
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bewerbung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -111,15 +111,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/talente.js?v=202610062222" defer></script>
|
<script src="assets/js/talente.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -7,20 +7,20 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/team.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/team.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -110,15 +110,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/team.js?v=202610062222" defer></script>
|
<script src="assets/js/team.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -7,20 +7,20 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/team.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/team.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
|
<!-- `data-buehne` steht hier fest und nicht im Skript: Die Kachel zu
|
||||||
@@ -84,15 +84,15 @@
|
|||||||
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
|
Kaputt ist dabei nichts -- er funktioniert. Genau deshalb faellt
|
||||||
es niemandem auf, und deshalb prueft pruef-css-klassen die
|
es niemandem auf, und deshalb prueft pruef-css-klassen die
|
||||||
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
|
ABHAENGIGKEIT statt der Optik. Hier hat sie angeschlagen. -->
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/teamlage.js?v=202610062222" defer></script>
|
<script src="assets/js/teamlage.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+15
-15
@@ -7,13 +7,13 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/bereich.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -112,15 +112,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/teilen.js?v=202610062222" defer></script>
|
<script src="assets/js/teilen.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,14 +7,14 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/treff.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/treff.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -126,14 +126,14 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/treff-moderation.js?v=202610062222" defer></script>
|
<script src="assets/js/treff-moderation.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -7,18 +7,18 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/treff.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/treff.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
|
<!-- haus.css MUSS die letzte Stilvorlage sein. Auf der Adresse des
|
||||||
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
|
Rudels biegt der Server genau diesen Dateinamen auf crew-haus.css
|
||||||
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
|
um, und die Seite kommt schon beim ERSTEN Abruf in Lila und
|
||||||
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
|
Babyblau an -- ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -248,14 +248,14 @@
|
|||||||
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen
|
||||||
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen,
|
||||||
die seit dem 07.09. jede Seite danach absucht. -->
|
die seit dem 07.09. jede Seite danach absucht. -->
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/auskunft.js?v=202610062222" defer></script>
|
<script src="assets/js/auskunft.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/treff-regeln.js?v=202610062222" defer></script>
|
<script src="assets/js/treff-regeln.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -12,22 +12,22 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
|
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
|
||||||
Dialog "Creator anlegen". -->
|
Dialog "Creator anlegen". -->
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -149,16 +149,16 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/uebersicht.js?v=202610062222" defer></script>
|
<script src="assets/js/uebersicht.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/unsere-seiten.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -335,14 +335,14 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/live.js?v=202610062222" defer></script>
|
<script src="assets/js/live.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/unsere-seiten.js?v=202610062222" defer></script>
|
<script src="assets/js/unsere-seiten.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,13 +7,13 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/unterstuetzen.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -106,17 +106,17 @@
|
|||||||
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und kopf.js
|
||||||
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
|
liest daraus die Leitungsrollen. Ohne sie stürzt jede Seite mit
|
||||||
„Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
|
„Cannot read properties of undefined (reading 'LEITUNG')" ab. -->
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/holen.js?v=202610062222" defer></script>
|
<script src="assets/js/holen.js?v=202610062332" defer></script>
|
||||||
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
|
<!-- Die Satz-Tafel. Ohne sie stand auf dieser Seite das Maschinenwort
|
||||||
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
|
des Servers (z.B. "nicht_gefunden") statt eines Satzes -- gemeldet
|
||||||
von pruef-meldungen, nicht beim Ansehen. -->
|
von pruef-meldungen, nicht beim Ansehen. -->
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/unterstuetzen.js?v=202610062222" defer></script>
|
<script src="assets/js/unterstuetzen.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+16
-16
@@ -7,15 +7,15 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<link rel="manifest" href="/workspace/app.webmanifest" />
|
<link rel="manifest" href="/workspace/app.webmanifest" />
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/entwicklung.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/werdegang.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/werdegang.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -144,14 +144,14 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/werdegang.js?v=202610062222" defer></script>
|
<script src="assets/js/werdegang.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+17
-17
@@ -12,20 +12,20 @@
|
|||||||
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite
|
||||||
eine Flaeche sind statt zweier. -->
|
eine Flaeche sind statt zweier. -->
|
||||||
<meta name="theme-color" content="#06090f" />
|
<meta name="theme-color" content="#06090f" />
|
||||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062222" />
|
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202610062332" />
|
||||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062222" />
|
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/wissen.css?v=202610062332" />
|
||||||
<link rel="stylesheet" href="assets/css/module.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/module.css?v=202610062332" />
|
||||||
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
<!-- haus.css MUSS die letzte Stilvorlage sein (10.09.2026).
|
||||||
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
Auf der Agenturadresse ist sie leer -- das Haus hier IST der
|
||||||
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
Grundzustand. Auf der Adresse von Team Dogi biegt der Server
|
||||||
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
genau diesen Dateinamen auf crew-haus.css um, und die Seite
|
||||||
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
kommt schon beim ERSTEN Abruf in Lila und Babyblau an --
|
||||||
ohne Umfaerben im Browser, ohne Flackern. -->
|
ohne Umfaerben im Browser, ohne Flackern. -->
|
||||||
<link rel="stylesheet" href="assets/css/haus.css?v=202610062222" />
|
<link rel="stylesheet" href="assets/css/haus.css?v=202610062332" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -190,15 +190,15 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/meldung.js?v=202610062222" defer></script>
|
<script src="assets/js/meldung.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/hochladen.js?v=202610062222" defer></script>
|
<script src="assets/js/hochladen.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/nachfrage.js?v=202610062222" defer></script>
|
<script src="assets/js/nachfrage.js?v=202610062332" defer></script>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202610062222" defer></script>
|
<script src="assets/js/wahl.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/bereiche.js?v=202610062222" defer></script>
|
<script src="assets/js/bereiche.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/installieren.js?v=202610062222" defer></script>
|
<script src="assets/js/installieren.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202610062222" defer></script>
|
<script src="assets/js/kopf.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/glocke.js?v=202610062222" defer></script>
|
<script src="assets/js/glocke.js?v=202610062332" defer></script>
|
||||||
<script src="assets/js/wissen.js?v=202610062222" defer></script>
|
<script src="assets/js/wissen.js?v=202610062332" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user