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);  	}  	/** | 
