diff options
author | Thomas Mueller <thomas.mueller@tmit.eu> | 2013-01-06 22:40:35 +0100 |
---|---|---|
committer | Thomas Mueller <thomas.mueller@tmit.eu> | 2013-01-06 22:40:35 +0100 |
commit | bae175518427de1f43ac23dbc1e06a15f6933370 (patch) | |
tree | 90cdee24789526b1b6da16eda90e2c1547a66e62 /core/ajax/update.php | |
parent | 39d874cd902a4e3d4f7ae313ec5e15bafe35df13 (diff) | |
parent | 08d7b8ce309baebfc243727c215b63e732bf874e (diff) | |
download | nextcloud-server-bae175518427de1f43ac23dbc1e06a15f6933370.tar.gz nextcloud-server-bae175518427de1f43ac23dbc1e06a15f6933370.zip |
Merge branch 'master' into fixing-784-master
Conflicts:
apps/files/ajax/upload.php
apps/files/js/files.js
lib/helper.php
Diffstat (limited to 'core/ajax/update.php')
-rw-r--r-- | core/ajax/update.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/core/ajax/update.php b/core/ajax/update.php new file mode 100644 index 00000000000..20ab045c892 --- /dev/null +++ b/core/ajax/update.php @@ -0,0 +1,67 @@ +<?php +set_time_limit(0); +$RUNTIME_NOAPPS = true; +require_once '../../lib/base.php'; + +if (OC::checkUpgrade(false)) { + $updateEventSource = new OC_EventSource(); + $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'); + try { + $result = OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml'); + $watcher->success('Updated database'); + } catch (Exception $exception) { + $watcher->failure($exception->getMessage()); + } + $minimizerCSS = new OC_Minimizer_CSS(); + $minimizerCSS->clearCache(); + $minimizerJS = new OC_Minimizer_JS(); + $minimizerJS->clearCache(); + OC_Config::setValue('version', implode('.', OC_Util::getVersion())); + OC_App::checkAppsRequirements(); + // load all apps to also upgrade enabled apps + OC_App::loadApps(); + OC_Config::setValue('maintenance', false); + $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 |