{# 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 type="text/javascript"> 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 type="text/javascript"> 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' }} -->