diff options
author | Tristan Darricau <tristan.darricau@sensiolabs.com> | 2016-02-16 00:06:52 +0100 |
---|---|---|
committer | Tristan Darricau <tristan.darricau@sensiolabs.com> | 2016-02-16 00:06:52 +0100 |
commit | d0ce6a18df2172a6e9baf1f1c2802efb30b25323 (patch) | |
tree | 478bf6c878bacec7c4e60832e0af7d106bd52e52 /phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php | |
parent | 00d71d854cb844cba7755a2e8adfa4217dbc0ef0 (diff) | |
parent | 6debd9a1bea4ee69a06eac43cc6b2f856f601604 (diff) | |
download | forums-d0ce6a18df2172a6e9baf1f1c2802efb30b25323.tar forums-d0ce6a18df2172a6e9baf1f1c2802efb30b25323.tar.gz forums-d0ce6a18df2172a6e9baf1f1c2802efb30b25323.tar.bz2 forums-d0ce6a18df2172a6e9baf1f1c2802efb30b25323.tar.xz forums-d0ce6a18df2172a6e9baf1f1c2802efb30b25323.zip |
Merge pull request #4171 from CHItA/ticket/14462
[ticket/14462] Try to prevent timeouts in the installer
* CHItA/ticket/14462:
[ticket/14462] Not show timeout messages in convertors
[ticket/14462] Make timeout error translateable
[ticket/14462] Update ordering in install db config
[ticket/14462] Fix comments
[ticket/14462] Fix tests
[ticket/14462] Fix CS and typo
[ticket/14462] Set instance of db driver for database access using global
[ticket/14462] Fix installation in tests
[ticket/14462] Refactor tasks to be more modular
[ticket/14462] Further speed improvements
Diffstat (limited to 'phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php')
-rw-r--r-- | phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php | 63 |
1 files changed, 47 insertions, 16 deletions
diff --git a/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php b/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php index 31474ae4e9..8c62ec7bd0 100644 --- a/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php +++ b/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php @@ -209,9 +209,15 @@ class ajax_iohandler extends iohandler_base /** * {@inheritdoc} */ - public function send_response() + public function send_response($no_more_output = false) { - $json_data_array = $this->prepare_json_array(); + $json_data_array = $this->prepare_json_array($no_more_output); + + if (empty($json_data_array)) + { + return; + } + $json_data = json_encode($json_data_array); // Try to push content to the browser @@ -223,23 +229,43 @@ class ajax_iohandler extends iohandler_base /** * Prepares iohandler's data to be sent out to the client. * + * @param bool $no_more_output Whether or not there will be more output in this response + * * @return array */ - protected function prepare_json_array() + protected function prepare_json_array($no_more_output = false) { - $json_array = array( - 'errors' => $this->errors, - 'warnings' => $this->warnings, - 'logs' => $this->logs, - 'success' => $this->success, - 'download' => $this->download, - ); + $json_array = array(); + + if (!empty($this->errors)) + { + $json_array['errors'] = $this->errors; + $this->errors = array(); + } + + if (!empty($this->warnings)) + { + $json_array['warnings'] = $this->warnings; + $this->warnings = array(); + } - $this->errors = array(); - $this->warnings = array(); - $this->logs = array(); - $this->success = array(); - $this->download = array(); + if (!empty($this->logs)) + { + $json_array['logs'] = $this->logs; + $this->logs = array(); + } + + if (!empty($this->success)) + { + $json_array['success'] = $this->success; + $this->success = array(); + } + + if (!empty($this->download)) + { + $json_array['download'] = $this->download; + $this->download = array(); + } if (!empty($this->form)) { @@ -293,6 +319,11 @@ class ajax_iohandler extends iohandler_base $this->redirect_url = array(); } + if ($no_more_output) + { + $json_array['over'] = true; + } + return $json_array; } @@ -398,7 +429,7 @@ class ajax_iohandler extends iohandler_base public function redirect($url, $use_ajax = false) { $this->redirect_url = array('url' => $url, 'use_ajax' => $use_ajax); - $this->send_response(); + $this->send_response(true); } /** |