Zeitleiste: eigenes Zeichen fuer "nicht dran", keine Marke unter dem Etikett

Der gestrichelte Kreis im Etikett von "Sichtschutz Kinderzimmer" war nicht
das Zeichen fuer "an diesem Tag nicht dran", sondern die Marke des
fruehesten Zeitpunkts im Fenster (Sonnenuntergang + 30), die unter dem
Etikett lag und nur gestrichelt aussah, weil der Eintrag nicht dran war.
Bei "Rollos morgens Wochenende" faellt dieser Zeitpunkt auf den
Fensterbeginn - dort gab es keine Marke und damit gar kein Zeichen.

Jetzt traegt jedes Etikett, das an diesem Tag nicht dran ist, vorn ein
Kalender-Symbol, bei Punkt und Fenster gleich und gleich der Legende. Die
Marke des fruehesten Zeitpunkts entfaellt; er steht im Hinweis.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:38:47 +02:00
co-authored by Claude Opus 5
parent 6aace0d9a2
commit d291f063f5
2 changed files with 15 additions and 7 deletions
+5
View File
@@ -2955,6 +2955,11 @@ input[type='range']::-webkit-slider-runnable-track {
color: var(--ton-schrift-3, #6f7a81);
}
.zl-ding.nichtdran .zl-etikett b { color: var(--ton-schrift-3, #6f7a81); }
.zl-nichtdran {
margin-right: .35rem;
font-size: .72rem;
color: var(--ton-schrift-2, #9aa6ad);
}
/* Zeitfenster: der Balken traegt Laeufe und die frueheste Marke. */
.zl-fenster { min-width: 10px; }
+10 -7
View File
@@ -110,7 +110,7 @@ function zlStapeln(eintraege, breite) {
const alle = eintraege.map(a => {
const [von, bis] = zlLage(a);
const etikett = zlEtikettText(a);
const lang = zlBreite(etikett) + 26;
const lang = zlBreite(etikett) + 26 + (a.dran ? 0 : 16); // Platz fürs Zeichen "nicht dran"
let links = px(von) - 8;
let rechts = a.art === "fenster" ? Math.max(px(bis), px(von) + lang) : px(von) + lang;
const ueber = px(von) + lang > breite - 4;
@@ -306,7 +306,7 @@ function zeitleisteZeichnen() {
+ '<span><i class="zl-l-punkt"></i>kommt noch</span>'
+ '<span><i class="zl-l-balken"></i>Zeitfenster, wartet auf Bedingung</span>'
+ '<span><i class="zl-l-kette"></i>Kette</span>'
+ '<span><i class="zl-l-punkt nichtdran"></i>an diesem Tag nicht dran</span>'
+ '<span><i class="bi bi-calendar-x zl-nichtdran"></i>an diesem Tag nicht dran</span>'
+ "</div>";
ziel.innerHTML = html;
@@ -336,15 +336,18 @@ function zlEintrag(e, d, prozent) {
const lauf = zustand !== "gelaufen" ? ""
: ' <i class="bi bi-check2"></i>' + (a.art === "fenster" ? '<span class="zl-lauf">' + zlText(a.laeufe[a.laeufe.length - 1]) + "</span>" : "");
const kappe = e.kappe ? ' style="max-width:' + Math.round(e.kappe) + "px" + (e.versatz ? ";margin-left:" + Math.round(e.versatz) + "px" : "") + '"' : "";
const etikett = '<span class="zl-etikett' + (e.kappe ? " gekappt" : "") + '"' + kappe + "><b>"
// "Nicht dran" hat ein eigenes Zeichen vorn im Etikett - bei Punkt und
// Fenster dasselbe, und dasselbe wie in der Legende.
const nichtdran = zustand === "nichtdran" ? '<i class="bi bi-calendar-x zl-nichtdran"></i>' : "";
const etikett = '<span class="zl-etikett' + (e.kappe ? " gekappt" : "") + '"' + kappe + ">" + nichtdran + "<b>"
+ zlText(zlEtikettZeit(a)) + "</b>" + zlText(a.name) + lauf + "</span>";
if (a.art === "fenster") {
// Läufe und die früheste Marke als Punkte auf dem Balken.
// Läufe als Punkte auf dem Balken. Der früheste Zeitpunkt im Fenster
// (etwa Sonnenuntergang + 30) bekommt keine Marke mehr: sie lag meist
// unter dem Etikett und sah dort wie ein Zustandszeichen aus. Er steht
// im Hinweis ("frühestens 19:01").
let marken = "";
if (a.punkt !== null && a.punkt > a.von && !a.laeufe.length) {
marken += '<span class="zl-marke zl-marke-innen" style="left:' + ((a.punkt - a.von) / Math.max(1, a.bis - a.von) * 100).toFixed(2) + '%"></span>';
}
a.laeufe.forEach(t => {
const m = zlMinuteAus(t);
marken += '<span class="zl-marke zl-marke-innen gelaufen" style="left:' + ((m - a.von) / Math.max(1, a.bis - a.von) * 100).toFixed(2) + '%"></span>';