From 624cf0f510334cdcaed742e4053c4acb55de6e6c Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Wed, 11 Sep 2024 23:38:00 -0500 Subject: [PATCH 1/2] Revised suffix formatting in getDate function --- apps/boxclk/ChangeLog | 3 ++- apps/boxclk/app.js | 19 +++++++++++++++---- apps/boxclk/boxclk-2.json | 14 +++++++------- apps/boxclk/metadata.json | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/apps/boxclk/ChangeLog b/apps/boxclk/ChangeLog index 591d880b8..65a6c979f 100644 --- a/apps/boxclk/ChangeLog +++ b/apps/boxclk/ChangeLog @@ -12,4 +12,5 @@ - [+] Fixed optional seconds not displaying in time - [+] Fixed drag handler by adding E.stopEventPropagation() - [+] General code optimization and cleanup -0.09: Revised event handler code \ No newline at end of file +0.09: Revised event handler code +0.10: Revised suffix formatting in getDate function \ No newline at end of file diff --git a/apps/boxclk/app.js b/apps/boxclk/app.js index 87bbcef77..71dbda94f 100644 --- a/apps/boxclk/app.js +++ b/apps/boxclk/app.js @@ -208,12 +208,23 @@ // 7. String forming helper functions let getDate = function(short, shortMonth, disableSuffix) { const date = new Date(); - const dayOfMonth = date.getDate(); + const day = date.getDate(); const month = shortMonth ? locale.month(date, 1) : locale.month(date, 0); const year = date.getFullYear(); - let suffix = ["st", "nd", "rd"][(dayOfMonth - 1) % 10] || "th"; - let dayOfMonthStr = disableSuffix ? dayOfMonth : `${dayOfMonth}${suffix}`; - return `${month} ${dayOfMonthStr}${short ? '' : `, ${year}`}`; + + const getSuffix = (day) => { + if (day >= 11 && day <= 13) return 'th'; + const lastDigit = day % 10; + switch (lastDigit) { + case 1: return 'st'; + case 2: return 'nd'; + case 3: return 'rd'; + default: return 'th'; + } + }; + + const dayStr = disableSuffix ? day : `${day}${getSuffix(day)}`; + return `${month} ${dayStr}${short ? '' : `, ${year}`}`; // not including year for short version }; let getDayOfWeek = function(date, short) { diff --git a/apps/boxclk/boxclk-2.json b/apps/boxclk/boxclk-2.json index dde1da97e..1bdc89252 100644 --- a/apps/boxclk/boxclk-2.json +++ b/apps/boxclk/boxclk-2.json @@ -11,14 +11,14 @@ "xOffset": 3, "yOffset": 0, "boxPos": { - "x": "0.494", + "x": "0.5", "y": "0.739" } }, "dow": { "font": "6x8", "fontSize": 3, - "outline": 1, + "outline": 2, "color": "bgH", "outlineColor": "fg", "border": "#f0f", @@ -27,7 +27,7 @@ "xOffset": 2, "yOffset": 0, "boxPos": { - "x": "0.421", + "x": "0.5", "y": "0.201" }, "short": false @@ -35,7 +35,7 @@ "date": { "font": "6x8", "fontSize": 2, - "outline": 1, + "outline": 2, "color": "bgH", "outlineColor": "fg", "border": "#f0f", @@ -44,7 +44,7 @@ "xOffset": 1, "yOffset": 0, "boxPos": { - "x": "0.454", + "x": "0.5", "y": "0.074" }, "shortMonth": false, @@ -62,7 +62,7 @@ "xOffset": 2, "yOffset": 1, "boxPos": { - "x": "0.494", + "x": "0.5", "y": "0.926" }, "prefix": "Steps: " @@ -79,7 +79,7 @@ "xOffset": 2, "yOffset": 2, "boxPos": { - "x": "0.805", + "x": "0.8", "y": "0.427" }, "suffix": "%" diff --git a/apps/boxclk/metadata.json b/apps/boxclk/metadata.json index c8790fe7f..48f9f82ae 100644 --- a/apps/boxclk/metadata.json +++ b/apps/boxclk/metadata.json @@ -1,7 +1,7 @@ { "id": "boxclk", "name": "Box Clock", - "version": "0.09", + "version": "0.10", "description": "A customizable clock with configurable text boxes that can be positioned to show your favorite background", "icon": "app.png", "dependencies" : { "clockbg":"module" }, From 824fef0e1a3f70da303b8f106e5d7504df29135c Mon Sep 17 00:00:00 2001 From: stweedo <108593831+stweedo@users.noreply.github.com> Date: Thu, 12 Sep 2024 03:02:18 -0500 Subject: [PATCH 2/2] Update screenshot to match boxclk-2.json config change --- apps/boxclk/screenshot-2.png | Bin 7460 -> 11609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/boxclk/screenshot-2.png b/apps/boxclk/screenshot-2.png index 568a310b9cd99ad364fd26ed1a84ccc3119eee8a..361185406efa82df2d2d8ce74cf1102415b53771 100644 GIT binary patch literal 11609 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 Xa30JV9(e8j00000NkvXXu0mjfEOLoP literal 7460 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
#uQBUgR~!7yO@#H zFas+pf>{WwGn0YD+6x)XR26N28P6LA1`37&JYqk@dM*Py?-nNG_st~KSqShJwO&A@ zEJT-SSR{=&fNf*p!0E-lrP;{9ek%Y+8F(dtt+lOUU`ZBdYL|MY= z6N!Cg<|ty9cLFeL%C0ZjN=6vCH#1TI21<4vm;e%MlaWOO+s1EZVAck+0bK2YXeCfW zL4^_SMuvC#CmdFM5P%~LEbZ`RU}7lfO^X9y+Xh}K&N_fS3qh#0$LBpkw2(mMStXj0 zYy?$_oKP?OV8+0xzeF4fH!ZR@@yaDOK}J;2o^dwvs3uMZ)|F5UtTs%{76}Fx)lf?7 z0h?_%I`BO(N79Q^V&IUK2;sW{eD2`w$%%$)0)PnJ%oCX^yKz&32?;mUBE-O9>ijaW zu+l=mSxE@SKahd5vEFY1@T(taA@^lq25MNQmq~M@A9R?(KKo;u%Ul%x5dc3P1OE{Kdv?~@Fz@%cnf?fXpNN6u z&bUgz9CGJ19{ASBh+<%-%T|qM$3GuJXlB^Mn0j-5b_kJm=Br!?z|nq;C`JI72_xn) z@a)dKX? za1LT%lfS9M_bcTk>B6!s!w{0>1r!jDL&pZR0u5nVMD5FKBjD(9Q=lnTR zb40cW+DJW&>{|jj!obW34`a<^;9^mzpz&^3^Bp$EJ-w(8^!z5~joN?qSb9qUGp>ag zVk&WDv{R_6=ut9b4zXZkXgM1#M$BwPUzE9K34IiR8PH}Kp%^rjXACP8E>P!nNw05v zOfz4JC)*u~WwT9u6o50G>_Nt>FU7#RGP+@p!}h;NG8{6(DGQv8%|5BjJplH$ojvbJ z`G5!G{APav*{X+fDy@Kb|3Ulrb7O+px<72yFfe2PK>eF7qVkjh<3hg*!13<;C72YB zW<09>-smvAagN^+z1 zVg`jYg(F`vFkmnm!0bp8a_8>Yh&=;gSfk=o?UJ_o0+?|w3EWKoL1S(o^4_0Fok9OqE7`W=uDgYB!XBoJ_EFw>3lSll>0G_ZxPh=ef z%T`wyAqsd;2j=e}z!u>kJIu7v)sdQm_|<&$7C45NUI%6|la zqu~T&1V)BwcTznlZ#*1AL>F1iz+^HuZx}XI