(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.Directory._
import gitbucket.core.util.StringUtil._ import gitbucket.core.util.StringUtil._
import io.github.gitbucket.scalatra.forms._ import io.github.gitbucket.scalatra.forms._
import io.github.gitbucket.solidbase.manager.JDBCVersionManager
import org.apache.commons.io.{FileUtils, IOUtils} import org.apache.commons.io.{FileUtils, IOUtils}
import org.apache.commons.mail.{DefaultAuthenticator, HtmlEmail} import org.apache.commons.mail.{DefaultAuthenticator, HtmlEmail}
import org.scalatra.i18n.Messages import org.scalatra.i18n.Messages
@@ -175,7 +176,11 @@ trait SystemSettingsControllerBase extends AccountManagementControllerBase {
}) })
get("/admin/plugins")(adminOnly { 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 // Initialize
plugin.initialize(instance, context, settings) plugin.initialize(instance, context, settings)
instance.addPlugin(PluginInfo( instance.addPlugin(PluginInfo(
pluginId = plugin.pluginId, pluginId = plugin.pluginId,
pluginName = plugin.pluginName, pluginName = plugin.pluginName,
version = plugin.versions.last.getVersion, pluginVersion = plugin.versions.last.getVersion,
description = plugin.description, description = plugin.description,
pluginClass = plugin pluginClass = plugin
)) ))
} catch { } catch {
@@ -212,7 +212,7 @@ case class Link(id: String, label: String, path: String, icon: Option[String] =
case class PluginInfo( case class PluginInfo(
pluginId: String, pluginId: String,
pluginName: String, pluginName: String,
version: String, pluginVersion: String,
description: String, description: String,
pluginClass: Plugin 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.html.main("Plugins"){
@gitbucket.core.admin.html.menu("plugins") { @gitbucket.core.admin.html.menu("plugins") {
<h1>Installed plugins</h1> <h1>Installed plugins</h1>
@if(plugins.size > 0) { @if(plugins.size > 0) {
<ul> <ul>
@plugins.map {plugin => @plugins.map { case (plugin, migrationVersion) =>
<li><a href="#@plugin.pluginId">@plugin.pluginId:@plugin.version</a></li> <li><a href="#@plugin.pluginId">@plugin.pluginId:@plugin.pluginVersion</a></li>
} }
</ul> </ul>
@plugins.map {plugin => @plugins.map { case (plugin, migrationVersion) =>
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading strong">@plugin.pluginName</div> <div class="panel-heading strong">@plugin.pluginName</div>
<div class="panel-body"> <div class="panel-body">
@@ -20,7 +20,7 @@
</div> </div>
<div class="row"> <div class="row">
<label class="col-md-2">Version</label> <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>
<div class="row"> <div class="row">
<label class="col-md-2">Name</label> <label class="col-md-2">Name</label>