aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/assets/javascript/installer.js
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/assets/javascript/installer.js')
-rw-r--r--phpBB/assets/javascript/installer.js62
1 files changed, 56 insertions, 6 deletions
diff --git a/phpBB/assets/javascript/installer.js b/phpBB/assets/javascript/installer.js
index d9f446a28d..03b5b7deae 100644
--- a/phpBB/assets/javascript/installer.js
+++ b/phpBB/assets/javascript/installer.js
@@ -13,6 +13,9 @@
var currentProgress = 0;
var refreshRequested = false;
var transmissionOver = false;
+ var status = '';
+ var statusCount = 0;
+ var statusTimeout = null;
// Template related variables
var $contentWrapper = $('.install-body').find('.main');
@@ -372,12 +375,45 @@
}
if (timeoutDetected) {
- addMessage('error',
- [{
- title: installLang.title,
- description: installLang.msg
- }]
- );
+ status = queryInstallerStatus();
+ statusCount = 0;
+
+ if (status === 'continue') {
+ refreshRequested = false;
+ doRefresh();
+ } else if (status === 'running') {
+ statusTimeout = setTimeout(function() {
+ var s = queryInstallerStatus();
+ if (statusCount === 12) { // 1 minute hard cap
+ s = 'fail';
+ }
+
+ if (s === 'continue') {
+ refreshRequested = false;
+ doRefresh();
+ clearTimeout(statusTimeout);
+ } else if (s === 'fail') {
+ addMessage('error',
+ [{
+ title: installLang.title,
+ description: installLang.msg
+ }]
+ );
+ clearTimeout(statusTimeout);
+ }
+
+ statusCount++;
+ },
+ 5000
+ );
+ } else {
+ addMessage('error',
+ [{
+ title: installLang.title,
+ description: installLang.msg
+ }]
+ );
+ }
}
}
}
@@ -564,4 +600,18 @@
submitForm($form, $(this));
});
}
+
+ /**
+ * Queries the installer's status
+ */
+ function queryInstallerStatus()
+ {
+ var data = null;
+ $.ajax({url: "../installer/status", dataType: "json"})
+ .done(function(d) {
+ data = d;
+ });
+
+ return data.status;
+ }
})(jQuery); // Avoid conflicts with other libraries