Use jQuery to allow users to like/unlike posts with dynamic updates

- Only the pages that need jQuery and the likes.js script will load it
This commit is contained in:
Xevion
2022-03-30 01:18:42 -05:00
parent bfb69621e1
commit c5c3b01dfa
7 changed files with 69 additions and 6 deletions

View File

@@ -1,5 +1,7 @@
{% extends 'layouts/index.html' %}
{% from 'macros.html' import render_field %}
{% set use_jquery = true %}
{% set use_likes = true %}
{% block content %}
{% if current_user.is_authenticated %}
@@ -13,15 +15,15 @@
<hr style="margin: 1.5em 0">
{% for post in posts %}
<div class="post-box">
<i class="fas fa-heart {% if current_user.has_liked_post(post.id) %}liked{% endif %}"></i>
<div id="post-{{ post.id }}" class="post-box">
<i class="fas fa-heart {% if current_user.has_liked_post(post.id) %}liked{% endif %}" onclick="like({{ post.id }})"></i>
{{ post.text }}
<div class="post-author no-border">
{% with comment_count = post.comments|length %}
<em>Posted by <a href="{{ url_for('main.view_user', username=post.author.username) }}">{{ post.author.name }}</a></em>
<span title="{{ post.date_posted }}">{{ post.get_time_ago() }} ago</span>. |
<a href="{{ url_for('main.view_post', post_id=post.id) }}"><span> {{ comment_count }} comment{{ comment_count|pluralize }}</span></a>
| {{ post.get_like_text()|safe }}
| <span class="post-like-status">{{ post.get_like_text()|safe }}</span>
{% endwith %}
</div>
</div>