a mini social media app for small communities
1@include 'partial/header.html'
2
3<script src="/static/js/post.js"></script>
4<script src="/static/js/render_body.js"></script>
5
6<div class="post post-full">
7 <h2><a href="/user/@{(app.get_user_by_id(post.author_id) or { app.get_unknown_user() }).username}"><strong>@{(app.get_user_by_id(post.author_id) or { app.get_unknown_user() }).get_name()}</strong></a> - @post.title</h2>
8 <pre id="post-@{post.id}">@post.body</pre>
9 <p><em>likes: @{app.get_net_likes_for_post(post.id)}</em></p>
10 <p><em>posted at: @post.posted_at</em></p>
11
12 @if ctx.is_logged_in() && post.author_id == user.id
13 <p><a href="/post/@{post.id}/edit">edit post</a></p>
14 @end
15
16 @if ctx.is_logged_in()
17 <br>
18 <div>
19 <button onclick="like(@post.id)">
20 @if app.does_user_like_post(user.id, post.id)
21 liked :D
22 @else
23 like
24 @end
25 </button>
26 <button onclick="dislike(@post.id)">
27 @if app.does_user_dislike_post(user.id, post.id)
28 disliked D:
29 @else
30 dislike
31 @end
32 </button>
33 </div>
34 @end
35
36 @if ctx.is_logged_in() && (post.author_id == user.id || user.admin)
37 <br>
38 <div>
39
40 @if post.author_id == user.id
41 <h4>manage post:</h4>
42 @else if user.admin
43 <h4>admin powers:</h4>
44 @end
45
46 <form action="/api/post/delete" method="post">
47 <input
48 type="number"
49 name="id"
50 id="id"
51 placeholder="post id"
52 value="@post.id"
53 required
54 readonly
55 hidden
56 aria-hidden
57 >
58 <input type="submit" value="delete">
59 </form>
60
61 </div>
62 @end
63</div>
64
65<script type="module">
66 await render_body('post-@{post.id}')
67</script>
68
69@include 'partial/footer.html'