Fix: Mehrtägige Events auf Tagesende begrenzt, Stundenhöhen weiter reduziert

Timed-Events in Wochen-/Tagesansicht werden jetzt auf Mitternacht (24:00) des Starttages gekürzt – keine kilometerhohen Balken mehr bei tagesübergreifenden Terminen. Stundenhöhen: 36/54/72/90 → 28/44/60/80px; Kompakt (28px) zeigt 24h = 672px.
This commit is contained in:
2026-04-08 14:27:24 +02:00
parent dea15191d8
commit d29cbb8450
4 changed files with 11 additions and 9 deletions

View File

@@ -494,10 +494,10 @@
<h4 class="panel-title" style="margin-top:24px" data-i18n="settings_hour_height">Stundenhöhe (Wochen- &amp; Tagesansicht)</h4>
<p class="panel-desc" data-i18n="settings_hour_height_desc">Wie viel Platz eine Stunde in der Zeitrasteransicht einnimmt</p>
<div class="contrast-selector" id="cfg-hour-height" data-setting="hour_height">
<button class="contrast-btn" data-val="36"><span class="hour-preview">━━</span><span class="contrast-lbl" data-i18n="hour_compact">Kompakt</span></button>
<button class="contrast-btn" data-val="54"><span class="hour-preview">━━━</span><span class="contrast-lbl" data-i18n="hour_normal">Normal</span></button>
<button class="contrast-btn" data-val="72"><span class="hour-preview">━━━━</span><span class="contrast-lbl" data-i18n="hour_comfort">Komfort</span></button>
<button class="contrast-btn" data-val="90"><span class="hour-preview">━━━━━</span><span class="contrast-lbl" data-i18n="hour_large">Gross</span></button>
<button class="contrast-btn" data-val="28"><span class="hour-preview">━━</span><span class="contrast-lbl" data-i18n="hour_compact">Kompakt</span></button>
<button class="contrast-btn" data-val="44"><span class="hour-preview">━━━</span><span class="contrast-lbl" data-i18n="hour_normal">Normal</span></button>
<button class="contrast-btn" data-val="60"><span class="hour-preview">━━━━</span><span class="contrast-lbl" data-i18n="hour_comfort">Komfort</span></button>
<button class="contrast-btn" data-val="80"><span class="hour-preview">━━━━━</span><span class="contrast-lbl" data-i18n="hour_large">Gross</span></button>
</div>
<h4 class="panel-title" style="margin-top:24px" data-i18n="settings_hidden_cals">Ausgeblendete Kalender</h4>

View File

@@ -227,7 +227,7 @@ function renderView() {
showEventPopup,
false,
weekStartDay,
state.settings.hour_height || 54
state.settings.hour_height || 44
);
} else if (state.currentView === 'day') {
renderWeek(container, state.currentDate, evs,
@@ -235,7 +235,7 @@ function renderView() {
showEventPopup,
true,
weekStartDay,
state.settings.hour_height || 54
state.settings.hour_height || 44
);
} else if (state.currentView === 'quarter') {
renderQuarter(container, state.currentDate, evs,
@@ -1527,7 +1527,7 @@ function bindSettingsModal() {
dim_past_events: document.getElementById('cfg-dim-past').checked,
text_contrast: getActive('cfg-text-contrast') || 3,
line_contrast: getActive('cfg-line-contrast') || 3,
hour_height: getActive('cfg-hour-height') || 54,
hour_height: getActive('cfg-hour-height') || 44,
language: document.getElementById('cfg-language').value,
};
try {

View File

@@ -92,7 +92,7 @@ export function applyTheme(settings) {
root.style.setProperty('--border', lc.border);
root.style.setProperty('--border-light', lc.light);
const hh = settings.hour_height || 54;
const hh = settings.hour_height || 44;
root.style.setProperty('--hour-h', hh + 'px');
}

View File

@@ -74,7 +74,9 @@ export function renderWeek(container, currentDate, events, onSlotClick, onEventC
const s = new Date(ev.start);
const e = new Date(ev.end);
const top = s.getHours() * hourH + s.getMinutes() * hourH / 60;
const height = Math.max(20, (e - s) / 60000 * hourH / 60);
const dayEnd = new Date(s); dayEnd.setHours(24, 0, 0, 0);
const clampedEnd = e > dayEnd ? dayEnd : e;
const height = Math.max(20, (clampedEnd - s) / 60000 * hourH / 60);
const left = (col / cols) * 100;
const width = (1 / cols) * 100 - 0.5;
const color = ev.color || ev.calendarColor || '#4285f4';