Mercurial Hosting > freedit
diff src/private/admin/config.html.luan @ 2:fc2383eb48a9
set config
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 16 Jun 2022 20:52:24 -0600 |
parents | |
children | a17e400ddaa1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/private/admin/config.html.luan Thu Jun 16 20:52:24 2022 -0600 @@ -0,0 +1,65 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local Html = require "luan:Html.luan" +local html_encode = Html.encode or error() +local Parsers = require "luan:Parsers.luan" +local json_string = Parsers.json_string or error() +local Io = require "luan:Io.luan" +local Http = require "luan:http/Http.luan" +local reset_luan = Http.reset_luan or error() +local test_as_init = Http.test_as_init or error() +local Run = require "luan:http/tools/Run.luan" +local Config = require "site:/lib/Config.luan" +local Logging = require "luan:logging/Logging.luan" +local logger = Logging.logger "admin/Config.html" + + +return function() + Io.stdout = Http.response.text_writer() + if Http.request.method == "POST" then + local config = Http.request.parameters.config or error() + try + test_as_init(config,"config") + catch e + Run.print_error(e,config) + return + end + Config.set(config) + reset_luan() + %>Updated<% + return + end +%> +<!doctype html> +<html> + <head> + <title>FreedIt - Configure Forum</title> + <style> + @import "/site.css"; + + textarea { + width: 90%; + height: 20em; + } + </style> + <script> + function restoreDefault() { + document.querySelector('textarea').value = <%=json_string(Config.default_text,{compressed=true})%>; + } + </script> + </head> + <body> + <h1>Configure Forum</h1> + + <form method=post> + <p> + Configuration in <a href="http://www.luan.software/">Luan</a> + - <a href="javascript:restoreDefault()">restore default</a> + </p> + <p><textarea name=config autofocus><%= html_encode(Config.text) %></textarea></p> + <p><input type=submit><p> + </form> + </body> +</html> +<% +end