summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base/ucode/template/footer.ut
blob: 0ab06ae0b9380b12c6351061b089a397a14ff0d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{#
 Copyright 2022 Jo-Philipp Wich <jo@mein.io>
 Licensed to the public under the Apache License 2.0.
-#}

{% const rollback = dispatcher.rollback_pending() %}
{% if (rollback || trigger_apply || trigger_revert): %}
	<script>
		document.addEventListener("luci-loaded", function() {
			{% if (trigger_apply): %}
				L.ui.changes.apply(true);
			{% elif (trigger_revert): %}
				L.ui.changes.revert();
			{% else %}
				L.ui.changes.confirm(true, Date.now() + {{rollback.remaining * 1000}}, {{sprintf('%J', rollback.token)}});
			{% endif %}
		});
	</script>
{% endif %}

{% if (media_error): %}
	<script>
		L.require('ui').then(function(ui) {
			ui.showIndicator('media_error', _('Theme fallback'), function(ev) {
				ui.showModal(_('Error loading theme'), [
					E('p', [
						_('A fallback is used since the configured theme failed to load with the error below.')
					]),
					E('hr'),
					E('div', { 'style': 'white-space:pre-line' }, {{ sprintf('%J', trim(media_error)) }}),
					E('div', { 'class': 'right' }, [
						E('button', { 'class': 'btn cbi-button', 'click': ui.hideModal }, _('Dismiss'))
					])
				]);
			});
		});
	</script>
{% endif %}

{% include(`themes/${theme}/footer`) %}

<!-- Lua compatibility mode active: {{ lua_active ? 'yes' : 'no' }} -->