diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-05-27 15:20:33 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-05-27 15:20:33 +0200 |
commit | 02f682b156998a3f3f94fd506867c28eba878da9 (patch) | |
tree | ea401db4b0d3f1708452f74b3636ba735b192765 | |
parent | 146583a98d632fceaff1642cd9bc3b566c51615a (diff) | |
download | nextcloud-server-02f682b156998a3f3f94fd506867c28eba878da9.tar.gz nextcloud-server-02f682b156998a3f3f94fd506867c28eba878da9.zip |
Now showing disabled apps as upgrade status line
- Added app id in update overview.
- Added status message for disabled app for CLI upgrade and web upgrade
-rw-r--r-- | core/ajax/update.php | 8 | ||||
-rw-r--r-- | core/command/upgrade.php | 3 | ||||
-rw-r--r-- | core/templates/update.admin.php | 4 | ||||
-rw-r--r-- | lib/base.php | 2 | ||||
-rw-r--r-- | lib/private/app.php | 8 | ||||
-rw-r--r-- | lib/private/updater.php | 5 |
6 files changed, 26 insertions, 4 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/templates/update.admin.php b/core/templates/update.admin.php index 0b1ae7854de..b9b0fdb7748 100644 --- a/core/templates/update.admin.php +++ b/core/templates/update.admin.php @@ -8,8 +8,8 @@ <div class="section"> <div class="title bold"><?php p($l->t('The following apps will be disabled during the upgrade:')) ?></div> <ul class="content appList"> - <?php foreach ($_['appList'] as $appName) { ?> - <li><?php p($appName) ?></li> + <?php foreach ($_['appList'] as $appInfo) { ?> + <li><?php p($appInfo['name']) ?> (<?php p($appInfo['id']) ?>)</li> <?php } ?> </ul> </div> diff --git a/lib/base.php b/lib/base.php index 455e8ad4613..7bca1b7c877 100644 --- a/lib/base.php +++ b/lib/base.php @@ -298,7 +298,7 @@ class OC { foreach ($apps as $appId) { $info = OC_App::getAppInfo($appId); if(!OC_App::isAppCompatible($version, $info)) { - $incompatibleApps[] = $info['name']; + $incompatibleApps[] = $info; } } $tmpl->assign('appList', $incompatibleApps); diff --git a/lib/private/app.php b/lib/private/app.php index 50065197eb4..ea0453e58ea 100644 --- a/lib/private/app.php +++ b/lib/private/app.php @@ -889,8 +889,14 @@ class OC_App{ * ownCloud version. disable them if not. * This is important if you upgrade ownCloud and have non ported 3rd * party apps installed. + * + * @param array $apps optional app id list to check, uses all enabled apps + * when not specified + * + * @return array containing the list of ids of the disabled apps */ public static function checkAppsRequirements($apps = array()) { + $disabledApps = array(); if (empty($apps)) { $apps = OC_App::getEnabledApps(); } @@ -905,8 +911,10 @@ class OC_App{ OC_Log::ERROR); OC_App::disable( $app ); OC_Hook::emit('update', 'success', 'Disabled '.$info['name'].' app because it is not compatible'); + $disabledApps[] = $app; } } + return $disabledApps; } /** diff --git a/lib/private/updater.php b/lib/private/updater.php index d8694ac6ed5..58d3cab73aa 100644 --- a/lib/private/updater.php +++ b/lib/private/updater.php @@ -134,7 +134,10 @@ class Updater extends BasicEmitter { $this->emit('\OC\Updater', 'failure', array($exception->getMessage())); } \OC_Config::setValue('version', implode('.', \OC_Util::getVersion())); - \OC_App::checkAppsRequirements(); + $disabledApps = \OC_App::checkAppsRequirements(); + if (!empty($disabledApps)) { + $this->emit('\OC\Updater', 'disabledApps', array($disabledApps)); + } // load all apps to also upgrade enabled apps \OC_App::loadApps(); |