diff --git a/server/pruef-backstage-import.mjs b/server/pruef-backstage-import.mjs index 4f939f62..62b0add0 100644 --- a/server/pruef-backstage-import.mjs +++ b/server/pruef-backstage-import.mjs @@ -304,6 +304,37 @@ console.log("\n=== Die Seite ==="); ok(/niemand_hier/.test(vorschau), "und den Namen, der nicht zugeordnet wurde"); const losFrei = await seite.$eval("#netz-los", (e) => !e.disabled); ok(losFrei === true, "der Übernehmen-Knopf ist danach frei"); + + /* ---- DIE ERKLÄRUNG MUSS DA SEIN (11.09.2026) -------------------- + Filipe: "ich brauch auch eine erklärung immer dabei wo die scouts + und manager das finden." Ein Text, den niemand prüft, verschwindet + beim nächsten Umbau -- und niemandem fällt es auf, weil ein + fehlender Satz nichts kaputtmacht. */ + const schritte = await seite.$$eval("#netz-dialog .anleitung li", (ls) => ls.length); + ok(schritte >= 5, `die Backstage-Anleitung hat ${schritte} Schritte`); + const anleitung = await seite.$eval("#netz-dialog", (e) => e.textContent); + ok(/Überschriftenzeile/.test(anleitung), + "und sagt, dass die Überschriftenzeile mitmarkiert werden muss"); + ok(/Steckbrief/.test(anleitung), + "und woher die Zuordnung kommt (TikTok-Name im Steckbrief)"); + + await seite.click("#netz-zu"); + await seite.waitForTimeout(300); + const hinweis = await seite.$eval("#quellen-hinweis", (e) => (e.hidden ? "" : e.textContent)); + ok(/Backstage/.test(hinweis) && /TikTok-Datei/.test(hinweis), + "unter den Knöpfen steht dauerhaft, was die beiden Quellen sind"); + + /* Und der fertige Text für den Creator -- mit den zwei Angaben, an + denen es sonst scheitert: JSON und "alle Daten". */ + await seite.click("#tt-oeffnen"); + await seite.waitForTimeout(300); + const fuerCreator = await seite.$eval("#tt-text", (e) => e.textContent); + ok(/JSON/.test(fuerCreator) && /Alle Daten/i.test(fuerCreator), + "der Text für den Creator nennt JSON und „Alle Daten“"); + ok(/Einstellungen und Datenschutz/.test(fuerCreator) && /Deine Daten herunterladen/.test(fuerCreator), + "und den Weg in der App"); + ok(/nicht gespeichert/.test(fuerCreator), + "und was mit der Datei passiert -- das gehört dem Creator gesagt"); await browser.close(); } diff --git a/workspace/app.webmanifest b/workspace/app.webmanifest index 0a325d8c..04d4339f 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=202609111324", + "src": "/assets/img/app-symbole/workspace-192.png?v=202609111350", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-512.png?v=202609111324", + "src": "/assets/img/app-symbole/workspace-512.png?v=202609111350", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { - "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609111324", + "src": "/assets/img/app-symbole/workspace-192-maskable.png?v=202609111350", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { - "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609111324", + "src": "/assets/img/app-symbole/workspace-512-maskable.png?v=202609111350", "sizes": "512x512", "type": "image/png", "purpose": "maskable" diff --git a/workspace/assets/css/leistung.css b/workspace/assets/css/leistung.css index 0f914675..0a5792b2 100644 --- a/workspace/assets/css/leistung.css +++ b/workspace/assets/css/leistung.css @@ -348,3 +348,56 @@ font-family: ui-monospace, "Cascadia Code", "Consolas", monospace; overflow-wrap: anywhere; } + +/* ===================================================================== + DIE ANLEITUNGEN (11.09.2026) + + Filipe: "ich brauch auch eine erklärung immer dabei wo die scouts und + manager das finden. also eine perfekte beschreibung bitte." + + Zwei Ebenen, weil zwei Fragen dahinterstecken: + + 1. WAS IST DAS? -- zwei Sätze, immer sichtbar unter den Knöpfen. + Wer davorsitzt und beide Knöpfe zum ersten Mal sieht, weiß sonst + nicht, welcher für ihn gemeint ist. + 2. WIE GEHT DAS? -- die Schritte, im Fenster, wo man sie braucht. + Dort stören sie niemanden, der es längst weiß. + + Eine Anleitung, die immer und vollständig auf der Seite steht, liest + nach dem dritten Mal niemand mehr -- und dann steht sie nur im Weg. + ===================================================================== */ +.quellen-hinweis { + display: flex; flex-wrap: wrap; gap: 6px 22px; + margin: 10px 0 0; + font-size: .8rem; line-height: 1.5; + color: var(--text-still); +} +.quellen-hinweis > span { flex: 1 1 320px; min-width: 0; } +.quellen-hinweis strong { color: var(--text-leise); } + +/* Die Schritte im Fenster. Nummern in der Hausfarbe, damit man sie als + 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); +} +.anleitung li { margin: 0 0 7px; } +.anleitung li::marker { color: var(--akzent); font-weight: 700; } +.anleitung strong { color: var(--text); } + +/* Der fertige Text zum Weiterschicken. Als
, damit die Nummerierung
+   stehen bleibt -- und mit Umbruch, damit er nicht seitlich herausläuft. */
+.anleitung-text {
+  margin: 4px 0 8px;
+  max-height: 210px; overflow-y: auto;
+  padding: 11px 13px;
+  border: 1px solid var(--rand); border-radius: 11px;
+  background: rgba(0, 0, 0, .28);
+  font-family: inherit; font-size: .81rem; line-height: 1.55;
+  color: var(--text-leise);
+  white-space: pre-wrap; overflow-wrap: anywhere;
+}
+.dialog__unter--still { font-size: .8rem; color: var(--text-still); }
+.dialog__knoepfe--links { justify-content: flex-start; margin: 0 0 10px; }
diff --git a/workspace/assets/js/leistung.js b/workspace/assets/js/leistung.js
index 854ae8da..5b7f49e7 100644
--- a/workspace/assets/js/leistung.js
+++ b/workspace/assets/js/leistung.js
@@ -184,6 +184,10 @@
     /* Die Datei gehoert EINEM Creator -- deshalb sichtbar fuer alle,
        die fuer ihn eintragen duerfen, also auch fuer seinen Scout. */
     $('tt-oeffnen').hidden = !darfEintragen();
+    /* Der Hinweis erscheint nur, wenn wenigstens einer der beiden
+       Knoepfe da ist -- eine Erklaerung zu Knoepfen, die man nicht
+       sieht, ist Rauschen. */
+    $('quellen-hinweis').hidden = $('tt-oeffnen').hidden && $('netz-oeffnen').hidden;
 
     if (!z || (!z.diamanten && !z.tage && !z.verweildauer)) {
       ziel.append(el('p', 'leistung__leer',
@@ -773,6 +777,18 @@
   });
   $('tt-zu').addEventListener('click', () => $('tt-dialog').close());
   $('tt-datei').addEventListener('change', ttDateiGewaehlt);
+  /* Den Text fuer den Creator in die Zwischenablage. Kein
+     Erfolgshaken ohne Beleg: Geht es schief (kein Recht, alter
+     Browser), steht das auch da -- sonst glaubt man, es sei kopiert,
+     und schickt eine leere Nachricht. */
+  $('tt-text-kopieren').addEventListener('click', async (e) => {
+    const knopf = e.currentTarget;
+    try {
+      await navigator.clipboard.writeText($('tt-text').textContent);
+      knopf.textContent = 'Kopiert';
+    } catch { knopf.textContent = 'Ging nicht - bitte von Hand markieren'; }
+    setTimeout(() => { knopf.textContent = 'Text kopieren'; }, 2600);
+  });
   $('tt-form').addEventListener('submit', ttUebernehmen);
   /* Beim EINFÜGEN sofort nachsehen -- nicht erst auf einen Knopf warten.
      Wer eine Tabelle einfügt, will wissen, ob sie erkannt wurde; ein
diff --git a/workspace/aufgaben.html b/workspace/aufgaben.html
index a9571985..0a6535c0 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 e743d401..276905d6 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 62aee9c1..5a309c57 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 3400c81e..4a7402a0 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 807ed724..2e146f37 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. -->
 
-
-
-
-
+
+
+
+
 
-
-
-
+
+
+
 
-
+
 
 
 
@@ -289,10 +289,10 @@
   
 
 
-
-
-
-
-
+
+
+
+
+
 
 
diff --git a/workspace/content.html b/workspace/content.html
index d4404900..aae517b9 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 fa6723cb..3185fc5b 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 d00a258d..04cc3682 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=202609111324",
+      "src": "/assets/img/app-symbole/crew-192.png?v=202609111350",
       "sizes": "192x192",
       "type": "image/png",
       "purpose": "any"
     },
     {
-      "src": "/assets/img/app-symbole/crew-512.png?v=202609111324",
+      "src": "/assets/img/app-symbole/crew-512.png?v=202609111350",
       "sizes": "512x512",
       "type": "image/png",
       "purpose": "any"
     },
     {
-      "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609111324",
+      "src": "/assets/img/app-symbole/crew-192-maskable.png?v=202609111350",
       "sizes": "192x192",
       "type": "image/png",
       "purpose": "maskable"
     },
     {
-      "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609111324",
+      "src": "/assets/img/app-symbole/crew-512-maskable.png?v=202609111350",
       "sizes": "512x512",
       "type": "image/png",
       "purpose": "maskable"
diff --git a/workspace/dateien.html b/workspace/dateien.html
index 593c899f..21be645d 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 e69d55a6..f6b5c6a6 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 d9f0b4ab..579b3d46 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 1d29ca49..21f65cff 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. -->
 
-
-
-
-
-
-
-
+
+
+
+
+
+
+
 
-
+
 
 
 
@@ -123,6 +123,23 @@
         
       
     
+    
+    
     
@@ -244,12 +261,43 @@

TikTok-Datei einlesen

- Die Datei, die der Creator sich selbst bei TikTok herunterlädt: - Profil → Einstellungen → Konto → Deine Daten herunterladen, - Format JSON, „Alles auswählen“. TikTok braucht dafür - ein bis vier Tage. Die Datei wird hier gelesen und nicht - gespeichert – in ihr stehen auch Nachrichten und Verläufe, - die hier nichts zu suchen haben. + Diese Datei kann nur der Creator selbst holen – an + Backstage kommt sie nicht vorbei, und ein Zugang bei TikTok für uns + existiert nicht. Du brauchst sie also von ihm. +

+ + +

Das schickst du dem Creator

+
Hi! Ich brauche einmal deine TikTok-Daten, damit deine LIVE-Zahlen bei uns im Workspace stehen. Das machst du selbst in der App, dauert zwei Minuten:
+
+1. TikTok öffnen, auf dein Profil gehen
+2. Oben rechts auf die drei Striche, dann "Einstellungen und Datenschutz"
+3. "Konto" öffnen, dann "Deine Daten herunterladen"
+4. Reiter "Daten anfordern": bei Datenumfang "Alle Daten" wählen und als Dateiformat unbedingt JSON (nicht TXT)
+5. Auf "Daten anfordern" tippen
+
+TikTok braucht dafür 1 bis 4 Tage. Wenn es fertig ist, gehst du an derselben Stelle auf den Reiter "Daten herunterladen", lädst die Datei und schickst sie mir.
+
+Was ich damit mache: Ich lese daraus nur deinen LIVE-Verlauf (wann und wie lange du live warst). Nachrichten, Suchverlauf und Auszahlungen werden nicht gelesen, und die Datei selbst wird nicht gespeichert.
+ +

+ Die Bezeichnungen können je nach App-Version leicht abweichen – der Weg + ist immer Einstellungen → Konto → Deine Daten herunterladen. + JSON ist Pflicht: Eine TXT-Datei lässt sich nicht + auswerten. +

+

+ Wenn die Datei da ist: hier auswählen. Der Workspace durchsucht sie + und zeigt dir, welche Liste darin der LIVE-Verlauf ist – du bestätigst + nur. Gelesen und nicht gespeichert.

@@ -272,10 +320,53 @@

Backstage-Tabelle einfügen

- In TikTok LIVE Backstage die Tabelle markieren, kopieren und hier - einfügen. Die Überschriftenzeile muss mit dabei sein – daran erkennt - der Workspace die Spalten. Zugeordnet wird über den TikTok-Namen aus - dem Steckbrief. Erst siehst du, was passieren würde. + 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.

@@ -325,10 +416,10 @@ - - - - - + + + + + diff --git a/workspace/personen.html b/workspace/personen.html index 21cd27aa..dcc072cc 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 fabff1be..48ef5096 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 95e9dceb..082c09bf 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 a4707d1d..28e32612 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 073d3ea0..e2e6ad23 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 cc73718b..430621c5 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 91595902..13b6aef7 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 6a4d09cc..2eb57a62 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 ac936d20..40338d56 100644 --- a/workspace/teamlage.html +++ b/workspace/teamlage.html @@ -7,20 +7,20 @@ - - - - - - - + + + + + + + - + - - - - + + + + diff --git a/workspace/uebersicht.html b/workspace/uebersicht.html index 33d3aa78..72b442a1 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 4beedee5..94e3fb1c 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 @@ - - - - - + + + + +