Merge pull request #1079 from owncloud/update-progress
Updater progress feedbackremotes/origin/stable5
commit
da7a14e9a6
@ -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(); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,31 @@ |
||||
<ul> |
||||
<li class='update'> |
||||
<?php echo $l->t('Updating ownCloud to version %s, this may take a while.', array($_['version'])); ?><br /><br />
|
||||
</li> |
||||
</ul> |
||||
<script> |
||||
$(document).ready(function () { |
||||
OC.EventSource.requesttoken = oc_requesttoken; |
||||
var updateEventSource = new OC.EventSource(OC.webroot+'/core/ajax/update.php'); |
||||
updateEventSource.listen('success', function(message) { |
||||
$('<span>').append(message).append('<br />').appendTo($('.update')); |
||||
}); |
||||
updateEventSource.listen('error', function(message) { |
||||
$('<span>').addClass('error').append(message).append('<br />').appendTo($('.update')); |
||||
}); |
||||
updateEventSource.listen('failure', function(message) { |
||||
$('<span>').addClass('error').append(message).append('<br />').appendTo($('.update')); |
||||
$('<span>') |
||||
.addClass('error bold') |
||||
.append('<br />') |
||||
.append(t('core', 'The update was unsuccessful. Please report this issue to the <a href="https://github.com/owncloud/core/issues" target="_blank">ownCloud community</a>.')) |
||||
.appendTo($('.update')); |
||||
}); |
||||
updateEventSource.listen('done', function(message) { |
||||
$('<span>').addClass('bold').append('<br />').append(t('core', 'The update was successful. Redirecting you to ownCloud now.')).appendTo($('.update')); |
||||
setTimeout(function () { |
||||
window.location.href = OC.webroot; |
||||
}, 3000); |
||||
}); |
||||
}); |
||||
</script> |
||||
Loading…
Reference in new issue