diff options
author | Jo-Philipp Wich <jo@mein.io> | 2021-10-20 00:08:36 +0300 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2021-10-20 00:09:46 +0300 |
commit | 07569c5af23d74bad8b78905b25d7e85bd2d3141 (patch) | |
tree | fc683cbe898f0ec76c3e1592d7b17b2903e0e0e2 /modules | |
parent | cd3d614c560bdea99240ab68261c15b774c7a5fe (diff) |
luci-mod-system: fix time display logic
Use the system/info ubus call to obtain a TZ adjusted epoch value and
format the date time string manually instead of relying on the browsers
local representation.
Fixes: #5454
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules')
-rw-r--r-- | modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js | 23 | ||||
-rw-r--r-- | modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json | 3 |
2 files changed, 20 insertions, 6 deletions
diff --git a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js index 1c2aa46c52..d207a5c994 100644 --- a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js +++ b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js @@ -29,9 +29,9 @@ callInitAction = rpc.declare({ }); callGetLocaltime = rpc.declare({ - object: 'luci', - method: 'getLocaltime', - expect: { result: 0 } + object: 'system', + method: 'info', + expect: { localtime: 0 } }); callSetLocaltime = rpc.declare({ @@ -47,6 +47,19 @@ callTimezone = rpc.declare({ expect: { '': {} } }); +function formatTime(epoch) { + var date = new Date(epoch * 1000); + + return '%04d-%02d-%02d %02d:%02d:%02d'.format( + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ); +} + CBILocalTime = form.DummyValue.extend({ renderWidget: function(section_id, option_id, cfgvalue) { return E([], [ @@ -54,7 +67,7 @@ CBILocalTime = form.DummyValue.extend({ 'id': 'localtime', 'type': 'text', 'readonly': true, - 'value': new Date(cfgvalue * 1000).toLocaleString() + 'value': formatTime(cfgvalue) }), E('br'), E('span', { 'class': 'control-group' }, [ @@ -285,7 +298,7 @@ return view.extend({ return m.render().then(function(mapEl) { poll.add(function() { return callGetLocaltime().then(function(t) { - mapEl.querySelector('#localtime').value = new Date(t * 1000).toLocaleString(); + mapEl.querySelector('#localtime').value = formatTime(t); }); }); diff --git a/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json b/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json index 9acb6e4471..732a73a760 100644 --- a/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json +++ b/modules/luci-mod-system/root/usr/share/rpcd/acl.d/luci-mod-system.json @@ -3,7 +3,8 @@ "description": "Grant access to system configuration", "read": { "ubus": { - "luci": [ "getInitList", "getLEDs", "getLocaltime", "getTimezones", "getUSBDevices" ] + "luci": [ "getInitList", "getLEDs", "getTimezones", "getUSBDevices" ], + "system": [ "info" ] }, "uci": [ "luci", "system" ] }, |