aboutsummaryrefslogtreecommitdiffstats
path: root/core/ajax/update.php
diff options
context:
space:
mode:
authorThomas Mueller <thomas.mueller@tmit.eu>2013-01-06 22:40:35 +0100
committerThomas Mueller <thomas.mueller@tmit.eu>2013-01-06 22:40:35 +0100
commitbae175518427de1f43ac23dbc1e06a15f6933370 (patch)
tree90cdee24789526b1b6da16eda90e2c1547a66e62 /core/ajax/update.php
parent39d874cd902a4e3d4f7ae313ec5e15bafe35df13 (diff)
parent08d7b8ce309baebfc243727c215b63e732bf874e (diff)
downloadnextcloud-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.php67
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