aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/assets/javascript
diff options
context:
space:
mode:
authorMáté Bartus <mate.bartus@gmail.com>2016-02-28 00:19:24 +0100
committerMáté Bartus <mate.bartus@gmail.com>2016-02-28 14:05:07 +0100
commit062358f8b1d9a7fa3d9be97f6b58e06fea7ca844 (patch)
tree88c0da83c6a25eda15c9fd70af5dc23ae3ddb77a /phpBB/assets/javascript
parent30db51a86e009f50920f8c0c6c05da26e2b10a56 (diff)
downloadforums-062358f8b1d9a7fa3d9be97f6b58e06fea7ca844.tar
forums-062358f8b1d9a7fa3d9be97f6b58e06fea7ca844.tar.gz
forums-062358f8b1d9a7fa3d9be97f6b58e06fea7ca844.tar.bz2
forums-062358f8b1d9a7fa3d9be97f6b58e06fea7ca844.tar.xz
forums-062358f8b1d9a7fa3d9be97f6b58e06fea7ca844.zip
[ticket/14487] Try to handle connection timeouts
PHPBB3-14487
Diffstat (limited to 'phpBB/assets/javascript')
-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