(refs #32)Display plugin's status

This commit is contained in:
Naoki Takezoe
2014-06-16 01:20:42 +09:00
parent 4bd6ef143a
commit b5f173fa46
2 changed files with 16 additions and 6 deletions

View File

@@ -128,10 +128,12 @@ trait SystemSettingsControllerBase extends ControllerBase {
// 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 @@ trait SystemSettingsControllerBase extends ControllerBase {
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 @@ trait SystemSettingsControllerBase extends ControllerBase {
}
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)
}

View File

@@ -15,8 +15,13 @@
@plugins.zipWithIndex.map { case (plugin, i) =>
<tr>
<td>
@*
<input type="checkbox" name="pluginId[@i]" value="@plugin.id"/>
*@
@plugin.id
@if(plugin.status == "installed"){
[Installed]
}
</td>
<td>@plugin.version</td>
<td><a href="@plugin.url">@plugin.author</a></td>
@@ -24,7 +29,9 @@
</tr>
}
</table>
@*
<input type="submit" id="install-plugins" class="btn btn-primary" value="Install selected plugins"/>
*@
</form>
}
}