'require rpc';
'require form';
-var callInitList, callInitAction, callLocaltime, callTimezone, CBILocalTime;
+var callInitList, callInitAction, callTimezone,
+ callGetLocaltime, callSetLocaltime, CBILocalTime;
callInitList = rpc.declare({
object: 'luci',
- method: 'initList',
+ method: 'getInitList',
params: [ 'name' ],
- expect: { result: {} },
+ expect: { '': {} },
filter: function(res) {
for (var k in res)
return +res[k].enabled;
callInitAction = rpc.declare({
object: 'luci',
- method: 'initCall',
+ method: 'setInitAction',
params: [ 'name', 'action' ],
expect: { result: false }
});
-callLocaltime = rpc.declare({
+callGetLocaltime = rpc.declare({
object: 'luci',
- method: 'localtime',
- expect: { localtime: 0 }
+ method: 'getLocaltime',
+ expect: { result: 0 }
+});
+
+callSetLocaltime = rpc.declare({
+ object: 'luci',
+ method: 'setLocaltime',
+ params: [ 'localtime' ],
+ expect: { result: 0 }
});
callTimezone = rpc.declare({
object: 'luci',
- method: 'timezone',
- expect: { result: {} }
+ method: 'getTimezones',
+ expect: { '': {} }
});
CBILocalTime = form.DummyValue.extend({
renderWidget: function(section_id, option_id, cfgvalue) {
return E([], [
- E('span', { 'id': 'localtime' },
- new Date(cfgvalue * 1000).toLocaleString()),
+ E('span', {}, [
+ E('input', {
+ 'id': 'localtime',
+ 'type': 'text',
+ 'readonly': true,
+ 'value': new Date(cfgvalue * 1000).toLocaleString()
+ })
+ ]),
' ',
E('button', {
'class': 'cbi-button cbi-button-apply',
- 'click': function() {
- this.blur();
- this.classList.add('spinning');
- this.disabled = true;
- callLocaltime(Math.floor(Date.now() / 1000)).then(L.bind(function() {
- this.classList.remove('spinning');
- this.disabled = false;
- }, this));
- }
+ 'click': L.ui.createHandlerFn(this, function() {
+ return callSetLocaltime(Math.floor(Date.now() / 1000));
+ })
}, _('Sync with browser')),
' ',
this.ntpd_support ? E('button', {
'class': 'cbi-button cbi-button-apply',
- 'click': function() {
- this.blur();
- this.classList.add('spinning');
- this.disabled = true;
- callInitAction('sysntpd', 'restart').then(L.bind(function() {
- this.classList.remove('spinning');
- this.disabled = false;
- }, this));
- }
+ 'click': L.ui.createHandlerFn(this, function() {
+ return callInitAction('sysntpd', 'restart');
+ })
}, _('Sync with NTP-Server')) : ''
]);
},
load: function() {
return Promise.all([
callInitList('sysntpd'),
- callInitList('zram'),
callTimezone(),
- callLocaltime(),
+ callGetLocaltime(),
uci.load('luci'),
uci.load('system')
]);
},
render: function(rpc_replies) {
- var ntpd_support = rpc_replies[0],
- zram_support = rpc_replies[1],
- timezones = rpc_replies[2],
- localtime = rpc_replies[3],
- ntp_setup, ntp_enabled, m, s, o;
+ var ntpd_enabled = rpc_replies[0],
+ timezones = rpc_replies[1],
+ localtime = rpc_replies[2],
+ m, s, o;
m = new form.Map('system',
_('System'),
_('Here you can configure the basic aspects of your device like its hostname or the timezone.'));
m.chain('luci');
- m.tabbed = true;
s = m.section(form.TypedSection, 'system', _('System Properties'));
s.anonymous = true;
o = s.taboption('general', CBILocalTime, '_systime', _('Local Time'));
o.cfgvalue = function() { return localtime };
- o.ntpd_support = ntpd_support;
+ o.ntpd_support = ntpd_enabled;
o = s.taboption('general', form.Value, 'hostname', _('Hostname'));
o.datatype = 'hostname';
* Zram Properties
*/
- if (zram_support != null) {
+ if (L.hasSystemFeature('zram')) {
s.tab('zram', _('ZRam Settings'));
o = s.taboption('zram', form.Value, 'zram_size_mb', _('ZRam Size'), _('Size of the ZRam device in megabytes'));
* NTP
*/
- if (ntpd_support != null) {
+ if (L.hasSystemFeature('sysntpd')) {
var default_servers = [
'0.openwrt.pool.ntp.org', '1.openwrt.pool.ntp.org',
'2.openwrt.pool.ntp.org', '3.openwrt.pool.ntp.org'
o.ucisection = 'ntp';
o.default = o.disabled;
o.write = function(section_id, value) {
- ntpd_support = +value;
+ ntpd_enabled = +value;
- if (ntpd_support && !uci.get('system', 'ntp')) {
+ if (ntpd_enabled && !uci.get('system', 'ntp')) {
uci.add('system', 'timeserver', 'ntp');
uci.set('system', 'ntp', 'server', default_servers);
}
- if (!ntpd_support)
+ if (!ntpd_enabled)
uci.set('system', 'ntp', 'enabled', 0);
else
uci.unset('system', 'ntp', 'enabled');
return callInitAction('sysntpd', 'enable');
};
o.load = function(section_id) {
- return (ntpd_support == 1 &&
+ return (ntpd_enabled == 1 &&
uci.get('system', 'ntp') != null &&
uci.get('system', 'ntp', 'enabled') != 0) ? '1' : '0';
};
return m.render().then(function(mapEl) {
L.Poll.add(function() {
- return callLocaltime().then(function(t) {
- mapEl.querySelector('#localtime').innerHTML = new Date(t * 1000).toLocaleString();
+ return callGetLocaltime().then(function(t) {
+ mapEl.querySelector('#localtime').value = new Date(t * 1000).toLocaleString();
});
});