From ddd51850f0873ad09a4b76616018cd33d208be1c Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Fri, 6 Jun 2014 17:20:48 +0900 Subject: [PATCH] (refs #32)Add JavaScript Console --- .../scala/app/SystemSettingsController.scala | 10 ++++++ src/main/scala/plugin/PluginSystem.scala | 2 +- src/main/twirl/admin/menu.scala.html | 3 ++ src/main/twirl/admin/script.scala.html | 33 +++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/main/twirl/admin/script.scala.html diff --git a/src/main/scala/app/SystemSettingsController.scala b/src/main/scala/app/SystemSettingsController.scala index 93036ebe8..9199a72aa 100644 --- a/src/main/scala/app/SystemSettingsController.scala +++ b/src/main/scala/app/SystemSettingsController.scala @@ -5,6 +5,7 @@ import SystemSettingsService._ import util.AdminAuthenticator import jp.sf.amateras.scalatra.forms._ import ssh.SshServer +import org.scalatra.Ok class SystemSettingsController extends SystemSettingsControllerBase with AccountService with AdminAuthenticator @@ -71,4 +72,13 @@ trait SystemSettingsControllerBase extends ControllerBase { redirect("/admin/system") }) + get("/admin/script")(adminOnly { + admin.html.script() + }) + + post("/admin/script")(adminOnly { + val script = request.getParameter("script") + val result = plugin.PluginSystem.evaluateJavaScript(script) + Ok(result) + }) } diff --git a/src/main/scala/plugin/PluginSystem.scala b/src/main/scala/plugin/PluginSystem.scala index 1bda87279..cabe83308 100644 --- a/src/main/scala/plugin/PluginSystem.scala +++ b/src/main/scala/plugin/PluginSystem.scala @@ -29,7 +29,7 @@ object PluginSystem { actionList += Action(path, function) } - def evaluateJavaScript(script: String): Unit = { + def evaluateJavaScript(script: String): Any = { val engine = new ScriptEngineManager().getEngineByName("JavaScript") engine.eval(script) } diff --git a/src/main/twirl/admin/menu.scala.html b/src/main/twirl/admin/menu.scala.html index 09bc2de3e..6e6a6af20 100644 --- a/src/main/twirl/admin/menu.scala.html +++ b/src/main/twirl/admin/menu.scala.html @@ -11,6 +11,9 @@ System Settings + + JavaScript Console +
  • H2 Console
  • diff --git a/src/main/twirl/admin/script.scala.html b/src/main/twirl/admin/script.scala.html new file mode 100644 index 000000000..604b13805 --- /dev/null +++ b/src/main/twirl/admin/script.scala.html @@ -0,0 +1,33 @@ +@()(implicit context: app.Context) +@import context._ +@import view.helpers._ +@html.main("JavaScript Console"){ + @menu("script"){ +
    +
    +
    JavaScript Console
    +
    +
    +
    +
    +
    + +
    +
    + } +} + + \ No newline at end of file