From 0cce22c08cfd0854e0df04f12f4feee9bf5ff846 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Mon, 14 Sep 2026 16:34:42 +0200 Subject: [PATCH] Der Einzel-Import kennt den dritten Ausgang jetzt auch Nach dem Umbau von heute Nachmittag habe ich nachgesehen, WER tagAusZelle() sonst noch ruft -- und genau dort die naechste Luecke gefunden, bevor sie jemanden getroffen hat. DIE FUNKTION HAT SEIT HEUTE DREI AUSGAENGE (Tag, Zeitraum, Grund). Gekannt hat den dritten nur der Backstage-Weg. Im Einzel-Import stand weiterhin `gelesen.tag` -- bei einem Zeitraum `undefined`: VORSCHAU: `undefined > heute` ist false, die Zeile faellt durch und landet mit `tag: undefined` in der Liste. SCHREIBWEG: `if (!tag)` greift, die Zeile wird still uebersprungen. Die Vorschau haette also eine Zeile versprochen, die danach nirgends steht. Zwei Aussagen ueber dieselbe Datei, die einander widersprechen, und beide sehen fuer sich plausibel aus -- das ist der Unterschied, den niemand bemerkt. Das ist an diesem Tag die FUENFTE Wiederholung derselben Sache: eine Regel, mehrere Aufrufer, und einer kennt sie nicht. Ein dritter Ausgang taugt nur, wenn ihn ALLE Aufrufer kennen. Jetzt legt auch der Einzel-Import einen Zeitraum in leistung_zeitraum ab -- dieselbe Tabelle, dieselbe Regel, dieselbe Anzeige. Und die Dauer-Einheit gilt dort ebenfalls; sie fehlte in der Vorschau noch. DIE MELDUNG SAGT JETZT, WAS ANGEKOMMEN IST: "1 Zeitraum uebernommen" statt "1 Tage uebernommen". Bei einer Backstage-Ausgabe ueber zwei Wochen haette man sie sonst in der Tagesliste gesucht und nicht gefunden. pruef-backstage-import 106 -> 118. Die Pruefung, auf die es ankommt, vergleicht VORSCHAU UND ERGEBNIS: Was die Vorschau verspricht, muss danach dastehen -- genau die Aussage, die vorher falsch gewesen waere. Dazu, dass in der Vorschau die Spanne steht und kein leerer Tag, und die Gegenprobe, dass eine echte Tagesdatei weiterhin als Tage durchgeht. ZWEI EIGENE FEHLER DABEI: Ich habe `.length` auf eine Zahl angewendet (`fehlerhaft` ist eine Anzahl, keine Liste) -- immer `undefined`, immer rot. Und zum zweiten Mal heute den Absolutwert gemessen, wo die Veraenderung gehoert: Lumi hatte aus einem frueheren Teil der Pruefung schon eine Tageszeile in derselben Spanne. Co-Authored-By: Claude Opus 5 --- server/pruef-backstage-import.mjs | 87 +++++++++++++++++++++++++++++++ server/workspace-leistung.js | 71 +++++++++++++++++++++++-- workspace/app.webmanifest | 8 +-- workspace/assets/js/leistung.js | 9 +++- workspace/aufgaben.html | 24 ++++----- workspace/automation.html | 26 ++++----- workspace/bereich.html | 34 ++++++------ workspace/calls.html | 28 +++++----- workspace/chat.html | 26 ++++----- workspace/content.html | 30 +++++------ workspace/crew-index.html | 10 ++-- workspace/crew.webmanifest | 8 +-- workspace/dateien.html | 26 ++++----- workspace/entwicklung.html | 24 ++++----- workspace/index.html | 8 +-- workspace/kalender.html | 28 +++++----- workspace/leistung.html | 26 ++++----- workspace/personen.html | 26 ++++----- workspace/profil.html | 28 +++++----- workspace/rechte.html | 24 ++++----- workspace/report.html | 28 +++++----- workspace/scouting.html | 26 ++++----- workspace/start.html | 24 ++++----- workspace/startcheck.html | 28 +++++----- workspace/steckbrief.html | 26 ++++----- workspace/talente.html | 24 ++++----- workspace/team.html | 26 ++++----- workspace/teamlage.html | 24 ++++----- workspace/treff-moderation.html | 24 ++++----- workspace/treff-regeln.html | 24 ++++----- workspace/uebersicht.html | 26 ++++----- workspace/wissen.html | 26 ++++----- 32 files changed, 507 insertions(+), 350 deletions(-) diff --git a/server/pruef-backstage-import.mjs b/server/pruef-backstage-import.mjs index a1c6a26d..a9c10f43 100644 --- a/server/pruef-backstage-import.mjs +++ b/server/pruef-backstage-import.mjs @@ -452,6 +452,93 @@ for (const [rolle, code, wer] of [ } +{ + /* ---- DER EINZEL-IMPORT KENNT DEN DRITTEN AUSGANG (14.09.2026) ---- + Als tagAusZelle() den Zeitraum dazubekam, kannte ihn nur der + Backstage-Weg. Im Einzel-Import stand weiterhin `gelesen.tag` -- + bei einem Zeitraum `undefined`. Folge: Die VORSCHAU haette die + Zeile gezaehlt, der SCHREIBWEG sie still uebersprungen. + + Zwei Aussagen ueber dieselbe Datei, die einander widersprechen -- + das ist der Unterschied, den niemand bemerkt, weil beide Seiten + fuer sich plausibel aussehen. + + GEPRUEFT WIRD DESHALB DER ABGLEICH: Was die Vorschau verspricht, + muss danach dastehen. */ + const datei = [ + "Datum;Diamanten;LIVE-Dauer", + "2026-09-01 ~ 2026-09-11;53.679;86Std. 10Min. 52Sek.", + ].join("\n"); + + /* WIE VIELE TAGESZEILEN LUMI SCHON HAT. Zum zweiten Mal heute derselbe + Griff: Der Backstage-Import weiter oben hat ihr bereits einen Tag + geschrieben, der in dieselbe Spanne faellt. Gemessen wird die + VERAENDERUNG, nicht der Absolutwert. */ + const tageVorLumi = (() => { + const d0 = new DatabaseSync(DB, { readOnly: true }); + const n = d0.prepare( + "SELECT COUNT(*) AS n FROM leistung WHERE creator_id = ? AND tag >= '2026-09-01' AND tag <= '2026-09-11'") + .get(idLumi).n; + d0.close(); + return n; + })(); + + const v = await ruf(`/workspace/api/leistung/${idLumi}/import/vorschau`, + keksDogi, { text: datei }); + ok(v.status === 200, `die Vorschau nimmt den Zeitraum an (HTTP ${v.status})`); + const versprochen = (v.daten?.neu ?? 0) + (v.daten?.ersetzt ?? 0); + ok(versprochen === 1, `sie verspricht genau eine Zeile (${versprochen})`); + /* `fehlerhaft` ist eine ZAHL, keine Liste -- nachgesehen in der + Antwort, nicht geraten. Beim ersten Anlauf stand hier `.length` + auf einer Zahl: immer `undefined`, immer ungleich 0, immer rot. */ + ok((v.daten?.fehlerhaft ?? -1) === 0, + `und meldet keinen Fehler (${v.daten?.fehlerhaft})`); + /* KEIN `undefined` IN DER VORSCHAU. Der alte Weg haette hier eine + Zeile mit `tag: undefined` gezeigt -- sichtbar als leere Spalte. */ + const beispiel = (v.daten?.beispiele || [])[0] + || (v.daten?.ersetzt_beispiele || [])[0] || {}; + ok(beispiel.von === "2026-09-01" && beispiel.bis === "2026-09-11", + `und nennt die Spanne statt eines leeren Tages (${beispiel.von}–${beispiel.bis})`); + ok(beispiel.tage === 11, `mit der Zahl der Tage (${beispiel.tage})`); + + const s = await ruf(`/workspace/api/leistung/${idLumi}/import`, + keksDogi, { text: datei }); + ok(s.status === 200, `der Import laeuft (HTTP ${s.status})`); + const angekommen = (s.daten?.geschrieben ?? 0) + (s.daten?.zeitraeume ?? 0); + ok(angekommen === versprochen, + `es kommt an, was die Vorschau versprochen hat (${versprochen} -> ${angekommen})`); + ok(s.daten?.zeitraeume === 1 && s.daten?.geschrieben === 0, + `und zwar als Zeitraum, nicht als Tag (${s.daten?.zeitraeume} / ${s.daten?.geschrieben})`); + + { + const d2 = new DatabaseSync(DB, { readOnly: true }); + const z = d2.prepare( + "SELECT * FROM leistung_zeitraum WHERE creator_id = ?").get(idLumi); + const tage = d2.prepare( + "SELECT COUNT(*) AS n FROM leistung WHERE creator_id = ? AND tag >= '2026-09-01' AND tag <= '2026-09-11'") + .get(idLumi).n; + d2.close(); + ok(z?.tage === 11 && z?.diamanten === 53679, + `er steht in der Datenbank (${z?.tage} Tage, ${z?.diamanten} Diamanten)`); + ok(z?.dauer_min === 5171, `mit der Dauer in Minuten (${z?.dauer_min})`); + ok(tage === tageVorLumi, + `und KEINE Tageszeile kam hinzu (${tageVorLumi} -> ${tage})`); + } + + /* GEGENPROBE: Eine Datei mit echten Tagen geht weiterhin als Tage + durch -- sonst hiesse alles oben nur, dass jetzt alles ein + Zeitraum ist. */ + const tagesdatei = [ + "Datum;Diamanten", + `${gestern};1.111`, + ].join("\n"); + const t = await ruf(`/workspace/api/leistung/${idLumi}/import`, + keksDogi, { text: tagesdatei }); + ok(t.daten?.geschrieben === 1 && (t.daten?.zeitraeume ?? 0) === 0, + `eine Tagesdatei bleibt eine Tagesdatei (${t.daten?.geschrieben} Tag, ` + + `${t.daten?.zeitraeume} Zeitraeume)`); +} + /* ======================================================================= 7. Und die Seite selbst ======================================================================= */ diff --git a/server/workspace-leistung.js b/server/workspace-leistung.js index 991c7a4d..acc96fd3 100644 --- a/server/workspace-leistung.js +++ b/server/workspace-leistung.js @@ -1244,15 +1244,52 @@ leistungRouter.post("/workspace/api/leistung/:creatorId/import/vorschau", gleich const fehlerhaft = []; for (let i = 1; i < zeilen.length; i++) { const z = zeilen[i]; + /* DER DRITTE AUSGANG MUSS HIER GENAUSO ANKOMMEN wie im + Backstage-Weg (14.09.2026). + + Als tagAusZelle() den Zeitraum bekam, stand hier weiterhin + nur `gelesen.tag`. Bei einem Zeitraum war der `undefined`, + der Vergleich mit heute wurde still falsch, und die Zeile + landete mit `tag: undefined` in der Vorschau -- waehrend der + Schreibweg daneben sie kommentarlos uebersprang. Vorschau + und Ergebnis haetten sich widersprochen, und das ist der + Unterschied, den niemand bemerkt. + + Ein dritter Ausgang taugt nur, wenn ihn ALLE Aufrufer + kennen. Das ist an diesem Tag die fuenfte Wiederholung + derselben Sache -- gefunden, bevor sie jemanden getroffen + hat, weil ich nach dem Umbau nachgesehen habe, wer die + Funktion sonst noch ruft. */ const gelesen = tagAusZelle(z[zu.tag]); if (gelesen.fehler) { fehlerhaft.push({ zeile: i + 1, grund: gelesen.fehler }); continue; } + + if (gelesen.zeitraum) { + const { von, bis } = gelesen.zeitraum; + if (bis > tagVor(0)) { + fehlerhaft.push({ zeile: i + 1, grund: `${bis} liegt in der Zukunft` }); + continue; + } + const wertez = { von, bis, tage: tageImZeitraum(von, bis) }; + for (const [feld, spalte] of Object.entries(zu)) { + if (feld === "tag" || spalte === undefined) continue; + wertez[feld] = feld === "dauer_min" ? dauerLesen(z[spalte]) : zahlLesen(z[spalte]); + } + const daz = db().prepare( + "SELECT 1 FROM leistung_zeitraum WHERE creator_id = ? AND von = ? AND bis = ?") + .get(creatorId, von, bis); + (daz ? ersetzt : neu).push(wertez); + continue; + } + const tag = gelesen.tag; if (tag > tagVor(0)) { fehlerhaft.push({ zeile: i + 1, grund: `${tag} liegt in der Zukunft` }); continue; } const werte = { tag }; for (const [feld, spalte] of Object.entries(zu)) { if (feld === "tag" || spalte === undefined) continue; - werte[feld] = zahlLesen(z[spalte]); + /* Die Dauer hat eine Einheit, die uebrigen Felder nicht -- + dieselbe Unterscheidung wie im Backstage-Weg. */ + werte[feld] = feld === "dauer_min" ? dauerLesen(z[spalte]) : zahlLesen(z[spalte]); } const vorhanden = db().prepare( "SELECT 1 FROM leistung WHERE creator_id = ? AND tag = ?").get(creatorId, tag); @@ -1301,15 +1338,41 @@ leistungRouter.post("/workspace/api/leistung/:creatorId/import", gleicheHerkunft (SELECT notiz FROM leistung WHERE creator_id = ? AND tag = ?), ?,?, 'import')`); - let geschrieben = 0, uebersprungen = 0; + /* Der zweite Weg, wie im Backstage-Import: Ein Zeitraum geht in + seine eigene Tabelle. */ + const spanneSchreiben = d.prepare(` + INSERT OR REPLACE INTO leistung_zeitraum + (creator_id, von, bis, tage, diamanten, dauer_min, gueltige_tage, + zuschauer_avg, zuschauer_max, verweildauer_s, schenker, follower_neu, + erfasst, erfasst_von) + VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)`); + + let geschrieben = 0, uebersprungen = 0, spannen = 0; d.exec("BEGIN"); try { for (let i = 1; i < zeilen.length; i++) { const z = zeilen[i]; /* Dieselbe Regel wie in der Vorschau -- sonst zeigt die Vorschau etwas anderes an, als geschrieben wird. Genau das - ist der Unterschied, den niemand bemerkt. */ + ist der Unterschied, den niemand bemerkt. + + UND DERSELBE DRITTE AUSGANG: Ohne diesen Zweig wuerde ein + Zeitraum hier still uebersprungen, waehrend die Vorschau + ihn zaehlt. */ const gelesen = tagAusZelle(z[zu.tag]); + const wz = (feld) => (zu[feld] === undefined ? null + : (feld === "dauer_min" ? dauerLesen(z[zu[feld]]) : zahlLesen(z[zu[feld]]))); + if (gelesen.zeitraum) { + const { von, bis } = gelesen.zeitraum; + if (bis > tagVor(0)) { uebersprungen++; continue; } + spanneSchreiben.run(creatorId, von, bis, tageImZeitraum(von, bis), + wz("diamanten"), wz("dauer_min"), wz("gueltige_tage"), + wz("zuschauer_avg"), wz("zuschauer_max"), wz("verweildauer_s"), + wz("schenker"), wz("follower_neu"), + jetzt(), req.person.id); + spannen++; + continue; + } const tag = gelesen.tag; if (!tag || tag > tagVor(0)) { uebersprungen++; continue; } const w = (feld) => (zu[feld] === undefined ? null : zahlLesen(z[zu[feld]])); @@ -1338,7 +1401,7 @@ leistungRouter.post("/workspace/api/leistung/:creatorId/import", gleicheHerkunft personId: req.person.id, rolle: req.person.rolle, ip: echteIp(req), detail: `Creator #${creatorId}: ${geschrieben} Tage`, }); - res.json({ ok: true, geschrieben, uebersprungen }); + res.json({ ok: true, geschrieben, zeitraeume: spannen, uebersprungen }); } catch (fehler) { console.error("[leistung] Import:", fehler?.message); res.status(503).json({ fehler: "nicht_verfuegbar" }); diff --git a/workspace/app.webmanifest b/workspace/app.webmanifest index e6c81009..fa1df43b 100644 --- a/workspace/app.webmanifest +++ b/workspace/app.webmanifest @@ -13,25 +13,25 @@ "theme_color": "#06090f", "icons": [ { - "src": "/assets/img/app-symbole/workspace-192.png?v=202609141622", + "src": "/assets/img/app-symbole/workspace-192.png?v=202609141634", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-512.png?v=202609141622", + "src": "/assets/img/app-symbole/workspace-512.png?v=202609141634", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609141622", + "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609141634", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609141622", + "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609141634", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/assets/js/leistung.js b/workspace/assets/js/leistung.js index 6b796674..dd69bc7e 100644 --- a/workspace/assets/js/leistung.js +++ b/workspace/assets/js/leistung.js @@ -626,7 +626,14 @@ $('datei').value = ''; importText = ''; await allesLaden(); - melde(`${r.geschrieben} Tage übernommen.`); + /* WAS GENAU ANGEKOMMEN IST -- Tage und Zeitraeume getrennt. + "2 Tage uebernommen" waere bei einer Backstage-Ausgabe ueber + zwei Wochen schlicht falsch; man wuerde sie in der Tagesliste + suchen und nicht finden. */ + const teile = []; + if (r.geschrieben) teile.push(`${r.geschrieben} Tag${r.geschrieben === 1 ? '' : 'e'}`); + if (r.zeitraeume) teile.push(`${r.zeitraeume} Zeitraum${r.zeitraeume === 1 ? '' : 'e'}`); + melde(teile.length ? `${teile.join(' und ')} übernommen.` : 'Nichts zu übernehmen.'); setTimeout(() => melde(''), 5000); } catch { /* umgeleitet */ } finally { knopf.disabled = false; } } diff --git a/workspace/aufgaben.html b/workspace/aufgaben.html index e8ca170c..ec1ac400 100644 --- a/workspace/aufgaben.html +++ b/workspace/aufgaben.html @@ -12,19 +12,19 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - + + + + + + - + @@ -252,10 +252,10 @@ - - - - - + + + + + diff --git a/workspace/automation.html b/workspace/automation.html index e075516b..eaec99c2 100644 --- a/workspace/automation.html +++ b/workspace/automation.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -147,10 +147,10 @@ - - - - - + + + + + diff --git a/workspace/bereich.html b/workspace/bereich.html index f7f54d44..9fdb9b20 100644 --- a/workspace/bereich.html +++ b/workspace/bereich.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -181,14 +181,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/workspace/calls.html b/workspace/calls.html index 3aa54e2e..e7d17b57 100644 --- a/workspace/calls.html +++ b/workspace/calls.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -89,11 +89,11 @@ - - - - - - + + + + + + diff --git a/workspace/chat.html b/workspace/chat.html index 59c42952..afc9a568 100644 --- a/workspace/chat.html +++ b/workspace/chat.html @@ -12,26 +12,26 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - + + + + - - - + + + - + @@ -341,10 +341,10 @@ - - - - - + + + + + diff --git a/workspace/content.html b/workspace/content.html index 1ac802ed..9633b5c5 100644 --- a/workspace/content.html +++ b/workspace/content.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -179,12 +179,12 @@ - - - - - - - + + + + + + + diff --git a/workspace/crew-index.html b/workspace/crew-index.html index 04ca4592..0b9da1c0 100644 --- a/workspace/crew-index.html +++ b/workspace/crew-index.html @@ -36,15 +36,15 @@ - - - + + + - + @@ -319,6 +319,6 @@ - + diff --git a/workspace/crew.webmanifest b/workspace/crew.webmanifest index f6d3b088..abd628b0 100644 --- a/workspace/crew.webmanifest +++ b/workspace/crew.webmanifest @@ -13,25 +13,25 @@ "theme_color": "#06090f", "icons": [ { - "src": "/assets/img/app-symbole/crew-192.png?v=202609141622", + "src": "/assets/img/app-symbole/crew-192.png?v=202609141634", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/crew-512.png?v=202609141622", + "src": "/assets/img/app-symbole/crew-512.png?v=202609141634", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609141622", + "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609141634", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609141622", + "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609141634", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/dateien.html b/workspace/dateien.html index 2c6dd4de..4a8ea19c 100644 --- a/workspace/dateien.html +++ b/workspace/dateien.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -108,10 +108,10 @@ - - - - - + + + + + diff --git a/workspace/entwicklung.html b/workspace/entwicklung.html index 446f6ebd..412779e3 100644 --- a/workspace/entwicklung.html +++ b/workspace/entwicklung.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -94,9 +94,9 @@ - - - - + + + + diff --git a/workspace/index.html b/workspace/index.html index 642d93d0..1e14ba6e 100644 --- a/workspace/index.html +++ b/workspace/index.html @@ -30,9 +30,9 @@ - - - + + + @@ -401,6 +401,6 @@ - + diff --git a/workspace/kalender.html b/workspace/kalender.html index e7d56fb2..ed865034 100644 --- a/workspace/kalender.html +++ b/workspace/kalender.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -377,11 +377,11 @@ - - - - - - + + + + + + diff --git a/workspace/leistung.html b/workspace/leistung.html index 21ba97b2..60e6ed72 100644 --- a/workspace/leistung.html +++ b/workspace/leistung.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -412,10 +412,10 @@ - - - - - + + + + + diff --git a/workspace/personen.html b/workspace/personen.html index ed24295b..38dd17c5 100644 --- a/workspace/personen.html +++ b/workspace/personen.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -423,10 +423,10 @@ - - - - - + + + + + diff --git a/workspace/profil.html b/workspace/profil.html index 40848bda..ba9ae4fb 100644 --- a/workspace/profil.html +++ b/workspace/profil.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -214,11 +214,11 @@ - - - - - - + + + + + + diff --git a/workspace/rechte.html b/workspace/rechte.html index 5da042d5..35f4df79 100644 --- a/workspace/rechte.html +++ b/workspace/rechte.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -134,9 +134,9 @@ Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, die seit dem 07.09. jede Seite danach absucht. --> - - - - + + + + diff --git a/workspace/report.html b/workspace/report.html index f4c7a57d..d74d021c 100644 --- a/workspace/report.html +++ b/workspace/report.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -106,11 +106,11 @@ - - - - - - + + + + + + diff --git a/workspace/scouting.html b/workspace/scouting.html index a46c1e7b..e018d18e 100644 --- a/workspace/scouting.html +++ b/workspace/scouting.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -173,10 +173,10 @@ - - - - - + + + + + diff --git a/workspace/start.html b/workspace/start.html index 3222f3af..3fd68827 100644 --- a/workspace/start.html +++ b/workspace/start.html @@ -12,21 +12,21 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - + + + + - - + + - + @@ -674,10 +674,10 @@

- - - - - + + + + + diff --git a/workspace/startcheck.html b/workspace/startcheck.html index 4463a28d..06989fd9 100644 --- a/workspace/startcheck.html +++ b/workspace/startcheck.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -85,11 +85,11 @@ - - - - - - + + + + + + diff --git a/workspace/steckbrief.html b/workspace/steckbrief.html index 5dddc5f2..415c750d 100644 --- a/workspace/steckbrief.html +++ b/workspace/steckbrief.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -126,10 +126,10 @@ - - - - - + + + + + diff --git a/workspace/talente.html b/workspace/talente.html index 5c3ba8ec..1ee13a84 100644 --- a/workspace/talente.html +++ b/workspace/talente.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -94,9 +94,9 @@ - - - - + + + + diff --git a/workspace/team.html b/workspace/team.html index 1ebc80d4..f7157bbe 100644 --- a/workspace/team.html +++ b/workspace/team.html @@ -7,20 +7,20 @@ - - - - - - - + + + + + + + - + @@ -110,10 +110,10 @@ - - - - - + + + + + diff --git a/workspace/teamlage.html b/workspace/teamlage.html index eeb66ad5..3da4ee20 100644 --- a/workspace/teamlage.html +++ b/workspace/teamlage.html @@ -7,20 +7,20 @@ - - - - - - - + + + + + + + - + - - - - + + + + diff --git a/workspace/treff-moderation.html b/workspace/treff-moderation.html index c9fbb10c..4e3bd721 100644 --- a/workspace/treff-moderation.html +++ b/workspace/treff-moderation.html @@ -7,14 +7,14 @@ - - - - - - - - + + + + + + + + @@ -110,9 +110,9 @@ - - - - + + + + diff --git a/workspace/treff-regeln.html b/workspace/treff-regeln.html index b364348c..5cc49ad8 100644 --- a/workspace/treff-regeln.html +++ b/workspace/treff-regeln.html @@ -7,18 +7,18 @@ - - - - - - - + + + + + + + - + @@ -190,9 +190,9 @@ Beim ersten Anlauf fehlte die Zeile auf genau diesen beiden neuen Seiten. Gefunden hat das nicht das Auge, sondern pruef-css-klassen, die seit dem 07.09. jede Seite danach absucht. --> - - - - + + + + diff --git a/workspace/uebersicht.html b/workspace/uebersicht.html index b5df79bd..8d7d7a4d 100644 --- a/workspace/uebersicht.html +++ b/workspace/uebersicht.html @@ -12,22 +12,22 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - + + + + - - - + + + - + @@ -149,11 +149,11 @@ - + - - - - + + + + diff --git a/workspace/wissen.html b/workspace/wissen.html index 8bf49ac3..1424883a 100644 --- a/workspace/wissen.html +++ b/workspace/wissen.html @@ -12,20 +12,20 @@ Ton wie die Kopfleiste darunter (#06090f), damit Leiste und Seite eine Flaeche sind statt zweier. --> - - - - - - - + + + + + + + - + @@ -190,10 +190,10 @@ - - - - - + + + + +