luci-mod-system: system.js: simplify btn actions, use feature flags
authorJo-Philipp Wich <jo@mein.io>
Wed, 18 Sep 2019 06:16:41 +0000 (08:16 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 18 Sep 2019 06:17:58 +0000 (08:17 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js

index 1ed8f64d8f0d1226529cd6a8a75f0b136b915802..ac6586af4692001da6a058134954a3b3d9f52fd3 100644 (file)
@@ -47,33 +47,27 @@ callTimezone = rpc.declare({
 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;
-                                       callSetLocaltime(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')) : ''
                ]);
        },
@@ -83,7 +77,6 @@ return L.view.extend({
        load: function() {
                return Promise.all([
                        callInitList('sysntpd'),
-                       callInitList('zram'),
                        callTimezone(),
                        callGetLocaltime(),
                        uci.load('luci'),
@@ -92,11 +85,10 @@ return L.view.extend({
        },
 
        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'),
@@ -119,7 +111,7 @@ return L.view.extend({
 
                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';
@@ -184,7 +176,7 @@ return L.view.extend({
                 * 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'));
@@ -234,7 +226,7 @@ return L.view.extend({
                 * 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'
@@ -245,14 +237,14 @@ return L.view.extend({
                        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');
@@ -260,7 +252,7 @@ return L.view.extend({
                                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';
                        };
@@ -284,7 +276,7 @@ return L.view.extend({
                return m.render().then(function(mapEl) {
                        L.Poll.add(function() {
                                return callGetLocaltime().then(function(t) {
-                                       mapEl.querySelector('#localtime').innerHTML = new Date(t * 1000).toLocaleString();
+                                       mapEl.querySelector('#localtime').value = new Date(t * 1000).toLocaleString();
                                });
                        });