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'