diff --git a/src/main/scala/ScalatraBootstrap.scala b/src/main/scala/ScalatraBootstrap.scala index 7ba1d02..5947977 100644 --- a/src/main/scala/ScalatraBootstrap.scala +++ b/src/main/scala/ScalatraBootstrap.scala @@ -32,6 +32,7 @@ context.mount(new DashboardController, "/*") context.mount(new UserManagementController, "/*") context.mount(new SystemSettingsController, "/*") + context.mount(new PluginsController, "/*") context.mount(new AccountController, "/*") context.mount(new RepositoryViewerController, "/*") context.mount(new WikiController, "/*") diff --git a/src/main/scala/gitbucket/core/controller/PluginsController.scala b/src/main/scala/gitbucket/core/controller/PluginsController.scala new file mode 100644 index 0000000..942e169 --- /dev/null +++ b/src/main/scala/gitbucket/core/controller/PluginsController.scala @@ -0,0 +1,11 @@ +package gitbucket.core.controller + +import gitbucket.core.admin.plugins.html +import gitbucket.core.plugin.PluginRegistry +import gitbucket.core.util.AdminAuthenticator + +class PluginsController extends ControllerBase with AdminAuthenticator { + get("/admin/plugins")(adminOnly { + html.plugins(PluginRegistry().getPlugins()) + }) +} diff --git a/src/main/twirl/gitbucket/core/admin/menu.scala.html b/src/main/twirl/gitbucket/core/admin/menu.scala.html index e0507f8..d4780c5 100644 --- a/src/main/twirl/gitbucket/core/admin/menu.scala.html +++ b/src/main/twirl/gitbucket/core/admin/menu.scala.html @@ -11,6 +11,9 @@ System Settings + + Plugins +
  • H2 Console
  • diff --git a/src/main/twirl/gitbucket/core/admin/plugins/plugins.scala.html b/src/main/twirl/gitbucket/core/admin/plugins/plugins.scala.html new file mode 100644 index 0000000..48ff299 --- /dev/null +++ b/src/main/twirl/gitbucket/core/admin/plugins/plugins.scala.html @@ -0,0 +1,30 @@ +@(plugins: List[gitbucket.core.plugin.PluginInfo])(implicit context: gitbucket.core.controller.Context) +@import context._ +@import gitbucket.core.view.helpers._ +@html.main("Plugins"){ + @admin.html.menu("plugins") { +

    Installed plugins

    + + @if(plugins.size > 0) { + + + @plugins.map {plugin => +
    +
    @plugin.pluginName
    +
    +

    Id: @plugin.pluginId

    +

    Version: @plugin.version

    +

    Name: @plugin.pluginName

    +

    @plugin.description

    +
    +
    + } + } else { +

    No plugin detected on your gitbucket installation.

    + } + } +}