Ein Termin von-bis belegt jeden Tag dazwischen

Zwei Fehler, nicht einer.

Der sichtbare: Die Kachel stand nur am Anfangstag. Wer im
Monatsraster auf den Mittwoch sah, sah nichts -- obwohl die Aktion
von Montag bis Freitag lief.

Der unsichtbare, und der ist der schlimmere: Der SERVER suchte
Eintraege, deren ANFANG im sichtbaren Fenster liegt. Eine Aktion vom
28.09. bis zum 05.10. kam im Oktober deshalb ueberhaupt nicht an --
nicht "nur am ersten Tag markiert", sondern gar nicht da. Wer im
Oktober plante, sah eine freie Woche, die belegt war. Jetzt
entscheidet die UEBERSCHNEIDUNG, nicht der Anfang.

Gebaut wurde es in nachTag() -- der einzigen Stelle, an der
Eintraege auf Tage verteilt werden. Monat, Woche, Liste und
Zeitstrahl holen sich alle dort; vier Ansichten einzeln
nachzuruesten waeren vier Stellen, an denen die fuenfte vergessen
wird.

Das Ende wird abgeleitet, nicht gepflegt: aus event_ende ODER aus
Uhrzeit plus Dauer. Ein Live von 22:00 ueber vier Stunden endet um
02:00 am naechsten Tag -- das stand bisher nirgends, obwohl die
Zahlen da waren.

Der Tagesdialog filterte selbst auf den Anfangstag. Im Raster war
der Mittwoch markiert, tippte man ihn an, stand da "An diesem Tag
steht nichts." Jetzt fragt er dieselbe Stelle wie das Raster.

pruef-zeitraum.mjs: 16 Pruefungen, beide Fehler einzeln, mit drei
Gegenproben (vor dem Anfang, nach dem Ende, Punkttermin).
pruef-terminregel.mjs weiterhin 35/0.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-09-20 19:20:18 +02:00
co-authored by Claude Opus 5
parent 947ea7ff49
commit d77dd216c5
5 changed files with 443 additions and 8 deletions
+69
View File
@@ -355,6 +355,75 @@
Kontrastmodus nicht zu erkennen. */
.k-pille.erledigt { opacity: .5; text-decoration: line-through; }
/* =====================================================================
EIN TERMIN, DER MEHRERE TAGE LAEUFT (20.09.2026)
Filipe: „wenn ich termine eintrage mit von bis, will ich dass die
ganze zeit markiert ist und nicht nur der anfang."
Die Kachel steht jetzt in jeder Tageszelle dazwischen. Damit man
sieht, dass es EIN Termin ist und nicht vier gleichnamige, wird sie
an den Seiten angeschnitten, an denen es weitergeht:
Mo [ 20:00 Aktion ━
Di ━ Tag 2/4 ━
Mi ━ Tag 3/4 ━
Do ━ Tag 4/4 ]
DIE FORM MACHT DIE AUSSAGE, nicht die Farbe -- an einer eckigen
Kante sieht man „geht weiter" auch dann, wenn man Farben schlecht
unterscheidet oder der Kontrastmodus alles einfaerbt.
WARUM KEIN ECHTER BALKEN UEBER DIE ZELLEN: Ein Element, das sich
ueber mehrere Rasterzellen legt, muesste wissen, wo die Woche
umbricht, wie hoch die Zeile gerade ist und was darunter noch steht.
Das ist bei jeder Fensterbreite eine andere Rechnung -- und eine
Rechnung, die irgendwann danebenliegt, schiebt Kacheln uebereinander.
Die angeschnittene Kante kostet nichts und kann nicht verrutschen. */
/* Laeuft gestern schon: links glatt abgeschnitten, kein Randstrich. */
.k-pille[data-spanne="mitte"],
.k-pille[data-spanne="ende"] {
border-left: 0;
border-top-left-radius: 0; border-bottom-left-radius: 0;
/* Der Strich am linken Rand wird zum FORTSETZUNGSZEICHEN: ein
schmaler, waagerechter Balken in der Farbe, auf halber Hoehe. */
padding-left: 12px;
background-image: linear-gradient(90deg,
var(--pfarbe) 0 4px, transparent 4px);
background-repeat: no-repeat;
background-position: 0 50%;
background-size: 100% 2px;
}
/* Geht morgen weiter: rechts glatt abgeschnitten. */
.k-pille[data-spanne="start"],
.k-pille[data-spanne="mitte"] {
border-top-right-radius: 0; border-bottom-right-radius: 0;
/* Eine Kante, die zeigt, dass hier nichts endet. */
box-shadow: inset -3px 0 0 -1px color-mix(in srgb, var(--pfarbe) 70%, transparent);
}
/* Der ganze Zeitraum liegt etwas satter als ein Punkttermin -- er
BELEGT die Tage, und das soll man beim Ueberfliegen sehen. */
.k-pille[data-spanne] {
background-color: color-mix(in srgb, var(--pfarbe) 22%, transparent);
}
.k-pille[data-spanne]:hover {
background-color: color-mix(in srgb, var(--pfarbe) 32%, transparent);
}
/* „Tag 2/4" ist eine Angabe zur Lage, keine Uhrzeit -- deshalb ruhiger
als die fette Startzeit daneben. */
.k-pille__lauf { font-weight: 550; opacity: .82; }
@media (forced-colors: active) {
/* Im Kontrastmodus verschwinden Farbflaechen und Schatten. Dann muss
die Kante als echter Rahmen dastehen, sonst sieht die Kachel am
Mittwoch genauso aus wie ein eigener Termin. */
.k-pille[data-spanne="start"],
.k-pille[data-spanne="mitte"] { border-right: 2px dashed CanvasText; }
.k-pille[data-spanne="mitte"],
.k-pille[data-spanne="ende"] { border-left: 2px dashed CanvasText; }
}
/* ---------- Wochenansicht ----------------------------------------------- */
.k-woche {
display: grid; gap: 1px;