Personen: eine Kategorie je Rolle, Reihenfolge wie auf der Zugangsseite
Wunsch Filipe: "ich will dass die auch immer die gleiche reihenfolge
haben, am besten sogar jeder seine eigene kategorie und die reihenfolge
genau wie in der zugangsseite."
Dabei kam ein echter Fehler ans Licht. Die Abfrage sortierte mit
ORDER BY p.aktiv DESC, <Rolle>, p.name
Das "p.aktiv DESC" stand VOR der Rolle -- dadurch wanderte jede gesperrte
Person ans Ende der GESAMTEN Liste, quer durch alle Rollen. Im Bild vom
31.08.2026 stand der gesperrte Manager BanaStift deshalb ganz unten unter
den Creators. Die Reihenfolge DogFather-Manager-Scout-Creator, die
ueberall sonst gilt (ROLLEN_SORTIERUNG, CLAUDE.md), war ausgerechnet auf
der Personenseite aufgehoben -- und es sah nach Absicht aus.
Jetzt: Rolle zuerst, dann Gesperrtes ans Ende SEINER Rolle, dann Name.
Dazu vier Abschnitte mit Ueberschrift, Anzahl und demselben Zusatztext
wie auf der Zugangsseite ("Eigene Pipeline & Kontakte" usw.) -- wer sich
eben angemeldet hat, findet hier dieselbe Sprache wieder. Eine Rolle ohne
Personen wird weggelassen: Eine leere Ueberschrift ist kein
Ordnungsmerkmal, sondern eine Luecke.
Die Gruppen-Gestaltung kommt aus start.css und wird nur wiederverwendet
-- dieselbe Sprache wie auf der Startseite, kein zweiter Entwurf.
Nebenbei ein Eigentor: Der Kommentar zur Sortierung stand zuerst INNERHALB
der SQL-Zeichenkette und enthielt Rueckwaerts-Anfuehrungszeichen. Die
beenden ein Template-Literal -- der Server startete nicht mehr. Steht
jetzt darueber, mit einem Hinweis darauf.
30 Pruefungen. Neu darunter: dass die vier Abschnitte in genau dieser
Reihenfolge stehen, dass der gesperrte Manager bei den Managern steht und
nicht bei den Creators, und dass zugeklappt nur der DogFather-Abschnitt
da ist.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 317 KiB |
@@ -72,6 +72,14 @@ async function seiteFuer(kontext) {
|
|||||||
|
|
||||||
const lesen = (seite) => seite.evaluate(() => ({
|
const lesen = (seite) => seite.evaluate(() => ({
|
||||||
namen: [...document.querySelectorAll(".person__name")].map((n) => n.textContent.replace(" (du)", "")),
|
namen: [...document.querySelectorAll(".person__name")].map((n) => n.textContent.replace(" (du)", "")),
|
||||||
|
/* Die Abschnitte in der Reihenfolge, in der sie tatsächlich stehen --
|
||||||
|
nicht in der, in der sie gemeint waren. */
|
||||||
|
abschnitte: [...document.querySelectorAll(".gruppe")].map((g) => ({
|
||||||
|
name: g.querySelector(".gruppe__name")?.textContent,
|
||||||
|
zahl: g.querySelector(".gruppe__zahl")?.textContent,
|
||||||
|
unter: g.querySelector(".gruppe__unter")?.textContent,
|
||||||
|
personen: [...g.querySelectorAll(".person__name")].map((n) => n.textContent.replace(" (du)", "")),
|
||||||
|
})),
|
||||||
knopfDa: !document.getElementById("rest-schalter")?.hidden,
|
knopfDa: !document.getElementById("rest-schalter")?.hidden,
|
||||||
knopfText: document.getElementById("rest-schalter-text")?.textContent,
|
knopfText: document.getElementById("rest-schalter-text")?.textContent,
|
||||||
auf: document.getElementById("rest-schalter")?.getAttribute("aria-expanded"),
|
auf: document.getElementById("rest-schalter")?.getAttribute("aria-expanded"),
|
||||||
@@ -90,6 +98,8 @@ console.log("\n1) Standardmäßig nur DogFather");
|
|||||||
console.log(" sichtbar:", r.namen.join(", "));
|
console.log(" sichtbar:", r.namen.join(", "));
|
||||||
console.log(" Knopf: ", r.knopfText);
|
console.log(" Knopf: ", r.knopfText);
|
||||||
ok(r.namen.length === 2, `zwei Personen sichtbar (${r.namen.length})`);
|
ok(r.namen.length === 2, `zwei Personen sichtbar (${r.namen.length})`);
|
||||||
|
ok(r.abschnitte.length === 1 && r.abschnitte[0].name === "DogFather",
|
||||||
|
`zugeklappt steht nur der DogFather-Abschnitt da (${r.abschnitte.map((a) => a.name).join(", ") || "keiner"})`);
|
||||||
ok(r.namen.includes("Dogfather") && r.namen.includes("VanVan"),
|
ok(r.namen.includes("Dogfather") && r.namen.includes("VanVan"),
|
||||||
`Dogfather und VanVan (${r.namen.join(", ")})`);
|
`Dogfather und VanVan (${r.namen.join(", ")})`);
|
||||||
ok(!r.namen.includes("Tili"), "kein Creator");
|
ok(!r.namen.includes("Tili"), "kein Creator");
|
||||||
@@ -113,6 +123,28 @@ console.log("\n2) Auf Knopfdruck kommen alle dazu");
|
|||||||
ok(/Nur DogFather zeigen/.test(r.knopfText || ""), `Knopf bietet das Zuklappen an (${r.knopfText})`);
|
ok(/Nur DogFather zeigen/.test(r.knopfText || ""), `Knopf bietet das Zuklappen an (${r.knopfText})`);
|
||||||
ok(r.auf === "true", `aria-expanded=true (${r.auf})`);
|
ok(r.auf === "true", `aria-expanded=true (${r.auf})`);
|
||||||
ok(r.ueber <= 0, `nichts steht über (${r.ueber}px)`);
|
ok(r.ueber <= 0, `nichts steht über (${r.ueber}px)`);
|
||||||
|
|
||||||
|
console.log(" Abschnitte:", r.abschnitte.map((a) => `${a.name}(${a.zahl})`).join(" → "));
|
||||||
|
ok(r.abschnitte.length === 4, `vier Abschnitte (${r.abschnitte.length})`);
|
||||||
|
ok(r.abschnitte.map((a) => a.name).join(",") === "DogFather,Manager,Scout,Creator",
|
||||||
|
`Reihenfolge wie auf der Zugangsseite (${r.abschnitte.map((a) => a.name).join(", ")})`);
|
||||||
|
ok(r.abschnitte.map((a) => a.zahl).join(",") === "2,1,2,2",
|
||||||
|
`Anzahl je Rolle (${r.abschnitte.map((a) => a.zahl).join(", ")})`);
|
||||||
|
|
||||||
|
/* Der eigentliche Fehler von vorher: Der GESPERRTE Manager stand ganz
|
||||||
|
unten unter den Creators, weil "aktiv" vor der Rolle sortierte. */
|
||||||
|
const manager = r.abschnitte.find((a) => a.name === "Manager");
|
||||||
|
ok(manager?.personen.includes("BanaStift"),
|
||||||
|
`der gesperrte Manager steht bei den Managern (${manager?.personen.join(", ")})`);
|
||||||
|
const creator = r.abschnitte.find((a) => a.name === "Creator");
|
||||||
|
ok(!creator?.personen.includes("BanaStift"), "und nicht mehr bei den Creators");
|
||||||
|
ok(creator?.personen.join(",") === "SpongBobSchwammKopf,Tili",
|
||||||
|
`innerhalb der Rolle nach Namen (${creator?.personen.join(", ")})`);
|
||||||
|
|
||||||
|
/* Dieselben Zusatztexte wie auf der Zugangsseite -- wer sich eben
|
||||||
|
angemeldet hat, findet hier dieselbe Sprache wieder. */
|
||||||
|
ok(r.abschnitte[2]?.unter === "Eigene Pipeline & Kontakte",
|
||||||
|
`Zusatztext wörtlich von der Zugangsseite ("${r.abschnitte[2]?.unter}")`);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("\n3) Der Zustand überlebt das Neuladen");
|
console.log("\n3) Der Zustand überlebt das Neuladen");
|
||||||
|
|||||||
@@ -73,6 +73,19 @@ function nurDogFatherBeiLeitung(req, res, next) {
|
|||||||
|
|
||||||
/* ---------- Übersicht --------------------------------------------------- */
|
/* ---------- Übersicht --------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Sortierung: Die ROLLE zuerst, dann erst der Zustand.
|
||||||
|
|
||||||
|
Vorher stand "p.aktiv DESC" ganz vorn -- dadurch wanderte jede
|
||||||
|
gesperrte Person ans Ende der GESAMTEN Liste, quer durch alle Rollen.
|
||||||
|
Ein gesperrter Manager stand also unter den Creators, und die
|
||||||
|
Reihenfolge DogFather-Manager-Scout-Creator, die ueberall sonst gilt,
|
||||||
|
war ausgerechnet auf der Personenseite aufgehoben.
|
||||||
|
|
||||||
|
Jetzt: Rolle, dann Gesperrtes ans Ende SEINER Rolle, dann Name.
|
||||||
|
|
||||||
|
(Der Kommentar steht bewusst hier und nicht in der Abfrage: Er enthaelt
|
||||||
|
Rueckwaerts-Anfuehrungszeichen, und die beenden mitten in einer
|
||||||
|
Zeichenkette genau diese -- der Server startete danach nicht mehr.) */
|
||||||
personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
|
personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
|
||||||
try {
|
try {
|
||||||
res.json({
|
res.json({
|
||||||
@@ -87,7 +100,7 @@ personenRouter.get("/workspace/api/verwaltung/personen", (req, res) => {
|
|||||||
(SELECT COUNT(*) FROM betreuung y WHERE y.betreuer_id = p.id) AS betreut_anzahl
|
(SELECT COUNT(*) FROM betreuung y WHERE y.betreuer_id = p.id) AS betreut_anzahl
|
||||||
FROM personen p
|
FROM personen p
|
||||||
LEFT JOIN betreuung b ON b.creator_id = p.id
|
LEFT JOIN betreuung b ON b.creator_id = p.id
|
||||||
ORDER BY p.aktiv DESC, ${ROLLEN_SORTIERUNG.replace("rolle", "p.rolle")}, p.name`).all(),
|
ORDER BY ${ROLLEN_SORTIERUNG.replace("rolle", "p.rolle")}, p.aktiv DESC, p.name`).all(),
|
||||||
/* Wer ueberhaupt als zustaendig eingetragen werden kann. */
|
/* Wer ueberhaupt als zustaendig eingetragen werden kann. */
|
||||||
betreuer: db().prepare(
|
betreuer: db().prepare(
|
||||||
"SELECT id, name FROM personen WHERE rolle = 'scout' AND aktiv = 1 ORDER BY name").all(),
|
"SELECT id, name FROM personen WHERE rolle = 'scout' AND aktiv = 1 ORDER BY name").all(),
|
||||||
|
|||||||
@@ -169,3 +169,16 @@
|
|||||||
"Person anlegen" – die Hauptsache gehört ganz nach außen, sonst
|
"Person anlegen" – die Hauptsache gehört ganz nach außen, sonst
|
||||||
springt der Blick beim Suchen daran vorbei. */
|
springt der Blick beim Suchen daran vorbei. */
|
||||||
.kopf-knoepfe { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
|
.kopf-knoepfe { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
|
||||||
|
|
||||||
|
/* Die Anzahl neben der Rollen-Überschrift. Sitzt zwischen Name und
|
||||||
|
Erklärung, damit sie zur Überschrift gehört und nicht zum Zusatztext. */
|
||||||
|
.gruppe__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;
|
||||||
|
font-variant-numeric: tabular-nums;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* In der Personenliste liegen die Karten direkt untereinander; der
|
||||||
|
Abstand zur nächsten Rolle kommt von .gruppe selbst. */
|
||||||
|
.gruppe .person:last-child { margin-bottom: 0; }
|
||||||
|
|||||||
@@ -243,13 +243,51 @@
|
|||||||
let alleZeigen = false;
|
let alleZeigen = false;
|
||||||
try { alleZeigen = localStorage.getItem(SPEICHER) === 'ja'; } catch { /* egal */ }
|
try { alleZeigen = localStorage.getItem(SPEICHER) === 'ja'; } catch { /* egal */ }
|
||||||
|
|
||||||
|
/* Jede Rolle bekommt einen eigenen Abschnitt, in der Reihenfolge der
|
||||||
|
ZUGANGSSEITE: DogFather, Manager, Scout, Creator. Die Zusatztexte
|
||||||
|
stehen dort wörtlich genauso -- wer sich eben angemeldet hat, findet
|
||||||
|
hier dieselbe Sprache wieder.
|
||||||
|
|
||||||
|
Eine Rolle ohne Personen wird weggelassen. Eine leere Überschrift
|
||||||
|
ist kein Ordnungsmerkmal, sondern eine Lücke. */
|
||||||
|
const ROLLEN_ABSCHNITTE = [
|
||||||
|
{ rolle: 'admin', name: 'DogFather', unter: 'Gesamtübersicht & Freigaben' },
|
||||||
|
{ rolle: 'manager', name: 'Manager', unter: 'Betreuung & Freigaben' },
|
||||||
|
{ rolle: 'scout', name: 'Scout', unter: 'Eigene Pipeline & Kontakte' },
|
||||||
|
{ rolle: 'creator', name: 'Creator', unter: 'Eigener Bereich & Fortschritt' },
|
||||||
|
];
|
||||||
|
|
||||||
function listeZeigen() {
|
function listeZeigen() {
|
||||||
const ziel = $('liste');
|
const ziel = $('liste');
|
||||||
ziel.textContent = '';
|
ziel.textContent = '';
|
||||||
|
|
||||||
const oben = alle.filter((p) => p.rolle === 'admin');
|
const oben = alle.filter((p) => p.rolle === 'admin');
|
||||||
const rest = alle.filter((p) => p.rolle !== 'admin');
|
const rest = alle.filter((p) => p.rolle !== 'admin');
|
||||||
for (const p of (alleZeigen ? alle : oben)) ziel.append(zeile(p));
|
const sichtbar = alleZeigen ? alle : oben;
|
||||||
|
|
||||||
|
for (const abschnitt of ROLLEN_ABSCHNITTE) {
|
||||||
|
const drin = sichtbar.filter((p) => p.rolle === abschnitt.rolle);
|
||||||
|
if (!drin.length) continue;
|
||||||
|
|
||||||
|
const block = document.createElement('section');
|
||||||
|
block.className = 'gruppe';
|
||||||
|
const kopf = document.createElement('div');
|
||||||
|
kopf.className = 'gruppe__kopf';
|
||||||
|
const h = document.createElement('h2');
|
||||||
|
h.className = 'gruppe__name';
|
||||||
|
h.textContent = abschnitt.name;
|
||||||
|
const zahl = document.createElement('span');
|
||||||
|
zahl.className = 'gruppe__zahl';
|
||||||
|
zahl.textContent = String(drin.length);
|
||||||
|
const unter = document.createElement('span');
|
||||||
|
unter.className = 'gruppe__unter';
|
||||||
|
unter.textContent = abschnitt.unter;
|
||||||
|
kopf.append(h, zahl, unter);
|
||||||
|
block.append(kopf);
|
||||||
|
|
||||||
|
for (const p of drin) block.append(zeile(p));
|
||||||
|
ziel.append(block);
|
||||||
|
}
|
||||||
|
|
||||||
const schalter = $('rest-schalter');
|
const schalter = $('rest-schalter');
|
||||||
schalter.hidden = rest.length === 0;
|
schalter.hidden = rest.length === 0;
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -134,8 +134,8 @@
|
|||||||
</form>
|
</form>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/aufgaben.js?v=202608312259" defer></script>
|
<script src="assets/js/aufgaben.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/automation.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/automation.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -127,8 +127,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/automation.js?v=202608312259" defer></script>
|
<script src="assets/js/automation.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/bereich.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/bereich.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -98,8 +98,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/bereich.js?v=202608312259" defer></script>
|
<script src="assets/js/bereich.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/calls.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/calls.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -49,9 +49,9 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/ki.js?v=202608312259" defer></script>
|
<script src="assets/js/ki.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/calls.js?v=202608312259" defer></script>
|
<script src="assets/js/calls.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/content.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/content.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -153,8 +153,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/content.js?v=202608312259" defer></script>
|
<script src="assets/js/content.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/dateien.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/dateien.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -88,8 +88,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/dateien.js?v=202608312259" defer></script>
|
<script src="assets/js/dateien.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
type="image/webp" media="(max-width: 899px)" />
|
type="image/webp" media="(max-width: 899px)" />
|
||||||
|
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="gate">
|
<body class="gate">
|
||||||
@@ -143,6 +143,6 @@
|
|||||||
</p>
|
</p>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/gate.js?v=202608312259" defer></script>
|
<script src="assets/js/gate.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/kalender.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/kalender.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -94,8 +94,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kalender.js?v=202608312259" defer></script>
|
<script src="assets/js/kalender.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/personen.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/personen.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -116,8 +116,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/personen.js?v=202608312259" defer></script>
|
<script src="assets/js/personen.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/profil.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/profil.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -127,8 +127,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/profil.js?v=202608312259" defer></script>
|
<script src="assets/js/profil.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/report.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/report.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -86,9 +86,9 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/ki.js?v=202608312259" defer></script>
|
<script src="assets/js/ki.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/report.js?v=202608312259" defer></script>
|
<script src="assets/js/report.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/scouting.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/scouting.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -124,8 +124,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/scouting.js?v=202608312259" defer></script>
|
<script src="assets/js/scouting.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -68,8 +68,8 @@
|
|||||||
</p>
|
</p>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/start.js?v=202608312259" defer></script>
|
<script src="assets/js/start.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/startcheck.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/startcheck.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -65,9 +65,9 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/ki.js?v=202608312259" defer></script>
|
<script src="assets/js/ki.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/startcheck.js?v=202608312259" defer></script>
|
<script src="assets/js/startcheck.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/uebersicht.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/uebersicht.js?v=202608312259" defer></script>
|
<script src="assets/js/uebersicht.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
<meta name="robots" content="noindex, nofollow" />
|
<meta name="robots" content="noindex, nofollow" />
|
||||||
<meta name="theme-color" content="#05070d" />
|
<meta name="theme-color" content="#05070d" />
|
||||||
<link rel="icon" href="assets/img/favicon.png" />
|
<link rel="icon" href="assets/img/favicon.png" />
|
||||||
<link rel="stylesheet" href="assets/css/gate.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/gate.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/start.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/start.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/aufgaben.css?v=202608312305" />
|
||||||
<link rel="stylesheet" href="assets/css/wissen.css?v=202608312259" />
|
<link rel="stylesheet" href="assets/css/wissen.css?v=202608312305" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="start">
|
<body class="start">
|
||||||
@@ -170,8 +170,8 @@
|
|||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="assets/js/wahl.js?v=202608312259" defer></script>
|
<script src="assets/js/wahl.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/kopf.js?v=202608312259" defer></script>
|
<script src="assets/js/kopf.js?v=202608312305" defer></script>
|
||||||
<script src="assets/js/wissen.js?v=202608312259" defer></script>
|
<script src="assets/js/wissen.js?v=202608312305" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user