From e67465da5e4bb2afdd0216f4875c627f287a7f3d Mon Sep 17 00:00:00 2001 From: Andy Chiang Date: Thu, 16 Oct 2025 00:48:26 +0700 Subject: [PATCH] luci-mod-status: use localized time use localized time Signed-off-by: Andy Chiang --- .../view/status/include/10_system.js | 35 ++++++++++++------- .../rpcd/acl.d/luci-mod-status-index.json | 2 +- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js index 45f7b4acae..4c7876d5b9 100644 --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js @@ -2,6 +2,13 @@ 'require baseclass'; 'require fs'; 'require rpc'; +'require uci'; + +var callGetUnixtime = rpc.declare({ + object: 'luci', + method: 'getUnixtime', + expect: { result: 0 } +}); var callLuciVersion = rpc.declare({ object: 'luci', @@ -25,30 +32,34 @@ return baseclass.extend({ return Promise.all([ L.resolveDefault(callSystemBoard(), {}), L.resolveDefault(callSystemInfo(), {}), - L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }) + L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }), + L.resolveDefault(callGetUnixtime(), 0), + uci.load('system') ]); }, render: function(data) { var boardinfo = data[0], systeminfo = data[1], - luciversion = data[2]; + luciversion = data[2], + unixtime = data[3]; luciversion = luciversion.branch + ' ' + luciversion.revision; var datestr = null; - if (systeminfo.localtime) { - var date = new Date(systeminfo.localtime * 1000); + if (unixtime) { + var date = new Date(unixtime * 1000), + zn = uci.get('system', '@system[0]', 'zonename')?.replaceAll(' ', '_') || 'UTC', + ts = uci.get('system', '@system[0]', 'clock_timestyle'), + hc = uci.get('system', '@system[0]', 'clock_hourcycle'); - datestr = '%04d-%02d-%02d %02d:%02d:%02d'.format( - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ); + datestr = new Intl.DateTimeFormat(undefined, { + dateStyle: 'medium', + timeStyle: (ts == 0) ? 'long' : 'full', + hourCycle: hc, + timeZone: zn + }).format(date); } var fields = [ diff --git a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json index c9e3c836cb..f2253f39c0 100644 --- a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json +++ b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status-index.json @@ -9,7 +9,7 @@ "/www/luci-static/resources/view/status/include": [ "list" ] }, "ubus": { - "luci": [ "getVersion" ], + "luci": [ "getVersion", "getUnixtime" ], "file": [ "list", "read" ], "system": [ "board", "info" ] } -- 2.30.2