Enable plugin system

This commit is contained in:
Naoki Takezoe
2014-07-23 19:50:38 +09:00
parent 1d4720d784
commit 37731c4163
2 changed files with 48 additions and 49 deletions

View File

@@ -10,6 +10,7 @@ import ssh.SshServer
import org.apache.commons.io.FileUtils import org.apache.commons.io.FileUtils
import java.io.FileInputStream import java.io.FileInputStream
import plugin.{Plugin, PluginSystem} import plugin.{Plugin, PluginSystem}
import org.scalatra.Ok
class SystemSettingsController extends SystemSettingsControllerBase class SystemSettingsController extends SystemSettingsControllerBase
with AccountService with AdminAuthenticator with AccountService with AdminAuthenticator
@@ -82,44 +83,43 @@ trait SystemSettingsControllerBase extends ControllerBase {
redirect("/admin/system") redirect("/admin/system")
}) })
// TODO Enable commented code to enable plug-in system get("/admin/plugins")(adminOnly {
// get("/admin/plugins")(adminOnly { val installedPlugins = plugin.PluginSystem.plugins
// val installedPlugins = plugin.PluginSystem.plugins val updatablePlugins = getAvailablePlugins(installedPlugins).filter(_.status == "updatable")
// val updatablePlugins = getAvailablePlugins(installedPlugins).filter(_.status == "updatable") admin.plugins.html.installed(installedPlugins, updatablePlugins)
// admin.plugins.html.installed(installedPlugins, updatablePlugins) })
// })
//
// post("/admin/plugins/_update", pluginForm)(adminOnly { form =>
// deletePlugins(form.pluginIds)
// installPlugins(form.pluginIds)
// redirect("/admin/plugins")
// })
//
// post("/admin/plugins/_delete", pluginForm)(adminOnly { form =>
// deletePlugins(form.pluginIds)
// redirect("/admin/plugins")
// })
//
// get("/admin/plugins/available")(adminOnly {
// val installedPlugins = plugin.PluginSystem.plugins
// val availablePlugins = getAvailablePlugins(installedPlugins).filter(_.status == "available")
// admin.plugins.html.available(availablePlugins)
// })
//
// post("/admin/plugins/_install", pluginForm)(adminOnly { form =>
// installPlugins(form.pluginIds)
// redirect("/admin/plugins")
// })
// get("/admin/plugins/console")(adminOnly { post("/admin/plugins/_update", pluginForm)(adminOnly { form =>
// admin.plugins.html.console() deletePlugins(form.pluginIds)
// }) installPlugins(form.pluginIds)
// redirect("/admin/plugins")
// post("/admin/plugins/console")(adminOnly { })
// val script = request.getParameter("script")
// val result = plugin.JavaScriptPlugin.evaluateJavaScript(script) post("/admin/plugins/_delete", pluginForm)(adminOnly { form =>
// Ok(result) deletePlugins(form.pluginIds)
// }) redirect("/admin/plugins")
})
get("/admin/plugins/available")(adminOnly {
val installedPlugins = plugin.PluginSystem.plugins
val availablePlugins = getAvailablePlugins(installedPlugins).filter(_.status == "available")
admin.plugins.html.available(availablePlugins)
})
post("/admin/plugins/_install", pluginForm)(adminOnly { form =>
installPlugins(form.pluginIds)
redirect("/admin/plugins")
})
get("/admin/plugins/console")(adminOnly {
admin.plugins.html.console()
})
post("/admin/plugins/console")(adminOnly {
val script = request.getParameter("script")
val result = plugin.JavaScriptPlugin.evaluateJavaScript(script)
Ok(result)
})
// TODO Move these methods to PluginSystem or Service? // TODO Move these methods to PluginSystem or Service?
private def deletePlugins(pluginIds: List[String]): Unit = { private def deletePlugins(pluginIds: List[String]): Unit = {

View File

@@ -50,18 +50,17 @@ class PluginUpdateJob extends Job {
object PluginUpdateJob { object PluginUpdateJob {
def schedule(scheduler: Scheduler): Unit = { def schedule(scheduler: Scheduler): Unit = {
// TODO Enable commented code to enable plug-in system val job = newJob(classOf[PluginUpdateJob])
// val job = newJob(classOf[PluginUpdateJob]) .withIdentity("pluginUpdateJob")
// .withIdentity("pluginUpdateJob") .build()
// .build()
// val trigger = newTrigger()
// val trigger = newTrigger() .withIdentity("pluginUpdateTrigger")
// .withIdentity("pluginUpdateTrigger") .startNow()
// .startNow() .withSchedule(simpleSchedule().withIntervalInHours(24).repeatForever())
// .withSchedule(simpleSchedule().withIntervalInHours(24).repeatForever()) .build()
// .build()
// scheduler.scheduleJob(job, trigger)
// scheduler.scheduleJob(job, trigger)
} }
} }