diff --git a/server/pruef-backstage-import.mjs b/server/pruef-backstage-import.mjs index 532f333e..977c5efb 100644 --- a/server/pruef-backstage-import.mjs +++ b/server/pruef-backstage-import.mjs @@ -386,6 +386,75 @@ console.log("\n=== Die Seite ==="); ok(/Steckbrief/.test(anleitung), "und woher die Zuordnung kommt (TikTok-Name im Steckbrief)"); + /* ---- ARBEIT ZUERST, ANLEITUNG DAHINTER (11.09.2026) ------------- + Filipe: "perfektionnier auch diese kachel die sieht so scheisse + aus." Fuenf lange Schritte standen VOR dem Einfuegefeld. + + DIE ZEILEN OBEN WUERDEN AUCH GRUEN BLEIBEN, WENN DIE ANLEITUNG + WIEDER NACH VORN RUTSCHT -- `textContent` liest den ganzen Dialog + und kennt keine Reihenfolge. Deshalb wird hier die POSITION + gemessen, in Pixeln, an der laufenden Seite. + + Und die eine Angabe, ohne die es gar nicht geht (die + Ueberschriftenzeile), muss SICHTBAR sein, ohne dass jemand + aufklappt. Sie hinter einen Klick zu legen hiesse, den + haeufigsten Fehlgriff zu verstecken. */ + const bau = await seite.evaluate(() => { + const o = (id) => document.getElementById(id)?.getBoundingClientRect().top ?? -1; + const hilfe = document.getElementById("netz-hilfe"); + const sichtbar = [...document.querySelectorAll("#netz-form > *")] + .filter((e) => e !== hilfe && !e.hidden) + .map((e) => e.textContent).join(" "); + return { + feld: o("netz-text"), hilfe: o("netz-hilfe"), + offen: hilfe?.open === true, + sichtbar, + zeileHoch: document.getElementById("netz-hilfe")?.offsetHeight ?? 0, + }; + }); + ok(bau.feld > 0 && bau.hilfe > bau.feld, + `das Einfügefeld steht VOR der Anleitung (${Math.round(bau.feld)} px zu ` + + `${Math.round(bau.hilfe)} px)`); + ok(bau.offen === false, "die Anleitung ist zugeklappt -- sie steht im Weg, wer sie kennt"); + ok(/Überschriftenzeile/.test(bau.sichtbar), + "trotzdem steht die Überschriftenzeile schon oben, ohne Aufklappen"); + ok(bau.zeileHoch > 0 && bau.zeileHoch < 90, + `zugeklappt nimmt sie kaum Platz (${bau.zeileHoch} px)`); + + /* Und sie laesst sich wirklich oeffnen -- ein Aufklapper, der nicht + aufklappt, versteckt die Anleitung endgueltig. */ + await seite.click("#netz-hilfe > summary"); + await seite.waitForTimeout(300); + const auf = await seite.evaluate(() => { + const h = document.getElementById("netz-hilfe"); + const ol = document.querySelector("#netz-hilfe .anleitung"); + return { offen: h?.open === true, hoch: ol?.offsetHeight ?? 0 }; + }); + ok(auf.offen === true && auf.hoch > 80, + `aufgeklappt stehen die Schritte da (${auf.hoch} px)`); + await seite.click("#netz-hilfe > summary"); + await seite.waitForTimeout(200); + if (process.env.SCHIRM) { + await seite.locator("#netz-dialog").screenshot( + { path: join(HIER, "pruef-netz-zu.png") }); + await seite.click("#netz-hilfe > summary"); + await seite.waitForTimeout(300); + await seite.locator("#netz-dialog").screenshot( + { path: join(HIER, "pruef-netz-auf.png") }); + await seite.click("#netz-hilfe > summary"); + await seite.waitForTimeout(200); + /* Und der Zustand, den man beim OEFFNEN sieht -- genau der, ueber + den Filipe gestolpert ist. */ + await seite.evaluate(() => { + document.getElementById("netz-text").value = ""; + document.getElementById("netz-vorschau").hidden = true; + document.getElementById("netz-tag").value = ""; + }); + await seite.waitForTimeout(200); + await seite.locator("#netz-dialog").screenshot( + { path: join(HIER, "pruef-netz-leer.png") }); + } + await seite.click("#netz-zu"); await seite.waitForTimeout(300); /* Gemessen wird SATZ FUER SATZ, nicht der Block. Ein Block, der diff --git a/workspace/app.webmanifest b/workspace/app.webmanifest index 64591473..f1d61de6 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=202609111545", + "src": "/assets/img/app-symbole/workspace-192.png?v=202609111554", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-512.png?v=202609111545", + "src": "/assets/img/app-symbole/workspace-512.png?v=202609111554", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609111545", + "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609111554", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609111545", + "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609111554", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/assets/css/leistung.css b/workspace/assets/css/leistung.css index b8ca5faa..7a987f57 100644 --- a/workspace/assets/css/leistung.css +++ b/workspace/assets/css/leistung.css @@ -347,12 +347,78 @@ Reihenfolge liest und nicht als Aufzählung -- bei einer Anleitung ist die Reihenfolge die halbe Auskunft. */ .anleitung { - margin: 4px 0 14px; padding: 0 0 0 1.6em; - font-size: .86rem; line-height: 1.6; - color: var(--text-leise); + margin: 10px 0 12px; padding: 0 0 0 1.5em; + font-size: .83rem; line-height: 1.55; + color: var(--text-still); } -.anleitung li { margin: 0 0 7px; } +.anleitung li { margin: 0 0 6px; } .anleitung li::marker { color: var(--akzent); font-weight: 700; } -.anleitung strong { color: var(--text); } +.anleitung strong { color: var(--text-leise); } .dialog__unter--still { font-size: .8rem; color: var(--text-still); } + +/* ---- EINGEKLAPPTE HILFE (11.09.2026) ------------------------------ + Filipe zum Backstage-Fenster: "die sieht so scheisse aus." + + Der Grund war nicht die Farbe, sondern die Reihenfolge: Fuenf lange + Schritte standen VOR dem Feld, in das man einfuegt. Wer das Fenster + oft benutzt, scrollte jedes Mal an einer Anleitung vorbei, die er + laengst kennt. + + Jetzt liegt sie unter einer Zeile, die man aufklappen KANN. Kein + Kasten, kein Rahmen -- nur ein Pfeil und eine stille Zeile, damit + sie im geschlossenen Zustand fast nichts vom Fenster wegnimmt. */ +.hilfe { + margin: 14px 0 4px; + border-top: 1px solid var(--rand); + padding-top: 10px; +} +.hilfe > summary { + display: flex; align-items: center; gap: 7px; + list-style: none; cursor: pointer; + font-size: .82rem; color: var(--text-still); + padding: 3px 0; + transition: color var(--tempo); +} +.hilfe > summary::-webkit-details-marker { display: none; } +/* Der Pfeil wird gedreht statt ausgetauscht -- ein Zeichen, zwei + Zustaende, und die Drehung sagt von selbst, was passiert. */ +.hilfe > summary::before { + content: ""; flex: none; + width: 7px; height: 7px; + border-right: 1.6px solid currentColor; + border-bottom: 1.6px solid currentColor; + transform: rotate(-45deg); + transition: transform var(--tempo); +} +.hilfe[open] > summary::before { transform: rotate(45deg); } +.hilfe > summary:hover { color: var(--text-leise); } +.hilfe > summary:focus-visible { outline: 2px solid var(--akzent); outline-offset: 3px; } +.hilfe__satz { + margin: 0 0 8px; font-size: .8rem; line-height: 1.55; + color: var(--text-still); +} +.hilfe__satz strong { color: var(--text-leise); } + +/* Der Tag steht neben seinem Hinweis, nicht in der Beschriftung. Vorher + hing der ganze Erklaersatz in der Ueberschrift des Feldes und machte + sie zweizeilig -- eine Beschriftung, die man lesen muss, ist keine + mehr. */ +/* `font: inherit` ist hier kein Schoenheitsfehler-Fix, sondern + Notwendigkeit: Ohne Angabe rendert der Browser ein Datumsfeld in + SEINER Schrift -- neben dem uebrigen Fenster sieht das aus wie ein + Rest, den jemand vergessen hat. Die Breite deckelt es auf die + Laenge, die ein Datum wirklich braucht; volle Breite laesst ein + fast leeres Feld quer durch den Dialog laufen. */ +.neu__zeile--tag input[type="date"] { + max-width: 190px; + font: inherit; font-size: .88rem; +} +.feld-hinweis { + margin: 5px 0 0; font-size: .76rem; color: var(--text-still); +} + +/* Ein Fenster, das laenger ist als der Bildschirm, versteckt seine + eigenen Knoepfe. Gerollt wird INNEN, damit "Uebernehmen" immer + erreichbar bleibt. */ +.dialog--breit .neu { max-height: min(86vh, 900px); overflow-y: auto; } diff --git a/workspace/aufgaben.html b/workspace/aufgaben.html index c1ac7b6e..d1df15fd 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 dfd2f027..80157158 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 44e2e991..4814976d 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 27eec72f..4f679471 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 f8ab107d..0b1f3307 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 73b80fd4..4710c576 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 61a4ccdf..d98ed776 100644 --- a/workspace/crew-index.html +++ b/workspace/crew-index.html @@ -30,15 +30,15 @@ - - - + + + - + @@ -252,6 +252,6 @@ - + diff --git a/workspace/crew.webmanifest b/workspace/crew.webmanifest index 7d89803d..a0f86dd3 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=202609111545", + "src": "/assets/img/app-symbole/crew-192.png?v=202609111554", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/crew-512.png?v=202609111545", + "src": "/assets/img/app-symbole/crew-512.png?v=202609111554", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609111545", + "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609111554", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609111545", + "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609111554", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/dateien.html b/workspace/dateien.html index c25ffa27..c14c7f4d 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/index.html b/workspace/index.html index 6f4709d0..c0a70018 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 d34849df..74043e1c 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 2d7f5533..ed0b4cdf 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. --> - - - - - - - + + + + + + + - + @@ -256,71 +256,87 @@

