summaryrefslogtreecommitdiffstats
path: root/core/ajax
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2013-01-04 10:21:33 -0500
committerMichael Gapczynski <mtgap@owncloud.com>2013-01-04 10:21:33 -0500
commite7eea3dd2e3eb0f5bd77901167656275d835cfb3 (patch)
tree67b2e5b53bc012c745768602f6b3e0d95a744399 /core/ajax
parent75058370795fda4f06f589ee970edf94dc0ddf88 (diff)
downloadnextcloud-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.php54
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