diff --git a/core/js/update.js b/core/js/update.js new file mode 100644 index 0000000000..8ab02bbf93 --- /dev/null +++ b/core/js/update.js @@ -0,0 +1,23 @@ +$(document).ready(function () { + var updateEventSource = new OC.EventSource(OC.webroot+'/core/ajax/update.php'); + updateEventSource.listen('success', function(message) { + $('').append(message).append('
').appendTo($('.update')); + }); + updateEventSource.listen('error', function(message) { + $('').addClass('error').append(message).append('
').appendTo($('.update')); + }); + updateEventSource.listen('failure', function(message) { + $('').addClass('error').append(message).append('
').appendTo($('.update')); + $('') + .addClass('error bold') + .append('
') + .append(t('core', 'The update was unsuccessful. Please report this issue to the ownCloud community.')) + .appendTo($('.update')); + }); + updateEventSource.listen('done', function(message) { + $('').addClass('bold').append('
').append(t('core', 'The update was successful. Redirecting you to ownCloud now.')).appendTo($('.update')); + setTimeout(function () { + window.location.href = OC.webroot; + }, 3000); + }); +}); \ No newline at end of file diff --git a/core/templates/update.php b/core/templates/update.php index c65230db0d..ae714dcfb9 100644 --- a/core/templates/update.php +++ b/core/templates/update.php @@ -3,28 +3,3 @@ t('Updating ownCloud to version %s, this may take a while.', array($_['version'])); ?>

- \ No newline at end of file diff --git a/lib/base.php b/lib/base.php index aff3e1d5a1..f9818d3514 100644 --- a/lib/base.php +++ b/lib/base.php @@ -259,6 +259,7 @@ class OC if ($showTemplate && !OC_Config::getValue('maintenance', false)) { OC_Config::setValue('maintenance', true); OC_Log::write('core', 'starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, OC_Log::DEBUG); + OC_Util::addscript('update'); $tmpl = new OC_Template('', 'update', 'guest'); $tmpl->assign('version', OC_Util::getVersionString()); $tmpl->printPage(); @@ -429,8 +430,6 @@ class OC self::checkSSL(); self::initSession(); self::initTemplateEngine(); - self::checkMaintenanceMode(); - self::checkUpgrade(); $errors = OC_Util::checkServer(); if (count($errors) > 0) { @@ -570,10 +569,13 @@ class OC return; } + // Check if ownCloud is installed or in maintenance (update) mode if (!OC_Config::getValue('installed', false)) { require_once 'core/setup.php'; exit(); } + self::checkMaintenanceMode(); + self::checkUpgrade(); // Handle redirect URL for logged in users if (isset($_REQUEST['redirect_url']) && OC_User::isLoggedIn()) {