diff --git a/src/main/scala/app/SystemSettingsController.scala b/src/main/scala/app/SystemSettingsController.scala index 93036eb..9199a72 100644 --- a/src/main/scala/app/SystemSettingsController.scala +++ b/src/main/scala/app/SystemSettingsController.scala @@ -5,6 +5,7 @@ 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 @@ 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 1bda872..cabe833 100644 --- a/src/main/scala/plugin/PluginSystem.scala +++ b/src/main/scala/plugin/PluginSystem.scala @@ -29,7 +29,7 @@ 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 09bc2de..6e6a6af 100644 --- a/src/main/twirl/admin/menu.scala.html +++ b/src/main/twirl/admin/menu.scala.html @@ -11,6 +11,9 @@