diff --git a/package.json b/package.json index 8c874ab..ad978f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "my-weekly-todo-list", - "version": "1.80.3", + "version": "1.80.4", "description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view", "main": "index.js", "scripts": { diff --git a/src/components/SettingsSidebar.tsx b/src/components/SettingsSidebar.tsx index 2c033fe..b7d43f4 100644 --- a/src/components/SettingsSidebar.tsx +++ b/src/components/SettingsSidebar.tsx @@ -895,6 +895,7 @@ function SettingsSidebar({ + diff --git a/src/components/WeeklyView.tsx b/src/components/WeeklyView.tsx index d0c4ad3..908edd3 100644 --- a/src/components/WeeklyView.tsx +++ b/src/components/WeeklyView.tsx @@ -5608,6 +5608,10 @@ export default function WeeklyView() { return shownDay.toLocaleDateString(profile.language || "de-DE", { weekday: "short", day: "2-digit", month: "long", year: "numeric" }); })() : profile.headerDisplay === "none" ? "" : + profile.headerDisplay === "current_day" ? (() => { + const shownDay = getVisibleDays()[0]; + return shownDay.toLocaleDateString(profile.language || "de-DE", { weekday: "short", day: "2-digit", month: "long", year: "numeric" }); + })() : profile.headerDisplay === "date" ? (() => { const today = new Date(); const isTodayInWeek = getVisibleDays().some(d => @@ -5758,30 +5762,36 @@ export default function WeeklyView() { color: adjustColorForDarkMode(profile.cwColor || "#333333", darkMode), filter: "brightness(var(--weekly-header-brightness, 1))" }}> - { - profile.headerDisplay === "none" - ? "" - : profile.headerDisplay === "month" - ? getCWReferenceDate(getVisibleDays()).toLocaleDateString(profile.language, { month: "long" }) - : profile.headerDisplay === "month_year" - ? getCWReferenceDate(getVisibleDays()).toLocaleDateString(profile.language, { month: "long", year: "numeric" }) - : profile.headerDisplay === "date" - ? (() => { - const today = new Date(); - const isTodayInWeek = getVisibleDays().some(d => - d.getDate() === today.getDate() && - d.getMonth() === today.getMonth() && - d.getFullYear() === today.getFullYear() - ); - const refDate = isTodayInWeek ? today : getCWReferenceDate(getVisibleDays()); - return refDate.toLocaleDateString(profile.language, { day: '2-digit', month: '2-digit', year: 'numeric' }); - })() - : profile.headerDisplay === "custom" - ? formatCustomHeader(profile.headerCustomFormat || "KW WW | YYYY", getVisibleDays(), profile.language, t) - : `KW ${getWeekNumber(getCWReferenceDate(getVisibleDays())).toString().padStart(2, "0")}` - } + {(() => { + const effectiveDisplay = profile.viewStyle === "kanban" && !profile.headerDisplay ? "current_day" : (profile.headerDisplay || "kw"); + if (effectiveDisplay === "none") return ""; + if (effectiveDisplay === "current_day") { + const today = new Date(); + const visibleDays = getVisibleDays(); + const shownDay = visibleDays.some(d => + d.getDate() === today.getDate() && + d.getMonth() === today.getMonth() && + d.getFullYear() === today.getFullYear() + ) ? today : visibleDays[0]; + return shownDay.toLocaleDateString(profile.language || "de-DE", { weekday: "short", day: "2-digit", month: "long", year: "numeric" }); + } + if (effectiveDisplay === "month") return getCWReferenceDate(getVisibleDays()).toLocaleDateString(profile.language, { month: "long" }); + if (effectiveDisplay === "month_year") return getCWReferenceDate(getVisibleDays()).toLocaleDateString(profile.language, { month: "long", year: "numeric" }); + if (effectiveDisplay === "date") { + const today = new Date(); + const isTodayInWeek = getVisibleDays().some(d => + d.getDate() === today.getDate() && + d.getMonth() === today.getMonth() && + d.getFullYear() === today.getFullYear() + ); + const refDate = isTodayInWeek ? today : getCWReferenceDate(getVisibleDays()); + return refDate.toLocaleDateString(profile.language, { day: '2-digit', month: '2-digit', year: 'numeric' }); + } + if (effectiveDisplay === "custom") return formatCustomHeader(profile.headerCustomFormat || "KW WW | YYYY", getVisibleDays(), profile.language, t); + return `KW ${getWeekNumber(getCWReferenceDate(getVisibleDays())).toString().padStart(2, "0")}`; + })()} - {profile.headerDisplay !== "none" && (profile.headerDisplay === "kw" || profile.headerDisplay === "month" || !profile.headerDisplay) && ( + {profile.headerDisplay !== "none" && profile.headerDisplay !== "current_day" && (profile.headerDisplay === "kw" || profile.headerDisplay === "month" || !profile.headerDisplay) && ( <> | = { headerDisplayMonthYear: "Month & Year - March | 2026", headerDisplayDate: "Full Date - 13.03.2026", headerDisplayCustom: "Custom - Friday - 13. March", + headerDisplayCurrentDay: "Current Day - Friday, 13. March 2026", headerDisplayNone: "None", headerCustomFormatLabel: "Format string (e.g. DD.MM.YYYY)", language: "Language", @@ -273,6 +274,7 @@ export const translations: Record = { headerDisplayMonthYear: "Monat & Jahr - März | 2026", headerDisplayDate: "Vollständiges Datum - 13.03.2026", headerDisplayCustom: "Benutzerdefiniert - Freitag - 13. März", + headerDisplayCurrentDay: "Aktueller Tag - Freitag, 13. März 2026", headerDisplayNone: "Nichts", headerCustomFormatLabel: "Format (z.B. DD.MM.YYYY)", listView: "Liste", @@ -517,6 +519,7 @@ export const translations: Record = { headerDisplayMonthYear: "Mois & Année - Mars | 2026", headerDisplayDate: "Date complète - 13.03.2026", headerDisplayCustom: "Personnalisé - Vendredi - 13 Mars", + headerDisplayCurrentDay: "Jour actuel - Vendredi, 13 Mars 2026", headerDisplayNone: "Aucun", headerCustomFormatLabel: "Format (ex: DD.MM.YYYY)", language: "Langue", @@ -734,6 +737,7 @@ export const translations: Record = { headerDisplayMonthYear: "Mes y Año - Marzo | 2026", headerDisplayDate: "Fecha completa - 13.03.2026", headerDisplayCustom: "Personalizado - Viernes - 13 Marzo", + headerDisplayCurrentDay: "Día actual - Viernes, 13 Marzo 2026", headerDisplayNone: "Ninguno", headerCustomFormatLabel: "Formato (ej. DD.MM.YYYY)", language: "Idioma", @@ -951,6 +955,7 @@ export const translations: Record = { headerDisplayMonthYear: "Mese e Anno - Marzo | 2026", headerDisplayDate: "Data completa - 13.03.2026", headerDisplayCustom: "Personalizzato - Venerdì - 13 Marzo", + headerDisplayCurrentDay: "Giorno corrente - Venerdì, 13 Marzo 2026", headerDisplayNone: "Nessuno", headerCustomFormatLabel: "Formato (es. DD.MM.YYYY)", language: "Lingua",