From d291f063f564bd0b34b88f32d0a1d8e00fe6b3a1 Mon Sep 17 00:00:00 2001 From: "m0@nas" Date: Tue, 15 Sep 2026 13:38:47 +0200 Subject: [PATCH] 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 --- css/solar.css | 5 +++++ js/solar/zeitleiste.js | 17 ++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/css/solar.css b/css/solar.css index bd45463..85178c8 100644 --- a/css/solar.css +++ b/css/solar.css @@ -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; } diff --git a/js/solar/zeitleiste.js b/js/solar/zeitleiste.js index 9fbdf5f..fbeee91 100644 --- a/js/solar/zeitleiste.js +++ b/js/solar/zeitleiste.js @@ -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() { + 'kommt noch' + 'Zeitfenster, wartet auf Bedingung' + 'Kette' - + 'an diesem Tag nicht dran' + + 'an diesem Tag nicht dran' + ""; ziel.innerHTML = html; @@ -336,15 +336,18 @@ function zlEintrag(e, d, prozent) { const lauf = zustand !== "gelaufen" ? "" : ' ' + (a.art === "fenster" ? '' + zlText(a.laeufe[a.laeufe.length - 1]) + "" : ""); const kappe = e.kappe ? ' style="max-width:' + Math.round(e.kappe) + "px" + (e.versatz ? ";margin-left:" + Math.round(e.versatz) + "px" : "") + '"' : ""; - const etikett = '" + // "Nicht dran" hat ein eigenes Zeichen vorn im Etikett - bei Punkt und + // Fenster dasselbe, und dasselbe wie in der Legende. + const nichtdran = zustand === "nichtdran" ? '' : ""; + const etikett = '" + nichtdran + "" + zlText(zlEtikettZeit(a)) + "" + zlText(a.name) + lauf + ""; 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 += ''; - } a.laeufe.forEach(t => { const m = zlMinuteAus(t); marken += '';