From e4682fffce7de71554972fc11ae92c6334694a85 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Mon, 13 Jul 2015 11:08:50 +0200 Subject: [PATCH] firmware: poll for GUI to come back up; fixes #250 --- .../mvc/app/views/OPNsense/Core/firmware.volt | 33 ++++++++++--------- src/opnsense/scripts/pkg_upgrade.sh | 6 ++-- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt index 6c715b6c8..ed83b1b15 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt @@ -97,7 +97,7 @@ POSSIBILITY OF SUCH DAMAGE. ajaxCall('/api/core/firmware/upgrade',{upgrade:$.upgrade_action},function() { $("#upgrade_progress").removeClass("fa fa-spinner fa-pulse"); $('#updatelist').empty(); - setTimeout(trackStatus, 1000) ; + setTimeout(trackStatus, 500); }); } @@ -131,6 +131,17 @@ POSSIBILITY OF SUCH DAMAGE. } } + function rebootWait() { + $.ajax({ + url: document.url, + timeout: 2500 + }).fail(function () { + setTimeout(rebootWait, 2500); + }).done(function () { + $(location).attr('href',"/"); + }); + } + /** * handle update status */ @@ -147,25 +158,17 @@ POSSIBILITY OF SUCH DAMAGE. // reboot required, tell the user to wait until this is finished and redirect after 5 minutes BootstrapDialog.show({ type:BootstrapDialog.TYPE_INFO, - title: "{{ lang._('Upgrade') }}", + title: "{{ lang._('Your device is rebooting') }}", message: "{{ lang._('The upgrade is finished and your device is being rebooted at the moment, please wait.') }}", closable: false, onshow:function(dialogRef){ dialogRef.setClosable(false); - dialogRef.getModalBody().html("{{ lang._('You will be redirected to the login page in 5 minutes.') }}"); - setTimeout(function(){ - dialogRef.close(); - $(location).attr('href',"/"); - }, 60000 * 5); + dialogRef.getModalBody().html( + "{{ lang._('The upgrade is finished and your device is being rebooted at the moment, please wait...') }}" + + ' ' + ); + setTimeout(rebootWait, 30000); }, - buttons: [{ - label: "{{ lang._('Close') }}", - cssClass: 'btn-success', - autospin: true, - action: function(dialogRef){ - dialogRef.enableButtons(false); - } - }] }); } else { // schedule next poll diff --git a/src/opnsense/scripts/pkg_upgrade.sh b/src/opnsense/scripts/pkg_upgrade.sh index 4e86f6987..95bed8de3 100755 --- a/src/opnsense/scripts/pkg_upgrade.sh +++ b/src/opnsense/scripts/pkg_upgrade.sh @@ -62,8 +62,8 @@ fi if [ -n "${REBOOT}" ]; then echo '***REBOOT***' >> ${PKG_PROGRESS_FILE} # give the frontend some time to figure out that a reboot is coming - sleep 10 + sleep 5 /usr/local/etc/rc.reboot -else - echo '***DONE***' >> ${PKG_PROGRESS_FILE} fi + +echo '***DONE***' >> ${PKG_PROGRESS_FILE}