diff options
author | Michael Gapczynski <mtgap@owncloud.com> | 2013-01-03 21:32:33 -0500 |
---|---|---|
committer | Michael Gapczynski <mtgap@owncloud.com> | 2013-01-03 21:32:33 -0500 |
commit | 75058370795fda4f06f589ee970edf94dc0ddf88 (patch) | |
tree | 9843807302eb565e6d7125e857117bdca7cd216c /core | |
parent | a52aa69ffe5f6d00de7855c9a376f347c03b99f7 (diff) | |
download | nextcloud-server-75058370795fda4f06f589ee970edf94dc0ddf88.tar.gz nextcloud-server-75058370795fda4f06f589ee970edf94dc0ddf88.zip |
Basic update progress of database update only
Diffstat (limited to 'core')
-rw-r--r-- | core/ajax/update.php | 36 | ||||
-rw-r--r-- | core/css/styles.css | 3 | ||||
-rw-r--r-- | core/templates/update.php | 27 |
3 files changed, 65 insertions, 1 deletions
diff --git a/core/ajax/update.php b/core/ajax/update.php new file mode 100644 index 00000000000..6f5398f41cb --- /dev/null +++ b/core/ajax/update.php @@ -0,0 +1,36 @@ +<?php +set_time_limit(0); +$RUNTIME_NOAPPS = true; +require_once '../../lib/base.php'; + +if (OC::checkUpgrade(false)) { + $updateEventSource = new OC_EventSource(); + $updateEventSource->send('success', 'Turned on maintenance mode'); + // Check if the .htaccess is existing - this is needed for upgrades from really old ownCloud versions + if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) { + if (!OC_Util::ishtaccessworking()) { + if (!file_exists(OC::$SERVERROOT . '/data/.htaccess')) { + OC_Setup::protectDataDirectory(); + } + } + } + $result = OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml'); + if (!$result) { + $updateEventSource->send('failure', 'Error updating database'); + $updateEventSource->close(); + die(); + } + $updateEventSource->send('success', 'Updated database'); + $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); + $updateEventSource->send('success', 'Turned off maintenance mode'); + $updateEventSource->send('done', 'done'); + $updateEventSource->close(); +}
\ No newline at end of file diff --git a/core/css/styles.css b/core/css/styles.css index d635916b5ae..6e1cef72eda 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -214,7 +214,8 @@ div.jp-play-bar, div.jp-seek-bar { padding:0; } .pager { list-style:none; float:right; display:inline; margin:.7em 13em 0 0; } .pager li { display:inline-block; } -li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; background:#ffe .8em .8em no-repeat; color:#FF3B3B; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; } +li.update, li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; background:#ffe .8em .8em no-repeat; border:1px solid #ccc; -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; cursor:default; } +.error { color:#FF3B3B; } .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { overflow:hidden; text-overflow:ellipsis; } .hint { background-image:url('../img/actions/info.png'); background-repeat:no-repeat; color:#777777; padding-left:25px; background-position:0 0.3em;} .separator { display:inline; border-left:1px solid #d3d3d3; border-right:1px solid #fff; height:10px; width:0px; margin:4px; } diff --git a/core/templates/update.php b/core/templates/update.php new file mode 100644 index 00000000000..cf3f2ab0d79 --- /dev/null +++ b/core/templates/update.php @@ -0,0 +1,27 @@ +<ul> + <li class='update'> + <?php echo $l->t('Updating ownCloud from version %s to version %s, this may take a while.', array($_['installed'], $_['current'])); ?><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>
\ No newline at end of file |