Mercurial Hosting > lang
comparison src/lib/Shared.luan @ 2:78708fa556a0
add login
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 08 Jul 2025 15:55:34 -0600 |
parents | 1c87f785eb42 |
children | b1adec083e44 |
comparison
equal
deleted
inserted
replaced
1:1c87f785eb42 | 2:78708fa556a0 |
---|---|
1 local Luan = require "luan:Luan.luan" | 1 local Luan = require "luan:Luan.luan" |
2 local error = Luan.error | 2 local error = Luan.error |
3 local Time = require "luan:Time.luan" | 3 local Time = require "luan:Time.luan" |
4 local Thread = require "luan:Thread.luan" | |
5 local thread_run = Thread.run or error() | |
6 local Mail = require "luan:mail/Mail.luan" | |
7 local User = require "site:/lib/User.luan" | |
8 local current_user = User.current or error() | |
9 local Config = require "site:/private/Config.luan" | |
4 | 10 |
5 | 11 |
6 local Shared = {} | 12 local Shared = {} |
7 | 13 |
8 local started = Time.now() | 14 local started = Time.now() |
9 | 15 |
10 function Shared.head() | 16 function Shared.head() |
11 %> | 17 %> |
12 <meta name="viewport" content="width=device-width, initial-scale=1"> | 18 <meta name="viewport" content="width=device-width, initial-scale=1"> |
19 <title>Lang</title> | |
13 <style> | 20 <style> |
14 @import "/site.css?s=<%=started%>"; | 21 @import "/site.css?s=<%=started%>"; |
15 </style> | 22 </style> |
16 <script src="/site.js?s=<%=started%>"></script> | 23 <script src="/site.js?s=<%=started%>"></script> |
17 <% | 24 <% |
18 end | 25 end |
19 | 26 |
20 function Shared.header() | 27 function Shared.header() |
28 local user = current_user() | |
21 %> | 29 %> |
22 <div header> | 30 <div header> |
31 <span> | |
32 <a href="/">Lang</a> | |
33 </span> | |
34 <span> | |
35 <% if user == nil then %> | |
36 <a href="/login.html">Login / Register</a> | |
37 <% else %> | |
38 <a href="/account.html"><%= user.email %></a> | |
39 <% end %> | |
40 </span> | |
23 </div> | 41 </div> |
24 <% | 42 <% |
25 end | 43 end |
26 | 44 |
45 local default_from = "Lang <lang@luan.software>" | |
46 local send_mail0 = Mail.sender(Config.mail_server).send | |
47 function Shared.send_mail(mail) | |
48 mail.From = mail.From or default_from | |
49 send_mail0(mail) | |
50 end | |
51 | |
52 function Shared.send_mail_async(mail) | |
53 mail.From = mail.From or default_from | |
54 thread_run( function() | |
55 send_mail0(mail) | |
56 end ) | |
57 end | |
58 | |
27 return Shared | 59 return Shared |