Startseite: die tote Mitte der Konsole bekommt drei Ablesungen
Gemessen, nicht geschaetzt: Auf 1440 px lagen zwischen dem Ende des Textes und der Uhr rund 300 px Leere. Dort stehen jetzt HEUTE (Termine), ALS NAECHSTES (Uhrzeit) und OFFEN (Punkte, Farbe nach Lage). Keine zweite Zaehlung: Die Zahlen kommen aus denselben zwei Quellen, die die Kacheln darunter fuellen. Zwei Rechenwege fuer dieselbe Zahl laufen auseinander, und dann stehen zwei Wahrheiten auf einem Bildschirm. EINE Fassung mit Stegen, nicht drei Kaestchen. Der erste Anlauf gab jedem Wert eine eigene Fraesung -- im Bild sah das aus wie aufgeklebte Plaettchen. Ein Instrumentenblock ist EIN eingelassenes Feld, in dem Stege trennen; das Licht laeuft dann einmal ueber eine Kante statt sechsmal. Auf dem Handy geht der Block auf volle Breite und richtet sich nach der Uhr, nicht nach dem Rand. EINE ANNAHME KORRIGIERT: In meiner Merkliste stand "Werktisch-Aufbau nach VanVans Business Hub, Prozentring links". Im Hub nachgesehen -- es gibt dort keinen Ring und keinen solchen Aufbau, nur eine schlichte buehne-hero. Filipes Verweis galt der UHR, und die ist laengst gebaut. Meine eigenen Notizen altern wie jede andere Bestandsliste. DREI BEFUNDE AUS EIGENEN PRUEFUNGEN, alle behoben: 1. pruef-css-klassen: Die Zahl der Schriftgroessen unter 11,5 px war um genau eine gestiegen -- .stand__schild stand auf 9,3 px. Gesperrte Grossbuchstaben in 9 px liest man nicht, man erraet sie. Jetzt 11,5 px mit etwas engerer Sperrung, damit drei Schilder bei 320 px weiterhin nebeneinander passen (nachgemessen: 287 px, nichts abgeschnitten). 2. pruef-struktur: pruef-arten.mjs bildete das Tagesdatum aus UTC. Nachts zwischen 00:00 und 02:00 waere sie rot geworden, ohne dass am Code etwas falsch ist. Derselbe Fehler war mir am selben Abend schon im Messskript passiert -- dort hatte ich "Heute=0" gemessen und den Code verdaechtigt, der richtig lag. 3. Beim Bauen fast eingebaut: margin-left:auto von der Uhrgruppe genommen, weil der neue Block sie ja schon nach rechts schiebt. Er tut das nur, solange er da ist -- bis zur ersten Antwort steht er auf hidden, und die Uhr waere sichtbar weggesprungen. Neu: server/pruef-ueberlappung.mjs. Misst auf 5 Seiten x 4 Breiten, ob ein Bedienelement ueber einem anderen liegt (am 06.09. lag der Sicht-Umschalter bei 412 px auf zwoelf Seiten ueber dem Chat-Knopf). Ueberlappungen INNERHALB eines Bedienelements zaehlen nicht -- ein durchsichtiges select ueber seinem eigenen Schild ist die uebliche Bauart, und eine Warnung, die immer kommt, ist keine Warnung mehr. Mit Gegenprobe: ein absichtlich verschobener Knopf muss erkannt werden. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+23
-4
@@ -156,6 +156,25 @@ await starten();
|
||||
await stoppen();
|
||||
|
||||
const jetzt = new Date().toISOString();
|
||||
|
||||
/* ORTSZEIT FUER DAS TAGESDATUM, NICHT UTC (08.09.2026).
|
||||
|
||||
Hier wurde der Tag mit `jetzt.slice(0, 10)` gebildet -- also aus UTC.
|
||||
Zwischen Mitternacht und zwei Uhr Ortszeit ist das noch der VORTAG,
|
||||
die Anwendung rechnet aber mit heuteLokal(). Ein Termin waere fuer
|
||||
gestern angelegt und heute nicht gefunden worden; die Pruefung waere
|
||||
nachts rot geworden, ohne dass am Code etwas falsch ist.
|
||||
|
||||
Das ist mir an genau diesem Abend zweimal passiert: erst im
|
||||
Messskript fuer die Startseite ("Heute=0", obwohl drei Termine
|
||||
angelegt waren -- ich habe den Code verdaechtigt, der richtig lag),
|
||||
und dann hier. pruef-struktur.mjs hat die zweite Stelle gefunden,
|
||||
bevor sie schaden konnte. Genau dafuer gibt es sie. */
|
||||
const tagOrt = (versatzTage = 0) => {
|
||||
const d = new Date(Date.now() + versatzTage * 86400000);
|
||||
return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}`
|
||||
+ `-${String(d.getDate()).padStart(2, "0")}`;
|
||||
};
|
||||
let idDogi, idLuna, terminVorher, serienVorher;
|
||||
{
|
||||
const d = new DatabaseSync(DB);
|
||||
@@ -198,7 +217,7 @@ let idDogi, idLuna, terminVorher, serienVorher;
|
||||
idDogi = anlegen("Filipe", "admin", "CODE-DOGI-0001");
|
||||
idLuna = anlegen("Luna", "creator", "CODE-CREA-0001");
|
||||
|
||||
const heute = jetzt.slice(0, 10);
|
||||
const heute = tagOrt();
|
||||
const rein = d.prepare(`INSERT INTO termine (titel, art, beginn, dauer_min, creator_id, erstellt, erstellt_von)
|
||||
VALUES (?,?,?,?,?,?,?)`);
|
||||
rein.run("Alter Call", "call", heute + "T10:00", 30, idLuna, jetzt, idDogi);
|
||||
@@ -269,7 +288,7 @@ await starten();
|
||||
misst, ist schlimmer als keine: Sie wird rot, jemand "repariert"
|
||||
etwas Heiles, und beim naechsten Mal glaubt ihr niemand mehr. */
|
||||
const HORIZONT = 180;
|
||||
const grenze = new Date(Date.now() + (HORIZONT + 1) * 86400000).toISOString().slice(0, 10);
|
||||
const grenze = tagOrt(HORIZONT + 1);
|
||||
const ausSerie = d.prepare(
|
||||
"SELECT beginn FROM termine WHERE serie_id IS NOT NULL ORDER BY beginn").all();
|
||||
const zuWeit = ausSerie.filter((z) => z.beginn.slice(0, 10) > grenze);
|
||||
@@ -301,7 +320,7 @@ await starten();
|
||||
let erfunden = false;
|
||||
try {
|
||||
d.prepare(`INSERT INTO termine (titel, art, beginn, dauer_min, erstellt, erstellt_von)
|
||||
VALUES ('Quatsch','quatsch',?,30,?,?)`).run(jetzt.slice(0, 10) + "T21:00", jetzt, idDogi);
|
||||
VALUES ('Quatsch','quatsch',?,30,?,?)`).run(tagOrt() + "T21:00", jetzt, idDogi);
|
||||
} catch { erfunden = true; }
|
||||
ok(erfunden, "eine erfundene Art wird weiterhin abgelehnt");
|
||||
d.close();
|
||||
@@ -318,7 +337,7 @@ console.log("\n=== Anlegen mit den neuen Arten ===");
|
||||
const keks = (a.headers.getSetCookie?.() || []).map((z) => z.split(";")[0]).join("; ");
|
||||
ok(!!keks, "als DogFather angemeldet");
|
||||
|
||||
const morgen = new Date(Date.now() + 86400000).toISOString().slice(0, 10);
|
||||
const morgen = tagOrt(1);
|
||||
let angelegt = 0;
|
||||
for (const art of NEUE) {
|
||||
const r = await fetch(BASIS + "/workspace/api/termine", {
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
/* Liegt auf einer Seite irgendein Bedienelement UEBER einem anderen?
|
||||
|
||||
Am 06.09.2026 lag der Sicht-Umschalter bei 412 px quer ueber dem
|
||||
Chat-Knopf -- auf zwoelf Seiten. Wer auf "Meine Sicht" tippte, landete
|
||||
im Chat. Gefunden wurde das durch Hinsehen; das hier misst es. */
|
||||
import { chromium } from "file:///C:/Users/qciga/Documents/Obelix/Analyse/node_modules/playwright/index.mjs";
|
||||
import { spawn } from "node:child_process";
|
||||
import { mkdtempSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { DatabaseSync } from "node:sqlite";
|
||||
import { scryptSync, randomBytes } from "node:crypto";
|
||||
|
||||
const ordner = mkdtempSync(join(tmpdir(), "ws-kopf-"));
|
||||
const DB = join(ordner, "w.db");
|
||||
const PORT = 4367, BASIS = `http://127.0.0.1:${PORT}`;
|
||||
const start = () => spawn(process.execPath, ["server/index.js"], {
|
||||
cwd: "C:/Users/qciga/Documents/Obelix/DogiHompage",
|
||||
env: { ...process.env, WORKSPACE_DB: DB, PORT: String(PORT),
|
||||
SITE_ACCESS_SECRET: "lokaler-test", SITE_PUBLIC_LAUNCH_AT: "2020-01-01T00:00:00+01:00" },
|
||||
stdio: ["ignore", "pipe", "pipe"] });
|
||||
const warten = async () => {
|
||||
for (let i = 0; i < 80; i++) { await new Promise((r) => setTimeout(r, 250));
|
||||
try { const a = await fetch(BASIS + "/workspace/", { redirect: "manual" }); if (a.status < 500) return; } catch { /* noch nicht */ } }
|
||||
};
|
||||
let kind = start(); await warten();
|
||||
kind.kill(); await new Promise((r) => setTimeout(r, 700));
|
||||
{
|
||||
const d = new DatabaseSync(DB);
|
||||
const s = randomBytes(16).toString("hex");
|
||||
const h = scryptSync("CODE-DOGI-0001", s, 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 ('Filipe','admin',?,?,?,1,?)")
|
||||
.run(h, s, 32768, new Date().toISOString());
|
||||
d.close();
|
||||
}
|
||||
kind = start(); await warten();
|
||||
|
||||
const a = await fetch(BASIS + "/workspace/api/anmelden", {
|
||||
method: "POST", headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ rolle: "admin", code: "CODE-DOGI-0001" }) });
|
||||
const kekse = (a.headers.getSetCookie?.() || []).map((z) => {
|
||||
const [np] = z.split(";"); const [name, ...wert] = np.split("=");
|
||||
return { name: name.trim(), value: wert.join("="), domain: "127.0.0.1", path: "/" };
|
||||
});
|
||||
|
||||
const SEITEN = ["start.html", "kalender.html", "aufgaben.html", "calls.html", "chat.html"];
|
||||
/* Die Breiten, an denen es wirklich klemmt: 320 = kleinstes uebliches
|
||||
Geraet, 412 = haeufigste Android-Breite, 768 = Tablet hochkant,
|
||||
1280 = kleinster Laptop. Keine davon ist geraten. */
|
||||
const BREITEN = [320, 412, 768, 1280];
|
||||
|
||||
const b = await chromium.launch();
|
||||
let funde = 0, geprueft = 0;
|
||||
for (const breite of BREITEN) {
|
||||
const sitz = await b.newContext({ viewport: { width: breite, height: 900 } });
|
||||
await sitz.addCookies(kekse);
|
||||
const p = await sitz.newPage();
|
||||
for (const seite of SEITEN) {
|
||||
await p.goto(`${BASIS}/workspace/${seite}`, { waitUntil: "networkidle" }).catch(() => {});
|
||||
await p.waitForTimeout(900);
|
||||
const treffer = await p.evaluate(() => {
|
||||
const nimm = (n) => { const r = n.getBoundingClientRect(); return { r, n }; };
|
||||
/* Nur die Kopfleiste: dort stehen die Elemente am dichtesten, und
|
||||
dort war der echte Fehler. */
|
||||
const leiste = document.querySelector(".kopfleiste");
|
||||
if (!leiste) return ["KEINE KOPFLEISTE"];
|
||||
const teile = [...leiste.querySelectorAll("button, a, select, .knopf")]
|
||||
.filter((n) => { const r = n.getBoundingClientRect(); return r.width > 0 && r.height > 0; })
|
||||
.map(nimm);
|
||||
const raus = [];
|
||||
for (let i = 0; i < teile.length; i++) {
|
||||
for (let j = i + 1; j < teile.length; j++) {
|
||||
const A = teile[i], B = teile[j];
|
||||
if (A.n.contains(B.n) || B.n.contains(A.n)) continue; // verschachtelt ist kein Fehler
|
||||
/* DASSELBE BEDIENELEMENT ZAEHLT NICHT (Befund beim Bauen).
|
||||
|
||||
Der erste Lauf meldete zehnmal "Meine Sicht × Meine Sicht".
|
||||
Das ist ein durchsichtiges <select>, das ueber seinem
|
||||
eigenen gestalteten Schild liegt -- die uebliche Bauart fuer
|
||||
eine Auswahl, die aussehen soll wie ein Knopf. Wer darauf
|
||||
tippt, landet genau dort, wo er hinwollte.
|
||||
|
||||
Die Frage lautet nicht "ueberlappen zwei Kaesten", sondern
|
||||
"komme ich woanders hin als ich tippe". Ueberlappungen
|
||||
INNERHALB eines Bedienelements sind deshalb kein Fund --
|
||||
sonst meldet die Pruefung jedes Mal dasselbe, und eine
|
||||
Warnung, die immer kommt, ist keine Warnung mehr. */
|
||||
const huelleA = A.n.closest(".sicht, .knopf, label, .wer");
|
||||
const huelleB = B.n.closest(".sicht, .knopf, label, .wer");
|
||||
if (huelleA && huelleA === huelleB) continue;
|
||||
const x = Math.min(A.r.right, B.r.right) - Math.max(A.r.left, B.r.left);
|
||||
const y = Math.min(A.r.bottom, B.r.bottom) - Math.max(A.r.top, B.r.top);
|
||||
if (x > 2 && y > 2) {
|
||||
const kurz = (n) => (n.textContent || n.className || n.tagName).trim().slice(0, 22);
|
||||
raus.push(`${kurz(A.n)} × ${kurz(B.n)} (${Math.round(x)}×${Math.round(y)} px)`);
|
||||
}
|
||||
}
|
||||
}
|
||||
return raus;
|
||||
});
|
||||
geprueft++;
|
||||
if (treffer.length) {
|
||||
funde += treffer.length;
|
||||
console.log(` FEHL ${seite} @${breite}px:`);
|
||||
for (const t of treffer) console.log(" " + t);
|
||||
}
|
||||
}
|
||||
await sitz.close();
|
||||
}
|
||||
/* =====================================================================
|
||||
DIE GEGENPROBE -- ohne sie beweist "0 Ueberlappungen" gar nichts.
|
||||
|
||||
Eine Pruefung, die immer bestaetigt, bestaetigt nichts. Hier wird
|
||||
deshalb absichtlich ein Knopf verschoben, bis er ueber einem anderen
|
||||
liegt. Schlaegt die Pruefung dann NICHT an, ist sie kaputt -- und der
|
||||
ganze Lauf muss scheitern, nicht nur eine Zeile melden.
|
||||
|
||||
Warum ausgerechnet dieser Fehler: Am 06.09.2026 lag der
|
||||
Sicht-Umschalter bei 412 px quer ueber dem Chat-Knopf, auf zwoelf
|
||||
Seiten. Wer "Meine Sicht" antippte, landete im Chat. Aufgefallen ist
|
||||
das durch Hinsehen -- gemessen hatte es niemand. */
|
||||
{
|
||||
const sitz = await b.newContext({ viewport: { width: 412, height: 900 } });
|
||||
await sitz.addCookies(kekse);
|
||||
const p = await sitz.newPage();
|
||||
await p.goto(BASIS + "/workspace/start.html", { waitUntil: "networkidle" });
|
||||
await p.waitForTimeout(900);
|
||||
const merkt = await p.evaluate(() => {
|
||||
const leiste = document.querySelector(".kopfleiste");
|
||||
const teile = [...leiste.querySelectorAll("button, a, .knopf")]
|
||||
.filter((n) => { const r = n.getBoundingClientRect(); return r.width > 0 && r.height > 0; });
|
||||
if (teile.length < 2) return "zu wenige Bedienelemente zum Pruefen";
|
||||
/* Den letzten Knopf genau auf den ersten legen. */
|
||||
const erst = teile[0].getBoundingClientRect();
|
||||
const letzt = teile[teile.length - 1];
|
||||
letzt.style.position = "fixed";
|
||||
letzt.style.left = erst.left + "px";
|
||||
letzt.style.top = erst.top + "px";
|
||||
letzt.style.zIndex = "99";
|
||||
// Messen wie oben, aber nur dieses eine Paar.
|
||||
const a2 = teile[0].getBoundingClientRect(), b2 = letzt.getBoundingClientRect();
|
||||
const x = Math.min(a2.right, b2.right) - Math.max(a2.left, b2.left);
|
||||
const y = Math.min(a2.bottom, b2.bottom) - Math.max(a2.top, b2.top);
|
||||
return { x: Math.round(x), y: Math.round(y) };
|
||||
});
|
||||
const erkannt = typeof merkt === "object" && merkt.x > 2 && merkt.y > 2;
|
||||
console.log(erkannt
|
||||
? ` ok Gegenprobe: ein absichtlich verschobener Knopf wird als Ueberlappung erkannt (${merkt.x}×${merkt.y} px)`
|
||||
: ` FEHL Gegenprobe: der verschobene Knopf wurde NICHT erkannt (${JSON.stringify(merkt)})`);
|
||||
if (!erkannt) funde++;
|
||||
await sitz.close();
|
||||
}
|
||||
|
||||
console.log(`\n${geprueft} Seiten-Breiten-Paare geprueft, ${funde} Befunde.`);
|
||||
console.log(funde === 0 ? "ALLES IN ORDNUNG" : `${funde} FEHLER`);
|
||||
await b.close(); kind.kill();
|
||||
process.exit(funde ? 1 : 0);
|
||||
@@ -412,6 +412,119 @@
|
||||
zwei Bauteile. Auf dem Handy gibt es diese Trennung nicht mehr
|
||||
(dort steht alles untereinander), deshalb faellt sie dort weg. */
|
||||
|
||||
/* =====================================================================
|
||||
DIE MITTE DER KONSOLE: DREI EINGELASSENE ABLESUNGEN
|
||||
|
||||
Gemessen, nicht geschaetzt: Auf 1440 px lagen zwischen dem Ende des
|
||||
Textes und der Uhr rund 300 px Leere. Auf einer Konsole ist eine
|
||||
leere Flaeche keine Ruhe, sondern ein fehlendes Bauteil.
|
||||
|
||||
Sie sind EINGELASSEN, nicht aufgesetzt -- dieselbe Bauart wie die
|
||||
Uhrmulde daneben, damit die Kachel EIN Stueck bleibt und nicht in
|
||||
zwei Stile zerfaellt:
|
||||
- dunkler Grund (in einer Fraesung faellt weniger Licht an)
|
||||
- Schatten oben INNEN, heller Bogen unten INNEN (die
|
||||
gegenueberliegende Wand faengt das Licht)
|
||||
- haarfeine helle Kante aussen unten (die Oberkante der Fraesung)
|
||||
Ein `box-shadow: inset` allein reicht dafuer nicht: Es macht eine
|
||||
Delle, aber keinen Rand. Erst die zweite, helle Kante macht daraus
|
||||
ein Loch mit Wand.
|
||||
|
||||
`flex: 0 1 auto` und `flex-wrap` am Elternteil: Wird der Platz eng,
|
||||
RUTSCHT die Gruppe unter den Text, statt sich zu quetschen. Das ist
|
||||
Absicht und ersetzt eine feste Umbruchbreite -- eine Zahl, die zaehlt,
|
||||
was daneben steht, wird beim naechsten hinzugefuegten Element falsch,
|
||||
und zwar still. Genau so lag im September der Sicht-Umschalter ueber
|
||||
dem Chat-Knopf. */
|
||||
/* EINE FASSUNG, DREI FELDER -- nicht drei Kaestchen nebeneinander.
|
||||
|
||||
Der erste Anlauf gab jedem Wert eine eigene Fraesung. Im Bild sah das
|
||||
aus wie drei aufgeklebte Plaettchen: Ein Instrumentenblock auf einer
|
||||
Konsole ist EIN eingelassenes Feld, in dem STEGE die Ablesungen
|
||||
trennen. Der Unterschied ist nicht Geschmack, sondern Bauweise -- und
|
||||
man sieht ihn sofort, weil das Licht nur einmal ueber eine Kante
|
||||
laeuft statt sechsmal.
|
||||
|
||||
Der Steg ist zwei Linien breit, nie eine: dunkel auf der Lichtseite,
|
||||
hell auf der Schattenseite. Eine einzelne Linie ist ein Strich, zwei
|
||||
sind eine Kante. Dieselbe Regel wie bei der Nut daneben. */
|
||||
.willkommen__stand {
|
||||
display: flex; align-items: stretch;
|
||||
margin-left: auto; flex: 0 1 auto;
|
||||
padding: 3px;
|
||||
border-radius: 13px;
|
||||
background:
|
||||
linear-gradient(178deg, rgba(3, 8, 15, .78), rgba(10, 18, 29, .54));
|
||||
box-shadow:
|
||||
inset 0 4px 9px rgba(0, 0, 0, .66), /* Schatten der Oberkante */
|
||||
inset 0 -1px 0 rgba(150, 185, 220, .17), /* Licht auf der Gegenwand */
|
||||
0 1px 0 rgba(170, 200, 235, .10); /* Kante der Fraesung */
|
||||
}
|
||||
.stand {
|
||||
display: flex; flex-direction: column; align-items: center; justify-content: center;
|
||||
gap: 4px;
|
||||
min-width: 86px; padding: 10px 15px 9px;
|
||||
position: relative;
|
||||
}
|
||||
/* Der Steg zwischen zwei Feldern -- am zweiten und dritten, nicht am
|
||||
ersten. `::before` statt `border-left`, weil eine Kante aus zwei
|
||||
Farben besteht. */
|
||||
.stand + .stand::before {
|
||||
content: ""; position: absolute; left: 0; top: 14%; bottom: 14%;
|
||||
width: 2px;
|
||||
background: linear-gradient(90deg,
|
||||
rgba(0, 0, 0, .5) 0 1px, rgba(160, 195, 230, .13) 1px 2px);
|
||||
}
|
||||
.stand__wert {
|
||||
font-size: 1.55rem; font-weight: 700; line-height: 1;
|
||||
font-variant-numeric: tabular-nums; /* springt nicht beim Zaehlen */
|
||||
letter-spacing: .01em;
|
||||
color: var(--stand-farbe, #cfe2f5);
|
||||
/* Ein Hauch Eigenlicht -- so viel, dass die Ziffer in der Fraesung
|
||||
leuchtet, so wenig, dass sie scharf bleibt. Kein blur() auf der
|
||||
Schrift selbst; das war beim ersten Uhr-Anlauf der Vorwurf. */
|
||||
text-shadow: 0 0 12px color-mix(in srgb, var(--stand-farbe, #cfe2f5) 34%, transparent);
|
||||
}
|
||||
/* 11,5 px IST DIE UNTERGRENZE, auch fuer ein Schildchen (08.09.2026).
|
||||
|
||||
Hier stand `.58rem` -- 9,3 px. pruef-css-klassen hat es gemeldet, und
|
||||
zwar nicht als Geschmacksfrage: Die Zahl der Stellen unter 11,5 px war
|
||||
um genau eine gestiegen. Gesperrte Grossbuchstaben in 9 px liest man
|
||||
nicht, man erraet sie -- und "augenschonend" gilt ueberall, nicht nur
|
||||
dort, wo es auffaellt.
|
||||
|
||||
Die Sperrung faellt dafuer etwas kleiner aus: Was groesser wird, darf
|
||||
nicht auch noch breiter werden, sonst passen drei Schilder bei 320 px
|
||||
nicht mehr nebeneinander. Nachgemessen, nicht geschaetzt. */
|
||||
.stand__schild {
|
||||
font-size: .72rem; font-weight: 600; letter-spacing: .09em;
|
||||
text-transform: uppercase;
|
||||
color: rgba(168, 192, 218, .62);
|
||||
white-space: nowrap;
|
||||
}
|
||||
/* Eine Farbe je Ablesung -- dieselbe Idee wie bei den Terminarten:
|
||||
Die Farbe gehoert zur Sache. Babyblau fuer den Tag, Bernstein fuer
|
||||
das Naechste, und Offen wechselt mit der Lage. */
|
||||
.stand[data-stand="heute"] { --stand-farbe: #7fc4f2; }
|
||||
.stand[data-stand="naechster"] { --stand-farbe: #e3b341; }
|
||||
.stand[data-stand="offen"] { --stand-farbe: #8fb3cf; }
|
||||
.stand[data-stand="offen"][data-stufe="offen"] { --stand-farbe: #e3b341; }
|
||||
.stand[data-stand="offen"][data-stufe="warnung"] { --stand-farbe: #ff6b74; }
|
||||
/* Ruhig heisst ruhig: kein Grasgruen in einer Konsole, die sonst aus
|
||||
Blau und Rot besteht -- ein gedaempftes Petrol sagt dasselbe, ohne
|
||||
die Augen zu stechen (augenschonend gilt ueberall). */
|
||||
.stand[data-stand="offen"][data-stufe="ruhig"] { --stand-farbe: #57b89b; }
|
||||
|
||||
/* `margin-left: auto` BLEIBT HIER, obwohl der Stand daneben es auch hat.
|
||||
|
||||
Beim Bauen hatte ich es weggenommen -- der Stand schiebe die Uhr ja
|
||||
schon nach rechts. Er tut das nur, solange er DA ist: Bis die erste
|
||||
Abfrage zurueck ist, steht er auf `hidden`, und in dieser Sekunde
|
||||
waere die Uhr an den Text geklebt und dann sichtbar weggesprungen.
|
||||
|
||||
Zwei `auto` nebeneinander sind kein Widerspruch: Das erste nimmt den
|
||||
freien Platz, das zweite bekommt keinen mehr. Ergebnis ist in BEIDEN
|
||||
Faellen dasselbe -- Instrumente rechts, Text links. */
|
||||
.willkommen__rechts {
|
||||
display: flex; align-items: center; gap: 14px;
|
||||
margin-left: auto; flex: 0 0 auto;
|
||||
@@ -952,6 +1065,22 @@
|
||||
keine Zeile mehr übrig. */
|
||||
.willkommen { padding: 18px 16px; }
|
||||
.willkommen__rechts { margin-left: 0; width: 100%; justify-content: flex-start; }
|
||||
/* DER STAND RICHTET SICH NACH DER UHR, NICHT NACH DEM RAND.
|
||||
|
||||
Am Rechner sitzt er rechts, weil dort auch die Uhr rechts sitzt.
|
||||
Auf dem Handy rutscht die Uhr nach LINKS (Zeile darueber) -- der
|
||||
Stand blieb dabei rechtsbuendig und stand als einziges Bauteil auf
|
||||
der falschen Seite. Im Bildschirmfoto bei 412 px gesehen, nicht
|
||||
hergeleitet.
|
||||
|
||||
`align-self` statt `margin-left: 0`: Der Kasten soll auf die volle
|
||||
Breite gehen duerfen, wenn drei Felder nebeneinander nicht mehr
|
||||
passen -- dann verteilen sie sich, statt sich zu stauchen. */
|
||||
.willkommen__stand {
|
||||
margin-left: 0; width: 100%;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.stand { min-width: 0; flex: 1 1 0; padding: 10px 8px 9px; }
|
||||
.uhr { width: 118px; height: 118px; padding: 4px; }
|
||||
.uhr__zeit { font-size: 1.3rem; }
|
||||
}
|
||||
|
||||
@@ -530,6 +530,29 @@
|
||||
el2.textContent = satz;
|
||||
el2.dataset.stufe = stufe;
|
||||
el2.hidden = false;
|
||||
|
||||
standSetzen('offen', gesamt === 0 ? '0' : String(gesamt), stufe);
|
||||
}
|
||||
|
||||
/* ---------- Die drei Ablesungen in der Konsolenmitte --------------------- */
|
||||
|
||||
/* EINE Funktion fuer alle drei, und sie wird von den STELLEN gerufen,
|
||||
die die Zahl ohnehin schon haben -- lageZeigen() und
|
||||
tagestermineLaden(). Hier wird nichts nachgezaehlt: Zwei Rechenwege
|
||||
fuer dieselbe Zahl laufen auseinander, und dann stehen zwei
|
||||
Wahrheiten auf einem Bildschirm.
|
||||
|
||||
Der Kasten geht auf, sobald die ERSTE Zahl da ist. Er wartet nicht
|
||||
auf beide: Wer nichts Offenes hat, aber drei Calls, soll seinen Tag
|
||||
sehen, auch wenn die andere Abfrage haengt. Genau diesen Fehler hat
|
||||
die Kachel darunter schon einmal gemacht. */
|
||||
function standSetzen(welches, wert, stufe) {
|
||||
const feld = $('stand-' + welches);
|
||||
if (!feld) return;
|
||||
feld.textContent = wert;
|
||||
if (stufe) feld.closest('.stand')?.setAttribute('data-stufe', stufe);
|
||||
const kasten = $('tagesstand');
|
||||
if (kasten) kasten.hidden = false;
|
||||
}
|
||||
|
||||
/* ---------- Laden -------------------------------------------------------- */
|
||||
@@ -730,8 +753,14 @@
|
||||
liste.textContent = '';
|
||||
tagesterminGeladen = true;
|
||||
|
||||
/* Auch der leere Fall wird GESETZT, nicht uebersprungen. Ein Feld,
|
||||
das bei null Terminen auf dem Strich stehen bleibt, sieht aus wie
|
||||
eine Abfrage, die haengt -- und man wartet auf eine Zahl, die nie
|
||||
kommt. "0" ist eine Auskunft, "–" ist keine. */
|
||||
if (!termine.length) {
|
||||
$('heute-leer').hidden = false;
|
||||
standSetzen('heute', '0');
|
||||
standSetzen('naechster', '–');
|
||||
tagesblickPruefen();
|
||||
return;
|
||||
}
|
||||
@@ -749,6 +778,16 @@
|
||||
return !Number.isNaN(ende.getTime()) ? ende >= jetzt : uhrzeit(t.beginn) >= jetztText;
|
||||
});
|
||||
|
||||
/* Die zwei Ablesungen fuer den Tag -- aus GENAU diesen Werten, die
|
||||
die Liste darunter ohnehin benutzt.
|
||||
|
||||
"Als Naechstes" zeigt den Termin, der noch nicht vorbei ist. Ist
|
||||
keiner mehr uebrig, steht dort "fertig" und nicht die Uhrzeit des
|
||||
letzten: Ein vergangener Termin unter der Ueberschrift "Als
|
||||
Naechstes" ist schlimmer als gar keine Angabe. */
|
||||
standSetzen('heute', String(termine.length));
|
||||
standSetzen('naechster', naechster ? uhrzeit(naechster.beginn) : 'fertig');
|
||||
|
||||
/* HÖCHSTENS FÜNF. Zwei Gründe, und beide zählen:
|
||||
|
||||
Fachlich: Eine Kachel auf der Startseite beantwortet "was kommt
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -212,10 +212,10 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/aufgaben.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/aufgaben.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/automation.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/automation.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -135,10 +135,10 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/automation.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/automation.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+14
-14
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -144,14 +144,14 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/ampel.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/schulung.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/vorlagen.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereich.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/ampel.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/schulung.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/vorlagen.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereich.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-11
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/calls.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/calls.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -77,11 +77,11 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/ki.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/calls.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/calls.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,17 +9,17 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<!-- aufgaben.css bringt die Dialog- und Formularstile mit (.dialog,
|
||||
.neu__zeile, .dialog__knoepfe). Sie stehen dort seit dem
|
||||
Aufgabenbrett; sie hierher zu kopieren hiesse, sie an zwei Stellen
|
||||
zu pflegen. Dieselbe Lösung nutzen kalender.html und content.html.
|
||||
Gemeldet von pruef-css-klassen.mjs, bevor jemand einen ungestylten
|
||||
Dialog zu sehen bekam. -->
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/chat.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/chat.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -155,10 +155,10 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/bereiche.js?v=202609080044"></script>
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044"></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044"></script>
|
||||
<script src="assets/js/chat.js?v=202609080044"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105"></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105"></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105"></script>
|
||||
<script src="assets/js/chat.js?v=202609080105"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+12
-12
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/content.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/content.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -167,12 +167,12 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/vorlagen.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/content.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/checkliste.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/vorlagen.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/content.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -96,10 +96,10 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/dateien.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/dateien.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="gate">
|
||||
@@ -219,6 +219,6 @@
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/gate.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/gate.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-11
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -305,11 +305,11 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kalender.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kalender-abo.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kalender.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kalender-abo.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/leistung.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -212,10 +212,10 @@
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044"></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044"></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044"></script>
|
||||
<script src="assets/js/leistung.js?v=202609080044"></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105"></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105"></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105"></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105"></script>
|
||||
<script src="assets/js/leistung.js?v=202609080105"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/personen.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/personen.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -157,10 +157,10 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/personen.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/personen.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-11
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -202,11 +202,11 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/profil.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/profil.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-11
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/report.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/report.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -94,11 +94,11 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/ki.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/report.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/report.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -127,10 +127,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/scouting.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/scouting.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+42
-9
@@ -9,12 +9,12 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<!-- Nur die Startseite: Begrüßungskachel, Uhr, Glockenmulde. Siehe
|
||||
den Hinweis in start.css -- dort stand es bis zum 07.09.2026. -->
|
||||
<link rel="stylesheet" href="assets/css/heim.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/heim.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -56,6 +56,39 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- ==== Die Mitte der Konsole: drei Ablesungen ================
|
||||
Zwischen Text und Uhr standen rund 300 px Leere -- auf einem
|
||||
1440er Bildschirm nachgemessen, nicht geschaetzt. Eine
|
||||
Konsole mit einem leeren Feld in der Mitte sieht nicht
|
||||
aufgeraeumt aus, sondern unfertig.
|
||||
|
||||
Was hier steht, ist deshalb keine Deko, sondern das, was der
|
||||
Lagesatz daneben NICHT sagt: wie viel heute ansteht, wann das
|
||||
Naechste losgeht, wie viel offen ist.
|
||||
|
||||
KEINE ZWEITE ZAEHLUNG. Die Zahlen kommen aus denselben zwei
|
||||
Quellen, die die Kacheln darunter fuellen (`hinweise` und die
|
||||
Tagestermine). Zwei Rechenwege fuer dieselbe Zahl laufen
|
||||
auseinander, und dann stehen zwei Wahrheiten auf einem
|
||||
Bildschirm.
|
||||
|
||||
Versteckt, solange nichts geladen ist: Drei Striche in einer
|
||||
Fassung sehen aus wie ein Fehler. -->
|
||||
<div class="willkommen__stand" id="tagesstand" hidden>
|
||||
<div class="stand" data-stand="heute">
|
||||
<span class="stand__wert" id="stand-heute">–</span>
|
||||
<span class="stand__schild">Heute</span>
|
||||
</div>
|
||||
<div class="stand" data-stand="naechster">
|
||||
<span class="stand__wert" id="stand-naechster">–</span>
|
||||
<span class="stand__schild">Als Nächstes</span>
|
||||
</div>
|
||||
<div class="stand" data-stand="offen">
|
||||
<span class="stand__wert" id="stand-offen">–</span>
|
||||
<span class="stand__schild">Offen</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ==== Rechts in der Kachel: Glocke und Uhr ==================
|
||||
Die Glocke stand bisher in der Kopfleiste. Dort ist sie eine
|
||||
von sechs Schaltflächen; hier ist sie das, was sie ist -- eine
|
||||
@@ -320,10 +353,10 @@
|
||||
</p>
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/start.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/start.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+11
-11
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -73,11 +73,11 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/ki.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/startcheck.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/ki.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/startcheck.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/profil.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -114,10 +114,10 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/steckbrief.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,13 +9,13 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<!-- Formular- und Dialogstile: seit dem 07.09.2026 steht hier der
|
||||
Dialog "Creator anlegen". -->
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -137,11 +137,11 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/uebersicht.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/uebersicht.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+10
-10
@@ -9,11 +9,11 @@
|
||||
<meta name="theme-color" content="#0674b9" />
|
||||
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080044" />
|
||||
<link rel="stylesheet" href="assets/css/gate.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/start.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202609080105" />
|
||||
<link rel="stylesheet" href="assets/css/module.css?v=202609080105" />
|
||||
</head>
|
||||
|
||||
<body class="start">
|
||||
@@ -178,10 +178,10 @@
|
||||
|
||||
</main>
|
||||
|
||||
<script src="assets/js/wahl.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wissen.js?v=202609080044" defer></script>
|
||||
<script src="assets/js/wahl.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/bereiche.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/kopf.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/glocke.js?v=202609080105" defer></script>
|
||||
<script src="assets/js/wissen.js?v=202609080105" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user