diff --git a/app/views/admin/plugin/index.php b/app/views/admin/plugin/index.php index c2a2034af33c707b5a95492ab8515f7046c833f8..9d7190d88de4d86a5c602f2936a7479da862c4f9 100644 --- a/app/views/admin/plugin/index.php +++ b/app/views/admin/plugin/index.php @@ -84,10 +84,9 @@ use Studip\Button, Studip\LinkButton; <td <? if (!$plugin['enabled']) echo 'class="quiet"'; ?>> <? if (!$plugin['depends']) : ?> <?= htmlReady($migrations[$pluginid]['schema_version'] ?? '') ?> - <? if (!empty($migrations[$pluginid]['schema_version']) && !empty($migrations[$pluginid]['migration_top_version']) - && ($migrations[$pluginid]['schema_version'] < $migrations[$pluginid]['migration_top_version'])): ?> + <? if (!empty($migrations[$pluginid]['pending_migrations'])): ?> <a href="<?= $controller->url_for('admin/plugin/migrate/' . $pluginid) ?>" - title="<?= sprintf(_('Update auf Version %d verfügbar'), $migrations[$pluginid]['migration_top_version']) ?>"> + title="<?= sprintf(_('%d ausstehende Migration(en)'), $migrations[$pluginid]['pending_migrations']) ?>"> <?= Icon::create('plugin', Icon::ROLE_STATUS_RED) ?> </a> <? endif; ?> diff --git a/cli/Commands/Plugins/PluginInfo.php b/cli/Commands/Plugins/PluginInfo.php index 492c1aea14ea9a8688ab28207e7a3106baa3842d..e1b00f48e522b93f7bc2a4911658500c5e029d43 100644 --- a/cli/Commands/Plugins/PluginInfo.php +++ b/cli/Commands/Plugins/PluginInfo.php @@ -35,7 +35,7 @@ class PluginInfo extends AbstractPluginCommand $basepath = \Config::get()->PLUGINS_PATH; foreach ($plugins as $plugin) { - $plugindir = $basepath . '/' . $plugin['path'] . '/'; + $plugindir = $basepath . '/' . $plugin['path']; $plugin['class_exists'] = $this->pluginClassExists($plugindir, $plugin); $plugin['type'] = join(',', $plugin['type']); @@ -43,7 +43,7 @@ class PluginInfo extends AbstractPluginCommand if (is_dir($plugindir . '/migrations')) { $schemaVersion = new \DBSchemaVersion($plugin['name']); $migrator = new \Migrator($plugindir . '/migrations', $schemaVersion); - $plugin['migration_top_version'] = $migrator->topVersion(); + $plugin['pending_migrations'] = count($migrator->relevantMigrations(null)); $plugin['schema_version'] = $schemaVersion->get(); } diff --git a/lib/classes/PluginAdministration.php b/lib/classes/PluginAdministration.php index 4cdc9a4268115a3a90b80e388e8914f4a5622364..763f67dca3d8f20df82c5128c9f649a46d8edc25 100644 --- a/lib/classes/PluginAdministration.php +++ b/lib/classes/PluginAdministration.php @@ -360,11 +360,11 @@ class PluginAdministration $plugins = $plugin_manager->getPluginInfos(); $basepath = Config::get()->PLUGINS_PATH; foreach ($plugins as $id => $plugin) { - $plugindir = $basepath . '/' . $plugin['path'] . '/'; + $plugindir = $basepath . '/' . $plugin['path']; if (is_dir($plugindir . '/migrations')) { $schema_version = new DBSchemaVersion($plugin['name']); $migrator = new Migrator($plugindir . '/migrations', $schema_version); - $info[$id]['migration_top_version'] = $migrator->topVersion(); + $info[$id]['pending_migrations'] = count($migrator->relevantMigrations(null)); $info[$id]['schema_version'] = $schema_version->get(); } } @@ -381,12 +381,11 @@ class PluginAdministration { $plugin_manager = PluginManager::getInstance(); $plugin = $plugin_manager->getPluginInfoById($plugin_id); - $basepath = Config::get()->PLUGINS_PATH; - $plugindir = $basepath . '/' . $plugin['path'] . '/'; + $plugindir = Config::get()->PLUGINS_PATH . '/' . $plugin['path']; $log = ''; if (is_dir($plugindir . '/migrations')) { $schema_version = new DBSchemaVersion($plugin['name']); - $migrator = new Migrator($plugindir .'/migrations', $schema_version, true); + $migrator = new Migrator($plugindir . '/migrations', $schema_version, true); ob_start(); $migrator->migrateTo(null); $log = ob_get_clean();