2023-10-02 22:16:44 +13:00
{% extends "base.html" %}
{% from 'bootstrap/form.html' import render_form %}
{% block app_content %}
2023-10-23 22:54:11 +13:00
< script type = "text/javascript" nonce = "{{ session['nonce'] }}" >
var toBeHidden = Array(); // this list of comment IDs will be iterated over in setupHideButtons() and the 'hide' button clicked
< / script >
2023-10-02 22:16:44 +13:00
< div class = "row" >
2023-11-09 21:32:29 +13:00
< div class = "col-12 col-md-8 position-relative main_pane" >
2023-10-16 21:38:36 +13:00
{% include 'community/_post_full.html' %}
2023-10-02 22:16:44 +13:00
{% if post.comments_enabled %}
2023-10-23 13:03:35 +13:00
{% if current_user.is_authenticated %}
{% if current_user.verified %}
< div class = "row post_reply_form" >
2023-11-09 21:32:29 +13:00
< hr class = "mt-1" / >
2023-10-23 13:03:35 +13:00
< div class = "col" >
< div class = "reply_form_inner" >
{{ render_form(form) }}
< / div >
< / div >
2023-11-09 21:32:29 +13:00
{% if replies %}
2023-10-23 13:03:35 +13:00
< hr class = "mt-4" / >
2023-11-09 21:32:29 +13:00
{% endif %}
2023-10-23 13:03:35 +13:00
< / div >
{% else %}
< p > < a href = "{{ url_for('auth.validation_required') }}" > {{ _('Verify your email address to comment') }}< / a > < / p >
{% endif %}
{% else %}
< p > < a href = "{{ url_for('auth.login') }}" > {{ _('Log in to comment') }}< / a > < / p >
{% endif %}
2023-10-02 22:16:44 +13:00
{% else %}
2023-10-23 13:03:35 +13:00
< p > {{ _('Comments are disabled for this post.') }}< / p >
2023-10-02 22:16:44 +13:00
{% endif %}
2023-11-09 21:32:29 +13:00
{% if replies %}
2023-10-02 22:16:44 +13:00
< div class = "row post_replies" >
< div class = "col" >
2023-10-10 22:25:37 +13:00
{% macro render_comment(comment) %}
2023-11-09 22:44:09 +13:00
< div id = "comment_{{ comment['comment'].id }}" class = "comment {% if comment['comment'].score <= -10 %}low_score{% endif %}" >
2023-10-15 21:13:32 +13:00
< div class = "limit_height" >
< div class = "voting_buttons" >
{% with comment=comment['comment'] %}
{% include "community/_voting_buttons.html" %}
{% endwith %}
< / div >
2023-11-09 22:44:09 +13:00
< div class = "hide_button" >
{% if comment['comment'].score < = -10 %}
< a href = '#' > [+] show< / a >
{% else %}
< a href = '#' > [-] hide< / a >
{% endif %}
2023-10-23 22:54:11 +13:00
< / div >
2023-10-15 21:13:32 +13:00
< div class = "comment_author" >
2023-10-21 15:49:01 +13:00
{% if comment['comment'].author.deleted %}
< strong > [deleted]< / strong >
{% else %}
2023-10-23 22:54:11 +13:00
{% if comment['comment'].author.avatar_id and comment['comment'].score > -10 %}
2023-10-21 15:49:01 +13:00
< a href = "/u/{{ comment['comment'].author.link() }}" title = "{{ comment['comment'].author.ap_id }}" >
< img src = "{{ comment['comment'].author.avatar_image() }}" alt = "Avatar" / > < / a >
{% endif %}
< a href = "/u/{{ comment['comment'].author.link() }}" title = "{{ comment['comment'].author.link() }}" >
2023-11-09 22:44:09 +13:00
{{ comment['comment'].author.user_name }}< / a >
2023-10-15 21:13:32 +13:00
{% endif %}
2023-10-23 22:54:11 +13:00
{% if comment['comment'].author.id == post.author.id %}< span title = "Submitter of original post" aria-label = "submitter" class = "small" > [OP]< / span > {% endif %}
2023-10-15 21:13:32 +13:00
< span class = "text-muted small" > {{ moment(comment['comment'].posted_at).fromNow(refresh=True) }}< / span >
< / div >
< div class = "comment_body hidable" >
{{ comment['comment'].body_html | safe }}
< / div >
2023-10-15 19:36:14 +13:00
< / div >
2023-10-23 13:03:35 +13:00
{% if current_user.is_authenticated and current_user.verified %}
< div class = "comment_actions hidable" >
< a href = "{{ url_for('community.add_reply', post_id=post.id, comment_id=comment['comment'].id) }}" rel = "nofollow" > < span class = "fe fe-reply" > < / span > reply< / a >
< / div >
{% endif %}
2023-10-15 19:36:14 +13:00
{% if comment['replies'] %}
2023-10-16 21:38:36 +13:00
{% if comment['comment'].depth < = THREAD_CUTOFF_DEPTH %}
< div class = "replies hidable" >
{% for reply in comment['replies'] %}
{{ render_comment(reply) | safe }}
{% endfor %}
< / div >
{% else %}
< div class = "continue_thread hidable" >
2023-10-18 21:22:33 +13:00
< a href = "{{ url_for('community.continue_discussion', post_id=post.id, comment_id=comment['comment'].id, _anchor='replies') }}" >
2023-10-16 21:38:36 +13:00
Continue thread< / a >
< / div >
{% endif %}
2023-10-15 19:36:14 +13:00
{% endif %}
2023-10-10 22:25:37 +13:00
< / div >
2023-10-23 22:54:11 +13:00
{% if comment['comment'].score < = -10 %}
< script nonce = "{{ session['nonce'] }}" type = "text/javascript" >
toBeHidden.push({{ comment['comment'].id }});
< / script >
{% endif %}
2023-10-10 22:25:37 +13:00
{% endmacro %}
2023-10-02 22:16:44 +13:00
2023-10-16 21:38:36 +13:00
< div id = "replies" class = "comments" >
2023-10-10 22:25:37 +13:00
{% for reply in replies %}
{{ render_comment(reply) | safe }}
{% endfor %}
< / div >
2023-10-02 22:16:44 +13:00
< / div >
< / div >
2023-11-09 21:32:29 +13:00
{% endif %}
2023-10-02 22:16:44 +13:00
< / div >
2023-10-15 19:36:14 +13:00
< div class = "col-12 col-md-4" >
2023-10-02 22:16:44 +13:00
< div class = "card" >
< div class = "card-body" >
< div class = "row" >
< div class = "col-6" >
{% if current_user.is_authenticated and current_user.subscribed(post.community) %}
< a class = "w-100 btn btn-primary" href = "/community/{{ post.community.link() }}/unsubscribe" > {{ _('Unsubscribe') }}< / a >
{% else %}
< a class = "w-100 btn btn-primary" href = "/community/{{ post.community.link() }}/subscribe" > {{ _('Subscribe') }}< / a >
{% endif %}
< / div >
< div class = "col-6" >
2023-10-15 19:36:14 +13:00
< a class = "w-100 btn btn-primary" href = "/community/{{ post.community.link() }}/submit" > {{ _('Create post') }}< / a >
2023-10-02 22:16:44 +13:00
< / div >
< / div >
< form method = "get" >
< input type = "search" name = "search" class = "form-control mt-2" placeholder = "{{ _('Search this community') }}" / >
< / form >
< / div >
< / div >
< div class = "card mt-3" >
< div class = "card-header" >
< h2 > {{ _('About community') }}< / h2 >
< / div >
< div class = "card-body" >
< p > {{ post.community.description|safe }}< / p >
< p > {{ post.community.rules|safe }}< / p >
{% if len(mods) > 0 and not post.community.private_mods %}
< h3 > Moderators< / h3 >
< ol >
{% for mod in mods %}
< li > < a href = "/u/{{ mod.user_name }}" > {{ mod.user_name }}< / a > < / li >
{% endfor %}
< / ol >
{% endif %}
< / div >
< / div >
{% if is_moderator %}
< div class = "card mt-3" >
< div class = "card-header" >
< h2 > {{ _('Community Settings') }}< / h2 >
< / div >
< div class = "card-body" >
< p > < a href = "#" class = "btn btn-primary" > {{ _('Moderate') }}< / a > < / p >
< p > < a href = "#" class = "btn btn-primary" > {{ _('Settings') }}< / a > < / p >
< / div >
< / div >
{% endif %}
< / div >
< / div >
{% endblock %}