(refs #32)Add deleting installed plugins

This commit is contained in:
Naoki Takezoe
2014-06-14 14:32:40 +09:00
parent f3900ca8f9
commit b07d0b028f
2 changed files with 48 additions and 12 deletions

View File

@@ -3,9 +3,11 @@ package app
import service.{AccountService, SystemSettingsService}
import SystemSettingsService._
import util.AdminAuthenticator
import util.Directory._
import jp.sf.amateras.scalatra.forms._
import ssh.SshServer
import org.scalatra.Ok
import org.apache.commons.io.FileUtils
class SystemSettingsController extends SystemSettingsControllerBase
with AccountService with AdminAuthenticator
@@ -48,6 +50,11 @@ trait SystemSettingsControllerBase extends ControllerBase {
} else Nil
}
private val pluginForm = mapping(
"pluginId" -> list(trim(label("", text())))
)(PluginForm.apply)
case class PluginForm(pluginIds: List[String])
get("/admin/system")(adminOnly {
admin.html.system(flash.get("info"))
@@ -76,6 +83,22 @@ trait SystemSettingsControllerBase extends ControllerBase {
admin.html.plugins(plugin.PluginSystem.plugins)
})
post("/admin/plugins/_delete", pluginForm)(adminOnly { form =>
// TODO uninstall and delete plugins
println("****")
println(form.pluginIds)
println("****")
form.pluginIds.foreach { pluginId =>
plugin.PluginSystem.uninstall(pluginId)
val dir = new java.io.File(PluginHome, pluginId)
if(dir.exists && dir.isDirectory){
FileUtils.deleteQuietly(dir)
}
}
redirect("/admin/plugins")
})
get("/admin/script")(adminOnly {
admin.html.script()
})