2025-01-17 16:02:47 +13:00
{# This file is similar to _post_reply_teaser.html except it includes the render_username macro and removes
2025-01-17 16:05:24 +13:00
a few things that aren't needed on brand new comments.
We need to include that macro because this template is used as part of a full page (it's an ajax response) so
it does not inherit from base.html where the macro is normally defined.
#}
2025-01-17 15:50:37 +13:00
{% macro render_username(user, add_domain=True, htmx_redirect_back_to=None) -%}
< span class = "render_username" >
{% if user.deleted -%}
{% if current_user.is_authenticated and current_user.is_admin() -%}
< a href = "/u/{{ user.link() }}" title = "{{ user.ap_id if user.ap_id != none else user.user_name }}" aria-label = "{{ _('Author') }}" > [deleted]< / a >
{% else -%}
[deleted]
{% endif -%}
{% else -%}
< a href = "/u/{{ user.link() }}" aria-label = "{{ _('Author') }}" class = "author_link" title = "" >
{% if user.avatar_id and not low_bandwidth and not collapsed -%}
< img src = "{{ user.avatar_thumbnail() }}" alt = "" loading = "lazy" / >
{% endif -%}
{{ user.display_name() }}{% if add_domain and not user.is_local() %}< span class = "text-muted" > @{{ user.ap_domain }}< / span > {% endif %}
< / a >
< div class = "d-none user_preview" id = "preview_{{ user.id }}"
{% if htmx_redirect_back_to -%}
hx-get="{{ url_for('user.user_preview', user_id=user.id, return_to=htmx_redirect_back_to) }}"
{% else %}
hx-get="{{ url_for('user.user_preview', user_id=user.id) }}"
{% endif %}
hx-trigger="intersect once"
hx-target="this"
hx-swap="innerHTML"
>< / div >
{% if user.created_recently() -%}
< span class = "fe fe-new-account" title = "New account" > < / span >
{% endif -%}
{% if user.bot -%}
< span class = "fe fe-bot-account" title = "Bot account" > < / span >
{% endif -%}
{% if user.id != current_user.id -%}
{% if user.reputation < -10 - % }
< span class = "fe fe-warning red" title = "Very low reputation. Beware." > < / span >
< span class = "fe fe-warning red" title = "Very low reputation. Beware!" > < / span >
{% elif user.reputation < 0 - % }
< span class = "fe fe-warning orangered" title = "Low reputation." > < / span >
{% endif -%}
{% endif -%}
{% if current_user.is_authenticated -%}
{% set user_note = user.get_note(current_user) %}
{% if user_note -%}
< span class = "user_note" title = "{{ _('User note: %(note)s', note=user_note) }}" > [{{ user_note | truncate(12, True) }}]< / span >
{% endif -%}
{% endif -%}
{% endif -%}
< / span >
{% endmacro -%}
{% set collapsed = false -%}
< div class = "replies hidable" role = "group" aria-live = "polite" >
< div class = "container comment{% if post_reply.score and post_reply.score <= -10 %} low_score{% endif %}{% if post_reply.author.id == post_reply.post.author.id %} original_poster{% endif %}" id = "comment_{{ post_reply.id }}" { % if post_reply . language_id and post_reply . language . code ! = ' en ' % } lang = "{{ post_reply.language.code }}" { % endif % } aria-level = "{{ post_reply.depth+1 }}" role = "treeitem" >
< div class = "row" >
< div class = "col-auto comment_author" >
< span class = "visually-hidden" > by< / span >
{{ render_username(post_reply.author, htmx_redirect_back_to=request.path + '#comment_' + str(post_reply.id)) }}
{% if post_reply.author.id == post_reply.post.author.id -%}
< span title = "Submitter of original post" aria-label = "{{ _('Post creator') }}" class = "small" > [OP]< / span >
{% endif -%}
< / div >
< div class = "col-auto text-muted small pt-05" >
< time datetime = "{{ arrow.get(post_reply.posted_at).format('YYYY-MM-DD HH:mm:ss ZZ') }}" title = "{{ arrow.get(post_reply.posted_at).format('YYYY-MM-DD HH:mm:ss ZZ') }}" > {{ arrow.get(post_reply.posted_at).humanize(locale=locale) }}< / time > {% if post_reply.edited_at -%}, edited < time datetime = "{{ arrow.get(post_reply.posted_at) }}" title = "{{ arrow.get(post_reply.posted_at) }}" > {{ arrow.get(post_reply.edited_at).humanize(locale=locale) }}< / time > {% endif -%}
< / div >
< div class = "col-auto" >
{% if post_reply.reports and current_user.is_authenticated and post_reply.post.community.is_moderator(current_user) -%}
< span class = "red fe fe-report" title = "{{ _('Reported. Check comment for issues.') }}" > < / span >
{% endif -%}
< / div >
< div class = "col-auto" >
{% if post_reply.deleted -%}
< span class = "red fe fe-delete" title = "{{ _('Comment deleted') }}" > < / span >
{% endif -%}
< / div >
< div class = "col-auto" >
< a class = "unhide" href = "#" > < span class = "fe fe-expand" > < / span > < / a >
< / div >
< / div >
< div class = "row comment_body hidable{% if post_reply.reports and current_user.is_authenticated and post_reply.post.community.is_moderator(current_user) %} reported{% endif %}" >
< div class = "col-12" >
{{ post_reply.body_html | community_links | person_links | safe }}
< / div >
< / div >
< div class = "comment_actions hidable" >
< div class = "post_replies_link" >
< a href = "{{ url_for('post.add_reply', post_id=post_reply.post.id, comment_id=post_reply.id) }}"
hx-get="{{ url_for('post.add_reply_inline', post_id=post_reply.post.id, comment_id=post_reply.id) }}"
hx-target="#reply_to_{{ post_reply.id }}"
hx-swap="innerHTML"
rel="nofollow noindex">< span class = "fe fe-reply" > < / span > reply< / a >
< / div >
< div class = "voting_buttons_new" >
{% with comment=post_reply, community=post_reply.post.community -%}
{% include "post/_comment_voting_buttons.html" -%}
{% endwith -%}
< / div >
< div class = "hide_button" >
{% if collapsed -%}
< a href = '#' class = "" > < span class = "fe fe-expand" > < / span > < / a >
{% else -%}
< a href = '#' class = "" > < span class = "fe fe-collapse" > < / span > < / a >
{% endif -%}
< / div >
< div class = "notify_toggle pull-right" >
{% if current_user.is_authenticated and current_user.verified -%}
{% with comment=dict(comment=post_reply) -%}
{% include "post/_reply_notification_toggle.html" -%}
{% endwith -%}
{% endif -%}
< / div >
< div class = "comment_actions_link" >
< div class = "dropdown" >
< a
href="{{ url_for('post.post_reply_options', post_id=post_reply.post.id, comment_id=post_reply.id) if low_bandwidth else '#' }}"
data-bs-toggle="dropdown" rel="nofollow noindex"
aria-label="{{ _('Comment options') }}">
< span class = "fe fe-options" title = "Options" > < / span >
< / a >
< ul class = "dropdown-menu" style = "width: 320px" >
< div
hx-get="{{ url_for('post.post_reply_options', post_id=post_reply.post.id, comment_id=post_reply.id) }}"
hx-trigger="intersect once"
hx-target="this"
hx-swap="outerHTML"
>< / div >
< / ul >
< / div >
< / div >
< / div >
< div id = "reply_to_{{ post_reply.id }}" class = "hidable" > < / div >
< / div >
< / div >