main
|
Last change
on this file since 8d43aa1 was 535f955, checked in by roboburr <roboburr@…>, 3 months ago |
|
feat: post likes + favourites page for logged-in users
- New post_likes table (unique per post+user).
- ♥ like button on the post (shared partial, htmx toggle via POST
/posts/:id/like); shows the like count. Anonymous → button links to
login.
- /favorieten page (requireAuth) shows your liked posts (solo: own site,
hub: across all sites with correct links). Link in account menu (sheet
+ topnav).
Co-Authored-By: Claude <noreply@…>
|
-
Property mode
set to
100644
|
|
File size:
1.3 KB
|
| Line | |
|---|
| 1 | <%# Like-/favorietknop voor een post. Ingelogd → htmx-toggle (POST /posts/:id/like,
|
|---|
| 2 | swap outerHTML met deze partial terug). Niet ingelogd → link naar login.
|
|---|
| 3 | Verwacht: post (met .id), likedByMe, likeCount, loggedIn, loginNext. %>
|
|---|
| 4 | <%
|
|---|
| 5 | var _liked = (typeof likedByMe !== 'undefined' && likedByMe);
|
|---|
| 6 | var _cnt = (typeof likeCount !== 'undefined' && likeCount != null) ? likeCount : 0;
|
|---|
| 7 | var _logged = (typeof loggedIn !== 'undefined' && loggedIn);
|
|---|
| 8 | %>
|
|---|
| 9 | <% if (_logged) { %>
|
|---|
| 10 | <button type="button" class="like-btn<%= _liked ? ' is-liked' : '' %>"
|
|---|
| 11 | hx-post="/posts/<%= post.id %>/like" hx-swap="outerHTML"
|
|---|
| 12 | aria-pressed="<%= _liked ? 'true' : 'false' %>"
|
|---|
| 13 | aria-label="<%= _liked ? 'Uit favorieten verwijderen' : 'Toevoegen aan favorieten' %>"
|
|---|
| 14 | title="<%= _liked ? 'Uit favorieten verwijderen' : 'Toevoegen aan favorieten' %>">
|
|---|
| 15 | <span class="like-heart" aria-hidden="true"><%= _liked ? '♥' : '♡' %></span>
|
|---|
| 16 | <span class="like-count"><%= _cnt %></span>
|
|---|
| 17 | </button>
|
|---|
| 18 | <% } else { %>
|
|---|
| 19 | <a class="like-btn" href="/auth/login?next=<%= encodeURIComponent((typeof loginNext !== 'undefined' && loginNext) ? loginNext : '/') %>"
|
|---|
| 20 | title="Log in om deze post te liken">
|
|---|
| 21 | <span class="like-heart" aria-hidden="true">♡</span>
|
|---|
| 22 | <span class="like-count"><%= _cnt %></span>
|
|---|
| 23 | </a>
|
|---|
| 24 | <% } %>
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.