luci-app-cloudflared: simplify service status render

Instead of using poll use the o.cfgvalue to render a status.

Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
This commit is contained in:
Sergey Ponomarev 2024-02-01 23:41:10 +02:00 committed by Paul Donald
parent b8a4328fcf
commit a5dfb9604c

View file

@ -5,9 +5,7 @@
'use strict'; 'use strict';
'require form'; 'require form';
'require poll';
'require rpc'; 'require rpc';
'require uci';
'require view'; 'require view';
var callServiceList = rpc.declare({ var callServiceList = rpc.declare({
@ -27,26 +25,15 @@ function getServiceStatus() {
}); });
} }
function renderStatus(isRunning) {
var spanTemp = '<label class="cbi-value-title">Status</label><div class="cbi-value-field"><em><span style="color:%s">%s</span></em></div>';
var renderHTML;
if (isRunning) {
renderHTML = String.format(spanTemp, 'green', _('Running'));
} else {
renderHTML = String.format(spanTemp, 'red', _('Not Running'));
}
return renderHTML;
}
return view.extend({ return view.extend({
load: function () { load: function () {
return Promise.all([ return Promise.all([
uci.load('cloudflared') getServiceStatus()
]); ]);
}, },
render: function (data) { render: function (data) {
let isRunning = data[0];
var m, s, o; var m, s, o;
m = new form.Map('cloudflared', _('Cloudflare Zero Trust Tunnel'), m = new form.Map('cloudflared', _('Cloudflare Zero Trust Tunnel'),
@ -59,18 +46,15 @@ return view.extend({
s = m.section(form.NamedSection, 'config', 'cloudflared'); s = m.section(form.NamedSection, 'config', 'cloudflared');
o = s.option(form.DummyValue, 'service_status', _('Status')); o = s.option(form.DummyValue, '_status', _('Status'));
o.load = function () { o.rawhtml = true;
poll.add(function () { o.cfgvalue = function(section_id) {
return L.resolveDefault(getServiceStatus()).then(function (res) { var span = '<b><span style="color:%s">%s</span></b>';
var view = document.getElementById('cbi-cloudflared-config-service_status'); var renderHTML = isRunning ?
if (view) { String.format(span, 'green', _('Running')) :
view.innerHTML = renderStatus(res); String.format(span, 'red', _('Not Running'));
} return renderHTML;
});
});
}; };
o.value = _('Collecting data...');
o = s.option(form.Flag, 'enabled', _('Enable')); o = s.option(form.Flag, 'enabled', _('Enable'));
o.rmempty = false; o.rmempty = false;