diff options
author | Michael Gapczynski <mtgap@owncloud.com> | 2013-01-04 10:21:33 -0500 |
---|---|---|
committer | Michael Gapczynski <mtgap@owncloud.com> | 2013-01-04 10:21:33 -0500 |
commit | e7eea3dd2e3eb0f5bd77901167656275d835cfb3 (patch) | |
tree | 67b2e5b53bc012c745768602f6b3e0d95a744399 /core/ajax | |
parent | 75058370795fda4f06f589ee970edf94dc0ddf88 (diff) | |
download | nextcloud-server-e7eea3dd2e3eb0f5bd77901167656275d835cfb3.tar.gz nextcloud-server-e7eea3dd2e3eb0f5bd77901167656275d835cfb3.zip |
Use hooks to send updates from apps
Diffstat (limited to 'core/ajax')
-rw-r--r-- | core/ajax/update.php | 54 |
1 files changed, 46 insertions, 8 deletions
diff --git a/core/ajax/update.php b/core/ajax/update.php index 6f5398f41cb..0d58f17f097 100644 --- a/core/ajax/update.php +++ b/core/ajax/update.php @@ -5,7 +5,11 @@ require_once '../../lib/base.php'; if (OC::checkUpgrade(false)) { $updateEventSource = new OC_EventSource(); - $updateEventSource->send('success', 'Turned on maintenance mode'); + $watcher = new UpdateWatcher($updateEventSource); + OC_Hook::connect('update', 'success', $watcher, 'success'); + OC_Hook::connect('update', 'error', $watcher, 'error'); + OC_Hook::connect('update', 'error', $watcher, 'failure'); + $watcher->success('Turned on maintenance mode'); // Check if the .htaccess is existing - this is needed for upgrades from really old ownCloud versions if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) { if (!OC_Util::ishtaccessworking()) { @@ -16,11 +20,9 @@ if (OC::checkUpgrade(false)) { } $result = OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml'); if (!$result) { - $updateEventSource->send('failure', 'Error updating database'); - $updateEventSource->close(); - die(); + $watcher->failure('Error updating database'); } - $updateEventSource->send('success', 'Updated database'); + $watcher->success('Updated database'); $minimizerCSS = new OC_Minimizer_CSS(); $minimizerCSS->clearCache(); $minimizerJS = new OC_Minimizer_JS(); @@ -30,7 +32,43 @@ if (OC::checkUpgrade(false)) { // load all apps to also upgrade enabled apps OC_App::loadApps(); OC_Config::setValue('maintenance', false); - $updateEventSource->send('success', 'Turned off maintenance mode'); - $updateEventSource->send('done', 'done'); - $updateEventSource->close(); + $watcher->success('Turned off maintenance mode'); + $watcher->done(); +} + +class UpdateWatcher { + /** + * @var \OC_EventSource $eventSource; + */ + private $eventSource; + + public function __construct($eventSource) { + $this->eventSource = $eventSource; + } + + public function success($message) { + OC_Util::obEnd(); + $this->eventSource->send('success', $message); + ob_start(); + } + + public function error($message) { + OC_Util::obEnd(); + $this->eventSource->send('error', $message); + ob_start(); + } + + public function failure($message) { + OC_Util::obEnd(); + $this->eventSource->send('failure', $message); + $this->eventSource->close(); + die(); + } + + public function done() { + OC_Util::obEnd(); + $this->eventSource->send('done', ''); + $this->eventSource->close(); + } + }
\ No newline at end of file |