luci-mod-admin-full: improve reboot page

This fix problem with empty controller, the check function will never stop to
check if the device finish to reboot and we set more tries to wait the router
for a longer times.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[reworked markup, simplified logic, removed superfluous alert]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Ansuel Smith 2018-06-05 22:12:19 +02:00 committed by Jo-Philipp Wich
parent cde13dc245
commit ddbde3caaa

View file

@ -16,18 +16,24 @@
<hr />
<input class="cbi-button cbi-button-action important" type="button" value="<%:Perform reboot%>" onclick="reboot(this)" />
<p class="alert-message notice reboot-message" style="display:none">
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
<span><%:Device is rebooting...%></span>
</p>
<script type="text/javascript">//<![CDATA[
var tries = 0;
var tries = 0,
message = document.querySelector('p.reboot-message'),
label = message.querySelector('span');
function ok() {
window.location = '<%=controller%>/admin';
window.location = '<%=url("admin")%>';
}
function check() {
if (tries++ < 12)
window.setTimeout(ping, 5000);
else
alert('<%:Device unreachable%>');
window.setTimeout(ping, 5000);
}
function ping() {
@ -37,22 +43,20 @@
img.onerror = check;
img.src = '<%=resource%>/icons/loading.gif?' + Math.random();
document.getElementById('reboot-message').innerHTML = '<%:Waiting for device...%>';
if (tries++ >= 30) {
message.classList.remove('notice');
message.classList.add('warning');
label.innerHTML = '<%:Device unreachable! Still waiting for device...%>';
}
}
function reboot(button) {
button.style.display = 'none';
document.getElementById('reboot-message').parentNode.style.display = '';
message.style.display = '';
label.innerHTML = '<%:Waiting for device...%>';
(new XHR()).post('<%=controller%>/admin/system/reboot/call', { token: '<%=token%>' }, check);
(new XHR()).post('<%=url("admin/system/reboot/call")%>', { token: '<%=token%>' }, check);
}
//]]></script>
<input class="cbi-button cbi-button-action important" type="button" value="<%:Perform reboot%>" onclick="reboot(this)" />
<p class="alert-message" style="display:none">
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
<span id="reboot-message"><%:Device is rebooting...%></span>
</p>
<%+footer%>