Backstage-Tabelle einfügen

+ +

- Für alle Creator auf einmal. Erst siehst du, was passieren würde – - geschrieben wird erst, wenn du bestätigst. -

- - -
    -
  1. - In Backstage die Ansicht öffnen, in der deine Creator - untereinander mit ihren Zahlen stehen – also die Liste mit - Diamanten, LIVE-Dauer und gültigen Tagen. Wie der Menüpunkt heißt, - wechselt mit den TikTok-Versionen; gesucht ist die Tabelle, nicht - ein bestimmter Name. -
  2. -
  3. - Die Tabelle mit der Maus markieren – die Überschriftenzeile - muss mit. An ihr erkennt der Workspace, welche Spalte - Diamanten sind und welche Dauer. Ohne sie geht es nicht. -
  4. -
  5. Kopieren mit Strg + C (Mac: Cmd + C).
  6. -
  7. Hier unten ins Feld klicken und Strg + V drücken. - Die Vorschau erscheint von selbst.
  8. -
  9. Steht in der Tabelle kein Datum, den Tag im Feld - darunter wählen – sonst weiß niemand, worauf sich die Zahlen beziehen.
  10. -
- -

- Zugeordnet wird über den TikTok-Namen aus dem Steckbrief. - Wer dort keinen stehen hat, taucht in der Vorschau unter „nicht - zugeordnet“ auf – dann einmal im Steckbrief nachtragen, und beim - nächsten Mal wird er gefunden. Es wird nie geraten. -

