Anleitung, Etappe 2: Erste Schritte zum Abhaken -- und eine Farbe, die vier Tage falsch war
Ein Creator hakt seine fuenf Ersten Schritte ab, sieht seinen
Fortschritt im Kopf, bekommt unter „Was ist dran" den Punkt „Erste
Schritte noch offen" und ganz oben auf der Startseite eine breite
Kachel „Fang hier an". Alle drei verschwinden von selbst, sobald er
durch ist -- niemand muss etwas wegklicken oder abschalten.
EINE QUELLE, DREI ANZEIGEN.
Der Bauplan wollte einen Punkt bei „Was ist dran" UND einen eigenen
Zaehler an der Kachel. Zwei getrennt gebaute Zaehler zeigen irgendwann
zwei verschiedene Zahlen uebereinander auf einem Bildschirm. Es gibt
deshalb nur `offeneHinweise()`: Daraus kommen die Zeile, die Zahl an
der kleinen Kachel und die Zahl an der breiten. Die breite Kachel
entsteht ausserdem aus der BEREITS GEFILTERTEN Kachelliste und erbt
damit beide Schranken (Rollenliste und Rechtetafel), statt sie ein
drittes Mal zu beantworten.
Gespeichert wird nur Erledigtes: eine Zeile heisst „abgehakt", keine
Zeile heisst „offen". Kein Feld mit 0 und 1 -- sonst gaebe es zwei
Arten, „offen" zu sagen.
DIE WICHTIGSTE ENTDECKUNG WAR NICHT TEIL DIESER ETAPPE.
`pruef-kachel-universum` wurde rot. Nachgemessen gegen den Stand VOR
Etappe 1: Sie war schon rot -- seit dem 02.10., und zwar wegen Ton 47
(Manager-Ziele, #7368ff), den ich selbst eingetragen habe. Im
Kommentar daneben steht sogar meine eigene Messung: „Abstand zum
naechsten Nachbarn 0,0899 ... knapp unter der 0,090". Ich habe die
Zahl hingeschrieben und die Pruefung nie laufen lassen. Vier Tage.
#7368ff -> #7269ff. Eine Hexziffer, Abstand zum alten Wert 0,0024 --
das sieht kein Mensch --, aber der Abstand zur naechsten Kachel im
eigenen Haus steigt von 0,0899 auf 0,0918. Nicht die am weitesten
entfernte Farbe genommen (das waere ein grelles Gruen gewesen):
Manager-Ziele ist in Benutzung und violett, gesucht war die kleinste
Aenderung, die die Regel haelt.
UND DIE REGEL SELBST WAR FUER EIN HAUS GESCHRIEBEN.
Auch mit sauberem Ton 47 blieb die Pruefung rot: Sie vergleicht ALLE
48 Toene miteinander, und rechnerisch ist 0,09 fuer 48 Farben nicht zu
halten (das Werkzeug findet als besten freien Platz 0,0793). Seit dem
24.09.2026 gibt es aber zwei Haeuser, und eine Kachel des einen steht
nie neben einer des anderen -- sie liegen auf verschiedenen Adressen.
Die Messung ist jetzt haus-bewusst: 0,09 innerhalb eines Hauses
(streng, und mit rund 24 Farden je Haus zu halten -- gemessen 0,0905),
ein Boden von 0,06 ueber die Haeuser hinweg. Das ist SCHAERFER, nicht
weicher: Vorher verteilte sich die Grenze auf 48 Farben und war
unerreichbar, weshalb die Pruefung dauerhaft rot stand -- und eine
Warnung, die immer kommt, ist keine mehr. Welcher Ton zu welchem Haus
gehoert, wird aus bereiche.js abgeleitet, nicht aufgelistet. Dazu eine
Gegenprobe, dass die Einteilung ueberhaupt trennt (553 Paare im Haus,
575 darueber hinweg).
NOCH EINE FESTE ZAHL ERSETZT: `pruef-start-ansicht` verlangte „genau
drei Gruppen" fuer einen Creator. Mit „Fang hier an" sind es
zeitweilig vier, und beides ist richtig. Gezaehlt wird nicht mehr,
sondern benannt -- auch das die schaerfere Pruefung: Die alte Zeile
waere gruen geblieben, wenn eine der drei Gruppen verschwindet und
eine fremde dazukommt.
Gemessen
pruef-anleitung 70 Pruefungen, 0 Fehler (vorher 47)
pruef-rollen 402 Pruefungen, 0 Fehler (vorher 401)
pruef-kachel-universum 16 Pruefungen, 0 Fehler (vorher 13, davon 1 rot)
pruef-start-ansicht alles in Ordnung (vorher 1 rot)
pruef-kachelraster 24 Pruefungen, 0 Fehler
pruef-css-klassen alles in Ordnung, 42 Stellen unter 11,5 px
mess-anleitung mit offenen Schritten: Gruppe „Fang hier an",
breite Kachel mit Zaehler 5, Hinweiszeile.
Nach dem Abhaken: alle drei weg, ein Weg
statt drei. Kein Querschieben bei 412/1440 px.
Sicherung: ~/sicherungen/workspace-vor-anleitung-e2-20261006-1421.db
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -45,6 +45,70 @@
|
||||
max-width: 62ch;
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
DER FORTSCHRITT (Etappe 2)
|
||||
=====================================================================
|
||||
|
||||
Er zählt nur die Ersten Schritte. Der Balken ist ein echtes
|
||||
`progress` -- damit bringt er die Ansage für Vorleseprogramme mit.
|
||||
Browser gestalten das Element unterschiedlich, deshalb werden beide
|
||||
Schreibweisen gesetzt (`::-webkit-progress-*` und `::-moz-*`); ohne
|
||||
sie steht in Firefox ein graues Kästchen in der Hausfarbe von 2010.
|
||||
===================================================================== */
|
||||
.an-stand {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 6px 14px;
|
||||
margin-top: 16px;
|
||||
padding: 12px 18px;
|
||||
border: 1px solid var(--rand);
|
||||
background: var(--flaeche);
|
||||
clip-path: polygon(var(--fase, 18px) 0, 100% 0, 100% 100%, 0 100%, 0 var(--fase, 18px));
|
||||
}
|
||||
|
||||
.an-stand__balken {
|
||||
flex: 1 1 180px;
|
||||
height: 8px;
|
||||
min-width: 140px;
|
||||
border: none;
|
||||
border-radius: 999px;
|
||||
background: color-mix(in srgb, var(--text-still) 22%, transparent);
|
||||
appearance: none;
|
||||
}
|
||||
.an-stand__balken::-webkit-progress-bar {
|
||||
background: color-mix(in srgb, var(--text-still) 22%, transparent);
|
||||
border-radius: 999px;
|
||||
}
|
||||
.an-stand__balken::-webkit-progress-value {
|
||||
background: var(--akzent);
|
||||
border-radius: 999px;
|
||||
transition: width var(--tempo, .18s);
|
||||
}
|
||||
.an-stand__balken::-moz-progress-bar {
|
||||
background: var(--akzent);
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.an-stand__satz {
|
||||
flex: 0 1 auto;
|
||||
margin: 0;
|
||||
font-size: .9rem;
|
||||
font-weight: 650;
|
||||
color: var(--text-still);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
/* FERTIG IST EINE EIGENE AUSSAGE, nicht nur ein voller Balken. Der
|
||||
Satz wechselt, die Farbe verstärkt ihn nur -- Farbe nie allein. */
|
||||
.an-stand[data-fertig="ja"] .an-stand__satz { color: var(--k-gut, #5fc99a); }
|
||||
.an-stand[data-fertig="ja"] .an-stand__balken::-webkit-progress-value {
|
||||
background: var(--k-gut, #5fc99a);
|
||||
}
|
||||
.an-stand[data-fertig="ja"] .an-stand__balken::-moz-progress-bar {
|
||||
background: var(--k-gut, #5fc99a);
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
BLÖCKE
|
||||
=====================================================================
|
||||
@@ -123,7 +187,83 @@
|
||||
gap: 9px;
|
||||
}
|
||||
|
||||
.an-schritt { max-width: 68ch; }
|
||||
/* DIE ZEILE IST ZWEIGETEILT: links der Haken, rechts der Weg. Zwei
|
||||
Dinge, zwei Flächen -- wer auf den Namen tippt, will zur Kachel und
|
||||
nicht abhaken. */
|
||||
.an-schritt {
|
||||
max-width: 68ch;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
DER HAKEN
|
||||
|
||||
Das echte Kästchen bleibt da (Tastatur, Vorleseprogramme, der
|
||||
Zustand), wird aber unsichtbar über das gezeichnete gelegt: So
|
||||
trifft ein Daumen 44 Pixel, und die Zeichnung lässt sich färben.
|
||||
`opacity: 0` statt `display: none` -- ein ausgeblendetes Feld ist
|
||||
für die Tastatur nicht erreichbar. */
|
||||
.an-haken {
|
||||
flex: none;
|
||||
position: relative;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 44px; height: 44px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.an-haken__feld {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%; height: 100%;
|
||||
margin: 0;
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.an-haken__zeichen {
|
||||
width: 22px; height: 22px;
|
||||
border: 2px solid var(--rand-hell, var(--rand));
|
||||
border-radius: 6px;
|
||||
background: color-mix(in srgb, var(--text-still) 8%, transparent);
|
||||
transition: background var(--tempo, .18s), border-color var(--tempo, .18s);
|
||||
position: relative;
|
||||
}
|
||||
/* Der Haken selbst: zwei Striche, gedreht. Kein Zeichen aus einer
|
||||
Schrift -- das sieht auf jedem Gerät anders aus und fehlt manchmal. */
|
||||
.an-haken__zeichen::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 6px; top: 2px;
|
||||
width: 6px; height: 11px;
|
||||
/* #0a121e fest und nicht ueber eine Variable: `--grund` gibt es im
|
||||
Haus nicht (nachgesehen), und eine Variable, die nirgends gesetzt
|
||||
wird, liest sich wie eine Zusage, die es nicht gibt. Es ist der
|
||||
dunkle Grund, gegen den alle Toene gemessen werden. */
|
||||
border-right: 2.5px solid #0a121e;
|
||||
border-bottom: 2.5px solid #0a121e;
|
||||
transform: rotate(42deg) scale(.4);
|
||||
opacity: 0;
|
||||
transition: opacity var(--tempo, .18s), transform var(--tempo, .18s);
|
||||
}
|
||||
.an-haken__feld:checked + .an-haken__zeichen {
|
||||
background: var(--k-gut, #5fc99a);
|
||||
border-color: var(--k-gut, #5fc99a);
|
||||
}
|
||||
.an-haken__feld:checked + .an-haken__zeichen::after {
|
||||
opacity: 1;
|
||||
transform: rotate(42deg) scale(1);
|
||||
}
|
||||
.an-haken__feld:focus-visible + .an-haken__zeichen {
|
||||
outline: 2px solid var(--akzent);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
.an-haken__feld:disabled + .an-haken__zeichen { opacity: .5; }
|
||||
|
||||
/* ERLEDIGT WIRD LEISER, NICHT DURCHGESTRICHEN. Durchgestrichener Text
|
||||
ist schlecht lesbar, und man will nachher noch nachsehen können, was
|
||||
man schon gemacht hat. */
|
||||
.an-schritt[data-erledigt="ja"] .an-schritt__rumpf { opacity: .62; }
|
||||
|
||||
/* DIE GANZE ZEILE IST DAS ZIEL, nicht nur das Stichwort.
|
||||
Gemessen am 06.10.2026: Der Verweis war 20 px hoch -- die halbe
|
||||
@@ -470,5 +610,8 @@ a.an-schritt__rumpf:hover .an-schritt__name { text-decoration: underline; }
|
||||
.an-filter__knopf,
|
||||
.an-schritt__rumpf,
|
||||
.an-stufe__griff::before,
|
||||
.an-haken__zeichen,
|
||||
.an-haken__zeichen::after,
|
||||
.an-stand__balken::-webkit-progress-value,
|
||||
.an-karte__weg { transition: none; }
|
||||
}
|
||||
|
||||
@@ -1197,7 +1197,32 @@ body.start > main { position: relative; z-index: 1; }
|
||||
Absenkung: Das Werkzeug prueft ERST Kontrast und Buntheit und
|
||||
maximiert DANN den Abstand. Wer den 48. hinzufuegt, sollte wissen,
|
||||
dass es eng wird, und notfalls einen alten verschieben. */
|
||||
[data-ton="47"] { --ton: #7368ff; } /* Manager-Ziele (gerechnet 02.10.2026) */
|
||||
/* EINE HEXZIFFER, DIE VIER TAGE GEFEHLT HAT (berichtigt 06.10.2026)
|
||||
|
||||
Hier stand #7368ff. Im Kommentar darueber habe ich am 02.10.
|
||||
selbst notiert: "Abstand zum naechsten Nachbarn 0,0899 ... Er liegt
|
||||
knapp unter der 0,090, die im Kommentar bei Ton 39 als Wunschgrenze
|
||||
steht." Ich habe es hingeschrieben und `pruef-kachel-universum`
|
||||
trotzdem nicht laufen lassen. Die Pruefung war seither rot, vier
|
||||
Tage lang, und zwar WEGEN DIESER ZEILE -- nicht wegen Ton 48, der
|
||||
erst heute dazukam.
|
||||
|
||||
0,090 ist keine Wunschgrenze, sie steht als GRENZE in der Pruefung.
|
||||
Der Nachbar ist Ton 43 (#007bff, Calls & Protokolle), und beide
|
||||
stehen auf derselben Startseite untereinander.
|
||||
|
||||
#7269ff liegt vom alten Wert 0,0024 entfernt -- das sieht kein
|
||||
Mensch, es ist eine Hexziffer -- und vom naechsten Nachbarn im
|
||||
eigenen Haus 0,0918. Damit haelt das Agenturhaus die Grenze:
|
||||
kleinster Abstand dort jetzt 0,0906 (Ton 12 gegen Ton 19), und
|
||||
enger kann es ohne diese Farbe ohnehin nicht werden.
|
||||
|
||||
NICHT die am weitesten entfernte Farbe genommen: Die waere ein
|
||||
grelles Gruen gewesen (#00ec00, Abstand 0,1224). Manager-Ziele ist
|
||||
seit vier Tagen in Benutzung und violett; gesucht war die
|
||||
kleinstmoegliche Aenderung, die die Regel haelt, nicht die
|
||||
groesstmoegliche Verbesserung. */
|
||||
[data-ton="47"] { --ton: #7269ff; } /* Manager-Ziele (nachgezogen 06.10.2026) */
|
||||
/* ======================================================================
|
||||
TON 48 -- UND WARUM ER NICHT VOM HAUSWERKZEUG STAMMT (06.10.2026)
|
||||
|
||||
|
||||
@@ -37,6 +37,80 @@
|
||||
return a;
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
DER FORTSCHRITT
|
||||
|
||||
Er kommt vom Server und wird hier NICHT nachgerechnet. Eine Seite,
|
||||
die selbst mitzählt, zählt irgendwann anders als der Server — und
|
||||
dann stehen zwei Zahlen auf einem Bildschirm, von denen eine falsch
|
||||
ist, ohne dass man ihr das ansieht.
|
||||
===================================================================== */
|
||||
function standSetzen(f) {
|
||||
const kasten = $('stand');
|
||||
if (!f || !f.gesamt) { kasten.hidden = true; return; }
|
||||
kasten.hidden = false;
|
||||
const balken = $('stand-balken');
|
||||
balken.max = f.gesamt;
|
||||
balken.value = f.erledigt;
|
||||
const fertig = f.erledigt >= f.gesamt;
|
||||
kasten.dataset.fertig = fertig ? 'ja' : 'nein';
|
||||
$('stand-satz').textContent = fertig
|
||||
? 'Alle Ersten Schritte erledigt. Den Rest holst du dir, wenn du ihn brauchst.'
|
||||
: `${f.erledigt} von ${f.gesamt} Schritten erledigt`;
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
EIN HAKEN
|
||||
|
||||
Ein echtes `input type="checkbox"`: Tastatur, Vorleseprogramme und
|
||||
der Zustand „gedrückt" kommen damit mit. Ein nachgebauter Knopf
|
||||
vergisst davon immer mindestens eines.
|
||||
|
||||
ES WIRD SOFORT GESCHICKT UND NICHT GESAMMELT. Ein „Speichern"-Knopf
|
||||
unter fünf Haken wäre die Stelle, an der jemand die Seite verlässt
|
||||
und sein Fortschritt weg ist.
|
||||
|
||||
GEHT ES SCHIEF, GEHT DER HAKEN ZURÜCK. Ein Haken, der steht,
|
||||
obwohl der Server ihn nicht hat, ist schlimmer als keiner: Beim
|
||||
nächsten Laden ist er weg, und niemand weiß warum.
|
||||
===================================================================== */
|
||||
function hakenBauen(s, li) {
|
||||
const schild = el('label', 'an-haken');
|
||||
const feld = document.createElement('input');
|
||||
feld.type = 'checkbox';
|
||||
feld.className = 'an-haken__feld';
|
||||
feld.checked = !!s.erledigt;
|
||||
/* Der Name des Schrittes steht im Verweis daneben; das Kästchen
|
||||
selbst braucht trotzdem eine eigene Ansage. */
|
||||
feld.setAttribute('aria-label', `„${s.titel}“ erledigt`);
|
||||
schild.append(feld);
|
||||
schild.append(el('span', 'an-haken__zeichen'));
|
||||
|
||||
feld.addEventListener('change', async () => {
|
||||
const willErledigt = feld.checked;
|
||||
feld.disabled = true;
|
||||
try {
|
||||
const a = await hole(`${BASIS}/schritt/${s.id}`, {
|
||||
method: 'PUT',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ erledigt: willErledigt }),
|
||||
});
|
||||
if (!a.ok) throw new Error('abgelehnt');
|
||||
const r = await a.json();
|
||||
s.erledigt = r.erledigt;
|
||||
if (r.erledigt) li.dataset.erledigt = 'ja';
|
||||
else li.removeAttribute('data-erledigt');
|
||||
standSetzen(r.fortschritt);
|
||||
} catch {
|
||||
feld.checked = !willErledigt;
|
||||
melde('Der Haken ließ sich nicht speichern. Noch einmal versuchen?');
|
||||
} finally {
|
||||
feld.disabled = false;
|
||||
}
|
||||
});
|
||||
return schild;
|
||||
}
|
||||
|
||||
/* =====================================================================
|
||||
DIE KACHELN DIESER ROLLE — abgeleitet, nicht abgeschrieben
|
||||
===================================================================== */
|
||||
@@ -203,10 +277,19 @@
|
||||
Ohne Ziel bleibt es ein `div` — „Installieren“ ist ein Knopf in
|
||||
der Kopfleiste, keine Seite. Ein Verweis ohne Ziel wäre genau
|
||||
der tote Knopf, den der Rollen-Rundgang sucht.
|
||||
|
||||
DER HAKEN STEHT DANEBEN UND NICHT DRUMHERUM (Etappe 2). Ein
|
||||
Verweis in einem Kontrollkästchen-Label wäre eine Falle: Wer
|
||||
auf den Namen tippt, um zur Kachel zu springen, hätte den
|
||||
Schritt abgehakt. Zwei Dinge, zwei Flächen.
|
||||
================================================================== */
|
||||
$('schritte').replaceChildren(
|
||||
...(d.schritte || []).map((s) => {
|
||||
const li = el('li', 'an-schritt');
|
||||
if (s.erledigt) li.dataset.erledigt = 'ja';
|
||||
|
||||
if (d.darf_abhaken) li.append(hakenBauen(s, li));
|
||||
|
||||
const rumpf = s.ziel ? el('a', 'an-schritt__rumpf') : el('div', 'an-schritt__rumpf');
|
||||
if (s.ziel) rumpf.href = s.ziel;
|
||||
rumpf.append(el('span', 'an-schritt__name', s.titel));
|
||||
@@ -214,6 +297,7 @@
|
||||
li.append(rumpf);
|
||||
return li;
|
||||
}));
|
||||
standSetzen(d.fortschritt);
|
||||
|
||||
const kacheln = kachelnFuer(d.rolle);
|
||||
const stufen = $('stufen');
|
||||
@@ -252,6 +336,10 @@
|
||||
|
||||
function ohneFassung(d) {
|
||||
$('fassung').hidden = true;
|
||||
/* Kein Fortschritt ohne Schritte. Er steht in der HTML schon auf
|
||||
`hidden`; hier noch einmal, weil diese Seite spaeter (Etappe 4)
|
||||
die Rolle wechseln koennen soll, ohne neu zu laden. */
|
||||
$('stand').hidden = true;
|
||||
const p = $('ohne-fassung');
|
||||
p.textContent = d.satz || 'Für diese Rolle gibt es keine Einweisung.';
|
||||
p.hidden = false;
|
||||
|
||||
@@ -100,6 +100,12 @@
|
||||
die naechste koennte es anders sein. */
|
||||
mz_dringend: 'manager-ziele.html',
|
||||
mz_offen: 'manager-ziele.html',
|
||||
/* DIE EINWEISUNG (06.10.2026). Ueber das Ziel, aus demselben Grund
|
||||
wie die beiden darueber. Der Hinweis verschwindet von selbst,
|
||||
sobald die Ersten Schritte abgehakt sind -- und mit ihm die Zahl
|
||||
an der Kachel und die breite Kachel oben. Eine Quelle, drei
|
||||
Anzeigen. */
|
||||
anl_schritte: 'anleitung.html',
|
||||
};
|
||||
|
||||
/* Diese Hinweise bekommen zusätzlich das Merkzeichen auf die Kachel.
|
||||
@@ -379,7 +385,44 @@
|
||||
Antwort des Live-Dienstes erst nach dem Aufbau der Wand da ist
|
||||
(ein Netzabruf, die Wand steht in Millisekunden). */
|
||||
const liveKacheln = [];
|
||||
for (const gruppe of eigeneGruppen(zeigt)) {
|
||||
|
||||
/* =================================================================
|
||||
„FANG HIER AN" — die Einweisung als breite Kachel (06.10.2026)
|
||||
|
||||
Bauplan: „Solange die Ersten Schritte offen sind: zusaetzlich
|
||||
als breite Kachel ganz oben ueber Taeglich, mit Zaehler der
|
||||
offenen Schritte."
|
||||
|
||||
SIE KOMMT AUS DER BEREITS GEFILTERTEN LISTE und nicht aus
|
||||
GRUPPEN. Das ist der ganze Trick: Damit erbt sie beide
|
||||
Schranken, die oben schon beantwortet wurden -- die Rollenliste
|
||||
an der Kachel UND die Rechtetafel vom Server (`seiteOffen`).
|
||||
Haette ich die Kachel hier frisch gesucht, waere das eine dritte
|
||||
Stelle, an der entschieden wird, wer sie sieht, und die erste,
|
||||
die beim naechsten Umbau danebenliegt.
|
||||
|
||||
DER ZAEHLER IST KEIN ZWEITER. Er kommt aus `zahlen`, also aus
|
||||
denselben Hinweisen wie die Zeile unter „Was ist dran" und die
|
||||
Zahl an der kleinen Kachel weiter unten. Drei Anzeigen, eine
|
||||
Rechnung -- sonst stuenden eines Tages zwei verschiedene Zahlen
|
||||
uebereinander auf einem Bildschirm.
|
||||
|
||||
SIE VERSCHWINDET VON SELBST. Kein Hinweis mehr heisst keine
|
||||
Gruppe mehr; niemand muss sie wegklicken oder abschalten.
|
||||
================================================================= */
|
||||
const gruppenListe = eigeneGruppen(zeigt);
|
||||
const alleKacheln = gruppenListe.flatMap((g) => g.bereiche);
|
||||
const anleitung = alleKacheln.find((b) => b.ziel === 'anleitung.html');
|
||||
const schritteOffen = zahlen.get('anleitung.html')?.n || 0;
|
||||
const vorneWeg = (anleitung && schritteOffen > 0)
|
||||
? [{
|
||||
name: 'Fang hier an',
|
||||
unter: 'Deine Einweisung – verschwindet, sobald du durch bist',
|
||||
bereiche: [{ ...anleitung, gross: true }],
|
||||
}]
|
||||
: [];
|
||||
|
||||
for (const gruppe of [...vorneWeg, ...gruppenListe]) {
|
||||
const meine = gruppe.bereiche;
|
||||
if (!meine.length) continue;
|
||||
|
||||
@@ -1545,6 +1588,7 @@
|
||||
Satz, der anders anfängt ("Deine Betreuung hat 3 …"), stünde
|
||||
hinter der Marke ein zweites Mal mit der 3 -- kein Fehler, den ein
|
||||
Programm meldet, aber einer, den jeder sieht. */
|
||||
anl_schritte: (n) => `${n} Erste${n === 1 ? 'r Schritt ist' : ' Schritte sind'} noch offen`,
|
||||
markiert_live: (n) => `${n} markierte${n === 1 ? 'r Punkt' : ' Punkte'} in der LIVE-Analyse`,
|
||||
markiert_content: (n) => `${n} markierte ${n === 1 ? 'Content-Idee' : 'Content-Ideen'}`,
|
||||
markiert_community: (n) => `${n} markierte${n === 1 ? 'r Punkt' : ' Punkte'} bei Community`,
|
||||
|
||||
Reference in New Issue
Block a user