4
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local stringify = Luan.stringify or error()
|
|
4 local String = require "luan:String.luan"
|
|
5 local trim = String.trim or error()
|
|
6 local Html = require "luan:Html.luan"
|
|
7 local html_encode = Html.encode or error()
|
|
8 local Parsers = require "luan:Parsers.luan"
|
|
9 local json_string = Parsers.json_string or error()
|
|
10 local Io = require "luan:Io.luan"
|
|
11 local Http = require "luan:http/Http.luan"
|
|
12 local Mail = require "site:/lib/Mail.luan"
|
|
13 local Shared = require "site:/lib/Shared.luan"
|
|
14 local head = Shared.head or error()
|
|
15 local header = Shared.admin_header or error()
|
|
16 local Logging = require "luan:logging/Logging.luan"
|
|
17 local logger = Logging.logger "admin/mail_config.html"
|
|
18
|
|
19 --[[
|
|
20 local default = stringify{
|
|
21 host = "smtpcorp.com"
|
|
22 username = "xxx"
|
|
23 password = "xxx"
|
|
24 port = 2525
|
|
25 }
|
|
26 ]]
|
|
27
|
|
28 return function()
|
|
29 Io.stdout = Http.response.text_writer()
|
|
30 local updated = false
|
|
31 if Http.request.method == "POST" then
|
|
32 local config = Http.request.parameters.config or error()
|
|
33 if trim(config) == "" then
|
|
34 config = nil
|
|
35 end
|
|
36 Mail.set(config)
|
|
37 updated = true
|
|
38 end
|
|
39 %>
|
|
40 <!doctype html>
|
|
41 <html>
|
|
42 <head>
|
|
43 <% head() %>
|
|
44 <title>FreedIt - Configure Mail</title>
|
|
45 <style>
|
|
46 textarea {
|
|
47 width: 20em;
|
|
48 height: 10em;
|
|
49 }
|
|
50 </style>
|
|
51 </head>
|
|
52 <body>
|
|
53 <% header() %>
|
|
54 <div content>
|
|
55 <h1>Configure Mail</h1>
|
|
56 <% if updated then %>
|
|
57 <p>Updated</p>
|
|
58 <% else %>
|
|
59 <form method=post>
|
|
60 <p><textarea name=config autofocus><%= html_encode(Mail.get() or "") %></textarea></p>
|
|
61 <p><input type=submit><p>
|
|
62 </form>
|
|
63 <% end %>
|
|
64 </div>
|
|
65 </body>
|
|
66 </html>
|
|
67 <%
|
|
68 end
|