(refs #1245) Display migrated plugin version if migration is failing

This commit is contained in:
Naoki Takezoe
2016-07-20 10:58:26 +09:00
parent 9bb4e473b9
commit cf1504bae7
3 changed files with 17 additions and 12 deletions

View File

@@ -13,6 +13,7 @@ import gitbucket.core.util.ControlUtil._
import gitbucket.core.util.Directory._
import gitbucket.core.util.StringUtil._
import io.github.gitbucket.scalatra.forms._
import io.github.gitbucket.solidbase.manager.JDBCVersionManager
import org.apache.commons.io.{FileUtils, IOUtils}
import org.apache.commons.mail.{DefaultAuthenticator, HtmlEmail}
import org.scalatra.i18n.Messages
@@ -175,7 +176,11 @@ trait SystemSettingsControllerBase extends AccountManagementControllerBase {
})
get("/admin/plugins")(adminOnly {
html.plugins(PluginRegistry().getPlugins())
val manager = new JDBCVersionManager(request2Session(request).conn)
val plugins = PluginRegistry().getPlugins().map { plugin =>
(plugin, manager.getCurrentVersion(plugin.pluginId))
}
html.plugins(plugins)
})

View File

@@ -176,11 +176,11 @@ object PluginRegistry {
// Initialize
plugin.initialize(instance, context, settings)
instance.addPlugin(PluginInfo(
pluginId = plugin.pluginId,
pluginName = plugin.pluginName,
version = plugin.versions.last.getVersion,
description = plugin.description,
pluginClass = plugin
pluginId = plugin.pluginId,
pluginName = plugin.pluginName,
pluginVersion = plugin.versions.last.getVersion,
description = plugin.description,
pluginClass = plugin
))
} catch {
@@ -212,7 +212,7 @@ case class Link(id: String, label: String, path: String, icon: Option[String] =
case class PluginInfo(
pluginId: String,
pluginName: String,
version: String,
pluginVersion: String,
description: String,
pluginClass: Plugin
)

View File

@@ -1,16 +1,16 @@
@(plugins: List[gitbucket.core.plugin.PluginInfo])(implicit context: gitbucket.core.controller.Context)
@(plugins: List[(gitbucket.core.plugin.PluginInfo, String)])(implicit context: gitbucket.core.controller.Context)
@gitbucket.core.html.main("Plugins"){
@gitbucket.core.admin.html.menu("plugins") {
<h1>Installed plugins</h1>
@if(plugins.size > 0) {
<ul>
@plugins.map {plugin =>
<li><a href="#@plugin.pluginId">@plugin.pluginId:@plugin.version</a></li>
@plugins.map { case (plugin, migrationVersion) =>
<li><a href="#@plugin.pluginId">@plugin.pluginId:@plugin.pluginVersion</a></li>
}
</ul>
@plugins.map {plugin =>
@plugins.map { case (plugin, migrationVersion) =>
<div class="panel panel-default">
<div class="panel-heading strong">@plugin.pluginName</div>
<div class="panel-body">
@@ -20,7 +20,7 @@
</div>
<div class="row">
<label class="col-md-2">Version</label>
<span class="col-md-10">@plugin.version</span>
<span class="col-md-10">@plugin.pluginVersion @if(plugin.pluginVersion != migrationVersion){ <span class="error">(Migration failed, current migrated version is @migrationVersion)</span> }</span>
</div>
<div class="row">
<label class="col-md-2">Name</label>