From 6ab32959d5be3db126cd56ceff00852b30801454 Mon Sep 17 00:00:00 2001 From: Marco H Date: Wed, 4 Jan 2023 14:41:32 +0100 Subject: [PATCH] Setting to use "Today" and "Yesterday" instead of dates --- apps/agenda/ChangeLog | 1 + apps/agenda/agenda.js | 24 ++++++++++++++++++++---- apps/agenda/metadata.json | 2 +- apps/agenda/settings.js | 7 +++++++ 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/apps/agenda/ChangeLog b/apps/agenda/ChangeLog index 77e11c92e..efa04652d 100644 --- a/apps/agenda/ChangeLog +++ b/apps/agenda/ChangeLog @@ -9,3 +9,4 @@ Fix clkinfo icon 0.09: Ensure Agenda supplies an image for clkinfo items 0.10: Update clock_info to avoid a redraw +0.11: Setting to use "Today" and "Yesterday" instead of dates diff --git a/apps/agenda/agenda.js b/apps/agenda/agenda.js index 9cffe0265..8afca95a9 100644 --- a/apps/agenda/agenda.js +++ b/apps/agenda/agenda.js @@ -33,16 +33,32 @@ CALENDAR=CALENDAR.sort((a,b)=>a.timestamp - b.timestamp); function getDate(timestamp) { return new Date(timestamp*1000); } +function formatDay(date) { + if (!settings.useToday) { + return Locale.date(date); + } + const dateformatted = date.toISOString().split('T')[0]; // yyyy-mm-dd + const today = new Date(Date.now()).toISOString().split('T')[0]; // yyyy-mm-dd + if (dateformatted == today) { + return /*LANG*/"Today "; + } else { + const tomorrow = new Date(Date.now() + 86400 * 1000).toISOString().split('T')[0]; // yyyy-mm-dd + if (dateformatted == tomorrow) { + return /*LANG*/"Tomorrow "; + } + return Locale.date(date); + } +} function formatDateLong(date, includeDay, allDay) { let shortTime = Locale.time(date,1)+Locale.meridian(date); if(allDay) shortTime = ""; - if(includeDay || allDay) - return Locale.date(date)+" "+shortTime; + if(includeDay || allDay) { + return formatDay(date)+" "+shortTime; + } return shortTime; } function formatDateShort(date, allDay) { - return Locale.date(date).replace(/\d\d\d\d/,"")+(allDay? - "" : Locale.time(date,1)+Locale.meridian(date)); + return formatDay(date).replace(/\d\d\d\d/,"")+(allDay?"":Locale.time(date,1)+Locale.meridian(date)); } var lines = []; diff --git a/apps/agenda/metadata.json b/apps/agenda/metadata.json index 8253b36bc..b5b7c1582 100644 --- a/apps/agenda/metadata.json +++ b/apps/agenda/metadata.json @@ -1,7 +1,7 @@ { "id": "agenda", "name": "Agenda", - "version": "0.10", + "version": "0.11", "description": "Simple agenda", "icon": "agenda.png", "screenshots": [{"url":"screenshot_agenda_overview.png"}, {"url":"screenshot_agenda_event1.png"}, {"url":"screenshot_agenda_event2.png"}], diff --git a/apps/agenda/settings.js b/apps/agenda/settings.js index 4220fcb63..62e0c6dbd 100644 --- a/apps/agenda/settings.js +++ b/apps/agenda/settings.js @@ -43,6 +43,13 @@ updateSettings(); } }, + /*LANG*/"Use 'Today',..." : { + value : !!settings.useToday, + onchange: v => { + settings.useToday = v; + updateSettings(); + } + }, }; E.showMenu(mainmenu); })