summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-mod-status/ucode/template/admin_status
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-09-14 13:30:45 +0200
committerJo-Philipp Wich <jo@mein.io>2022-10-25 01:03:37 +0200
commit97da0baeb602c33d24e789a8ea635f92a54526b3 (patch)
treeb9786332e5839b2fe587edbbb0a6788a9d38b746 /modules/luci-mod-status/ucode/template/admin_status
parentc7b300e6143ab9916730108fff0a5d25a3d5ac53 (diff)
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>
Diffstat (limited to 'modules/luci-mod-status/ucode/template/admin_status')
-rw-r--r--modules/luci-mod-status/ucode/template/admin_status/index.ut69
1 files changed, 69 insertions, 0 deletions
diff --git a/modules/luci-mod-status/ucode/template/admin_status/index.ut b/modules/luci-mod-status/ucode/template/admin_status/index.ut
new file mode 100644
index 0000000000..4d018a3efd
--- /dev/null
+++ b/modules/luci-mod-status/ucode/template/admin_status/index.ut
@@ -0,0 +1,69 @@
+{#
+ 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') %}