-

- Warum von Hand und nicht automatisch: Backstage hat keine - Schnittstelle und keinen Export. Erweiterungen, die das umgehen, - verstoßen gegen die Nutzungsbedingungen – und riskieren das - Netzwerk-Konto. + Tabelle in Backstage markieren – mit der Überschriftenzeile – + und hier einfügen. Für alle Creator auf einmal. Erst siehst du, was + passieren würde; geschrieben wird erst, wenn du bestätigst.

- +
-
- +
+ +

Nur nötig, wenn die Tabelle keine Datumsspalte hat.

+ +
+ Schritt für Schritt – und warum von Hand +
    +
  1. In Backstage die Ansicht öffnen, in der deine Creator + untereinander mit ihren Zahlen stehen – die Liste mit Diamanten, + LIVE-Dauer und gültigen Tagen. Wie der Menüpunkt heißt, wechselt + mit den TikTok-Versionen; gesucht ist die Tabelle, + nicht ein bestimmter Name.
  2. +
  3. Die Tabelle mit der Maus markieren – die + Überschriftenzeile muss mit. An ihr erkennt der Workspace, + welche Spalte Diamanten sind und welche Dauer.
  4. +
  5. Kopieren mit Strg + C (Mac: Cmd + C).
  6. +
  7. Oben ins Feld klicken, Strg + V – die + Vorschau erscheint von selbst.
  8. +
  9. Steht in der Tabelle kein Datum, den Tag wählen – + sonst weiß niemand, worauf sich die Zahlen beziehen.
  10. +
+

+ Zugeordnet wird über den TikTok-Namen aus dem Steckbrief. + Wer dort keinen stehen hat, taucht in der Vorschau unter „nicht + zugeordnet" auf – einmal im Steckbrief nachtragen, und beim nächsten + Mal wird er gefunden. Es wird nie geraten. +

+

+ Warum von Hand? Backstage hat keine Schnittstelle und + keinen Export. Erweiterungen, die das umgehen, verstoßen gegen die + Nutzungsbedingungen – und riskieren das Netzwerk-Konto. +

+
+
@@ -366,10 +382,10 @@
- - - - - + + + + + diff --git a/workspace/personen.html b/workspace/personen.html index e7f320f6..fbe46def 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. --> - - - - - - - + + + + + + + - + @@ -396,10 +396,10 @@ - - - - - + + + + + diff --git a/workspace/profil.html b/workspace/profil.html index 9395aafe..72c8dabc 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/report.html b/workspace/report.html index 02d5e3fb..382a4165 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 a53a4d24..dfefac43 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 19f28341..f9f41cbe 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 4abefc62..bb02721a 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 f4531768..fecde755 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/team.html b/workspace/team.html index 4e7506b0..f9a61aca 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 59f113a4..859ed6cb 100644 --- a/workspace/teamlage.html +++ b/workspace/teamlage.html @@ -7,20 +7,20 @@ - - - - - - - + + + + + + + - + - - - - + + + + diff --git a/workspace/uebersicht.html b/workspace/uebersicht.html index ff6bc8fd..68362225 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 17eaea38..11be8549 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 @@ - - - - - + + + + +