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