luci/modules/luci-mod-status/ucode/template/admin_status/index.ut
Jo-Philipp Wich 97da0baeb6 luci-mod-status: transform status page Lua template into ucode template
Transform the only Lua template of the status module into an equivalent
ucode template and make it conditionally include the legacy Lua logic
factored out in a previous commit.

Only if the ucode Lua bridge is installed and loadable, the Lua template
loading the legacy Lua status partials is included.

After this commit, luci-mod-status is free of Lua dependencies.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-10-25 01:03:37 +02:00

69 lines
1.6 KiB
Text

{#
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008-2022 Jo-Philipp Wich <jo@mein.io>
Licensed to the public under the Apache License 2.0.
-#}
{% include('header') %}
<h2 name="content">{{ _('Status') }}</h2>
<div id="view">
<div class="spinning">{{ _('Loading view…') }}</div>
</div>
<script type="text/javascript">//<![CDATA[
function progressbar(query, value, max, byte)
{
var pg = document.querySelector(query),
vn = parseInt(value) || 0,
mn = parseInt(max) || 100,
fv = byte ? String.format('%1024.2mB', value) : value,
fm = byte ? String.format('%1024.2mB', max) : max,
pc = Math.floor((100 / mn) * vn);
if (pg) {
pg.firstElementChild.style.width = pc + '%';
pg.setAttribute('title', '%s / %s (%d%%)'.format(fv, fm, pc));
}
}
function renderBox(title, active, childs) {
childs = childs || [];
childs.unshift(L.itemlist(E('span'), [].slice.call(arguments, 3)));
return E('div', { class: 'ifacebox' }, [
E('div', { class: 'ifacebox-head center ' + (active ? 'active' : '') },
E('strong', title)),
E('div', { class: 'ifacebox-body left' }, childs)
]);
}
function renderBadge(icon, title) {
return E('span', { class: 'ifacebadge' }, [
E('img', { src: icon, title: title || '' }),
L.itemlist(E('span'), [].slice.call(arguments, 2))
]);
}
//]]></script>
<div class="includes" style="display:none">
{%
let lua_available = true;
try { require('lua'); }
catch(err) { lua_available = false; }
if (lua_available)
include('admin_status/luaindex');
%}
</div>
<script type="text/javascript">
L.require('ui').then(function(ui) {
ui.instantiateView('status/index');
});
</script>
{% include('footer') %}