summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2014-05-29 21:28:47 +0200
committerLukas Reschke <lukas@statuscode.ch>2014-05-29 21:28:47 +0200
commit705242d3903034c148b4ad7c717d52be592f3e6d (patch)
treef4d1f1fe7230f9c8fb5e5747aa1719c9d377d8a4 /core
parent32a50563d3a93c304d7879212f349e6930d5b5d6 (diff)
parent7e055a94044100c17ffa103c56e2d238f9b4e6ac (diff)
downloadnextcloud-server-705242d3903034c148b4ad7c717d52be592f3e6d.tar.gz
nextcloud-server-705242d3903034c148b4ad7c717d52be592f3e6d.zip
Merge pull request #8727 from owncloud/upgrade-overview
Added update overview page
Diffstat (limited to 'core')
-rw-r--r--core/ajax/update.php8
-rw-r--r--core/command/upgrade.php3
-rw-r--r--core/css/styles.css10
-rw-r--r--core/js/js.js4
-rw-r--r--core/js/update.js108
-rw-r--r--core/templates/update.admin.php33
6 files changed, 136 insertions, 30 deletions
diff --git a/core/ajax/update.php b/core/ajax/update.php
index 55e8ab15ec2..84d7a21209e 100644
--- a/core/ajax/update.php
+++ b/core/ajax/update.php
@@ -15,6 +15,14 @@ if (OC::checkUpgrade(false)) {
$updater->listen('\OC\Updater', 'dbUpgrade', function () use ($eventSource, $l) {
$eventSource->send('success', (string)$l->t('Updated database'));
});
+ $updater->listen('\OC\Updater', 'disabledApps', function ($appList) use ($eventSource, $l) {
+ $list = array();
+ foreach ($appList as $appId) {
+ $info = OC_App::getAppInfo($appId);
+ $list[] = $info['name'] . ' (' . $info['id'] . ')';
+ }
+ $eventSource->send('success', (string)$l->t('Disabled incompatible apps: %s', implode(', ', $list)));
+ });
$updater->listen('\OC\Updater', 'failure', function ($message) use ($eventSource) {
$eventSource->send('failure', $message);
$eventSource->close();
diff --git a/core/command/upgrade.php b/core/command/upgrade.php
index ed72d136e24..8ce8ef9b6e5 100644
--- a/core/command/upgrade.php
+++ b/core/command/upgrade.php
@@ -56,6 +56,9 @@ class Upgrade extends Command {
$updater->listen('\OC\Updater', 'dbUpgrade', function () use($output) {
$output->writeln('<info>Updated database</info>');
});
+ $updater->listen('\OC\Updater', 'disabledApps', function ($appList) use($output) {
+ $output->writeln('<info>Disabled incompatible apps: ' . implode(', ', $appList) . '</info>');
+ });
$updater->listen('\OC\Updater', 'failure', function ($message) use($output) {
$output->writeln($message);
diff --git a/core/css/styles.css b/core/css/styles.css
index 423c40f6184..c493941fed8 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -370,6 +370,16 @@ input[type="submit"].enabled {
opacity: .6;
}
+#body-login .update h2 {
+ font-weight: bold;
+ font-size: 18px;
+ margin-bottom: 30px;
+}
+
+#body-login .infogroup {
+ margin-bottom: 15px;
+}
+
#body-login p#message img {
vertical-align: middle;
padding: 5px;
diff --git a/core/js/js.js b/core/js/js.js
index fde6018e9f4..3c3efc469bf 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -175,9 +175,13 @@ var OC={
PERMISSION_DELETE:8,
PERMISSION_SHARE:16,
PERMISSION_ALL:31,
+ /* jshint camelcase: false */
webroot:oc_webroot,
appswebroots:(typeof oc_appswebroots !== 'undefined') ? oc_appswebroots:false,
currentUser:(typeof oc_current_user!=='undefined')?oc_current_user:false,
+ config: oc_config,
+ appConfig: oc_appconfig || {},
+ theme: oc_defaults || {},
coreApps:['', 'admin','log','search','settings','core','3rdparty'],
/**
diff --git a/core/js/update.js b/core/js/update.js
index b1b7f6e37e8..cc0f541bd79 100644
--- a/core/js/update.js
+++ b/core/js/update.js
@@ -1,26 +1,86 @@
-$(document).ready(function () {
- 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'));
- message = t('core', 'Please reload the page.');
- $('<span>').addClass('error').append(message).append('<br />').appendTo($('.update'));
- updateEventSource.close();
- });
- 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);
+/*
+ * Copyright (c) 2014
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+(function() {
+ OC.Update = {
+ _started : false,
+
+ /**
+ * Start the upgrade process.
+ *
+ * @param $el progress list element
+ */
+ start: function($el) {
+ if (this._started) {
+ return;
+ }
+
+ this.$el = $el;
+
+ this._started = true;
+ this.addMessage(t(
+ 'core',
+ 'Updating {productName} to version {version}, this may take a while.', {
+ productName: OC.theme.name,
+ version: OC.config.versionstring
+ }),
+ 'bold'
+ ).append('<br />'); // FIXME: these should be ul/li with CSS paddings!
+
+ var updateEventSource = new OC.EventSource(OC.webroot+'/core/ajax/update.php');
+ updateEventSource.listen('success', function(message) {
+ $('<span>').append(message).append('<br />').appendTo($el);
+ });
+ updateEventSource.listen('error', function(message) {
+ $('<span>').addClass('error').append(message).append('<br />').appendTo($el);
+ message = t('core', 'Please reload the page.');
+ $('<span>').addClass('error').append(message).append('<br />').appendTo($el);
+ updateEventSource.close();
+ });
+ updateEventSource.listen('failure', function(message) {
+ $('<span>').addClass('error').append(message).append('<br />').appendTo($el);
+ $('<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($el);
+ });
+ updateEventSource.listen('done', function() {
+ // FIXME: use product name
+ $('<span>').addClass('bold')
+ .append('<br />')
+ .append(t('core', 'The update was successful. Redirecting you to ownCloud now.'))
+ .appendTo($el);
+ setTimeout(function () {
+ OC.redirect(OC.webroot);
+ }, 3000);
+ });
+ },
+
+ addMessage: function(message, className) {
+ var $span = $('<span>');
+ $span.addClass(className).append(message).append('<br />').appendTo(this.$el);
+ return $span;
+ }
+ };
+
+})();
+
+$(document).ready(function() {
+ $('.updateButton').on('click', function() {
+ var $progressEl = $('.updateProgress');
+ $progressEl.removeClass('hidden');
+ $('.updateOverview').addClass('hidden');
+ OC.Update.start($progressEl);
+ return false;
});
});
diff --git a/core/templates/update.admin.php b/core/templates/update.admin.php
index a652d5f195a..a09e2d07bf4 100644
--- a/core/templates/update.admin.php
+++ b/core/templates/update.admin.php
@@ -1,6 +1,27 @@
-<ul>
- <li class='update'>
- <?php p($l->t('Updating ownCloud to version %s, this may take a while.',
- array($_['version']))); ?><br /><br />
- </li>
-</ul>
+<div class="update">
+ <div class="updateOverview">
+ <h2 class="title bold"><?php p($l->t('%s will be updated to version %s.',
+ array($_['productName'], $_['version']))); ?></h2>
+ <?php if (!empty($_['appList'])) { ?>
+ <div class="infogroup">
+ <span class="bold"><?php p($l->t('The following apps will be disabled:')) ?></span>
+ <ul class="content appList">
+ <?php foreach ($_['appList'] as $appInfo) { ?>
+ <li><?php p($appInfo['name']) ?> (<?php p($appInfo['id']) ?>)</li>
+ <?php } ?>
+ </ul>
+ </div>
+ <?php } ?>
+ <?php if (!empty($_['oldTheme'])) { ?>
+ <div class="infogroup bold">
+ <?php p($l->t('The theme %s has been disabled.', array($_['oldTheme']))) ?>
+ </div>
+ <?php } ?>
+ <div class="infogroup bold">
+ <?php p($l->t('Please make sure that the database, the config folder and the data folder have been backed up before proceeding.')) ?>
+ </div>
+ <input class="updateButton" type="button" value="<?php p($l->t('Start update')) ?>">
+ </div>
+
+ <div class="updateProgress hidden"></div>
+</div>