diff --git a/src/main/scala/app/SystemSettingsController.scala b/src/main/scala/app/SystemSettingsController.scala index 42e52d7..4e25f82 100644 --- a/src/main/scala/app/SystemSettingsController.scala +++ b/src/main/scala/app/SystemSettingsController.scala @@ -128,10 +128,12 @@ // TODO Move to PluginSystem or Service? private def getAvailablePlugins(): List[SystemSettingsControllerBase.AvailablePlugin] = { - val dir = getPluginCacheDir() - if(dir.exists && dir.isDirectory){ + val installedPlugins = plugin.PluginSystem.plugins + val repositoryRoot = getPluginCacheDir() + + if(repositoryRoot.exists && repositoryRoot.isDirectory){ PluginSystem.repositories.flatMap { repo => - val repoDir = new java.io.File(dir, repo.id) + val repoDir = new java.io.File(repositoryRoot, repo.id) if(repoDir.exists && repoDir.isDirectory){ repoDir.listFiles.filter(d => d.isDirectory && !d.getName.startsWith(".")).map { plugin => val propertyFile = new java.io.File(plugin, "plugin.properties") @@ -147,7 +149,8 @@ properties.getProperty("version"), properties.getProperty("author"), properties.getProperty("url"), - properties.getProperty("description")) + properties.getProperty("description"), + if(installedPlugins.exists(_.id == properties.getProperty("id"))) "installed" else "available") } } else Nil } @@ -156,6 +159,6 @@ } object SystemSettingsControllerBase { - case class AvailablePlugin( - repository: String, id: String, version: String, author: String, url: String, description: String) + case class AvailablePlugin(repository: String, id: String, version: String, + author: String, url: String, description: String, status: String) } diff --git a/src/main/twirl/admin/plugins/available.scala.html b/src/main/twirl/admin/plugins/available.scala.html index ee5eeff..73e914a 100644 --- a/src/main/twirl/admin/plugins/available.scala.html +++ b/src/main/twirl/admin/plugins/available.scala.html @@ -15,8 +15,13 @@ @plugins.zipWithIndex.map { case (plugin, i) =>