mirror of
https://codeberg.org/rimu/pyfedi
synced 2025-01-23 19:36:56 -08:00
notification toggles
This commit is contained in:
parent
6fba6ef113
commit
bdcb17e3c1
6 changed files with 50 additions and 9 deletions
|
@ -830,4 +830,24 @@ def post_reply_delete(post_id: int, comment_id: int):
|
|||
post.flush_cache()
|
||||
flash(_('Comment deleted.'))
|
||||
# todo: federate delete
|
||||
return redirect(url_for('activitypub.post_ap', post_id=post.id))
|
||||
return redirect(url_for('activitypub.post_ap', post_id=post.id))
|
||||
|
||||
|
||||
@bp.route('/post/<int:post_id>/notification', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def post_notification(post_id: int):
|
||||
post = Post.query.get_or_404(post_id)
|
||||
if post.user_id == current_user.id:
|
||||
post.notify_author = not post.notify_author
|
||||
db.session.commit()
|
||||
return render_template('post/_post_notification_toggle.html', post=post)
|
||||
|
||||
|
||||
@bp.route('/post_reply/<int:post_reply_id>/notification', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def post_reply_notification(post_reply_id: int):
|
||||
post_reply = PostReply.query.get_or_404(post_reply_id)
|
||||
if post_reply.user_id == current_user.id:
|
||||
post_reply.notify_author = not post_reply.notify_author
|
||||
db.session.commit()
|
||||
return render_template('post/_reply_notification_toggle.html', comment={'comment': post_reply})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<a href="/community/{{ community.id }}/notification"
|
||||
<a href="/community/{{ community.id }}/notification" rel="nofollow"
|
||||
class="fe {{ 'fe-bell' if community.notify_new_posts(current_user.id) else 'fe-no-bell' }} no-underline"
|
||||
hx-post="/community/{{ community.id }}/notification" hx-trigger="click throttle:1s" hx-swap="outerHTML"
|
||||
title="{{ _('Notify about every new post. Not advisable in high traffic communities!') }}"></a>
|
|
@ -12,7 +12,11 @@
|
|||
<div class="voting_buttons">
|
||||
{% include "post/_post_voting_buttons.html" %}
|
||||
</div>
|
||||
<h1 class="mt-2 post_title">{{ post.title }}</h1>
|
||||
<h1 class="mt-2 post_title">{{ post.title }}
|
||||
{% if current_user.is_authenticated and post.user_id == current_user.id %}
|
||||
{% include 'post/_post_notification_toggle.html' %}
|
||||
{% endif %}
|
||||
</h1>
|
||||
{% if post.url %}
|
||||
<p><small><a href="{{ post.url }}" rel="nofollow ugc" target="_blank">{{ post.url|shorten_url }}
|
||||
<img src="/static/images/external_link_black.svg" class="external_link_icon" alt="External link" />
|
||||
|
@ -53,7 +57,11 @@
|
|||
<div class="voting_buttons">
|
||||
{% include "post/_post_voting_buttons.html" %}
|
||||
</div>
|
||||
<h1 class="mt-2 post_title">{{ post.title }}</h1>
|
||||
<h1 class="mt-2 post_title">{{ post.title }}
|
||||
{% if current_user.is_authenticated and post.user_id == current_user.id %}
|
||||
{% include 'post/_post_notification_toggle.html' %}
|
||||
{% endif %}
|
||||
</h1>
|
||||
{% if post.type == POST_TYPE_LINK and post.image_id and not (post.url and 'youtube.com' in post.url) %}
|
||||
<div class="url_thumbnail">
|
||||
<a href="{{ post.url }}" target="_blank"><img src="{{ post.image.thumbnail_url() }}" alt="{{ post.image.alt_text }}"
|
||||
|
|
4
app/templates/post/_post_notification_toggle.html
Normal file
4
app/templates/post/_post_notification_toggle.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<a href="{{ url_for('post.post_notification', post_id=post.id) }}" rel="nofollow"
|
||||
class="small fe {{ 'fe-bell' if post.notify_author else 'fe-no-bell' }} no-underline"
|
||||
hx-post="{{ url_for('post.post_notification', post_id=post.id) }}" hx-trigger="click throttle:1s" hx-swap="outerHTML"
|
||||
title="{{ _('Notify about replies') }}"></a>
|
4
app/templates/post/_reply_notification_toggle.html
Normal file
4
app/templates/post/_reply_notification_toggle.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<a href="{{ url_for('post.post_reply_notification', post_reply_id=comment['comment'].id) }}" rel="nofollow"
|
||||
class="pl-2 small fe {{ 'fe-bell' if comment['comment'].notify_author else 'fe-no-bell' }} no-underline"
|
||||
hx-post="{{ url_for('post.post_reply_notification', post_reply_id=comment['comment'].id) }}" hx-trigger="click throttle:1s" hx-swap="outerHTML"
|
||||
title="{{ _('Notify about replies') }}"></a>
|
|
@ -87,11 +87,13 @@
|
|||
{% if comment['comment'].author.created_recently() %}
|
||||
<span class="fe fe-new-account small" title="New account"> </span>
|
||||
{% endif %}
|
||||
{% if comment['comment'].author.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 comment['comment'].author.reputation < 0 %}
|
||||
<span class="fe fe-warning orangered" title="Low reputation."> </span>
|
||||
{% if comment['comment'].author.id != current_user.id %}
|
||||
{% if comment['comment'].author.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 comment['comment'].author.reputation < 0 %}
|
||||
<span class="fe fe-warning orangered" title="Low reputation."> </span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if comment['comment'].author.id == post.author.id %}<span title="Submitter of original post" aria-label="submitter" class="small">[OP]</span>{% endif %}
|
||||
<span class="text-muted small">{{ moment(comment['comment'].posted_at).fromNow(refresh=True) }}{% if comment['comment'].edited_at %}, edited {{ moment(comment['comment'].edited_at).fromNow(refresh=True) }} {% endif %}</span>
|
||||
|
@ -108,6 +110,9 @@
|
|||
{% if post.comments_enabled %}
|
||||
<a href="{{ url_for('post.add_reply', post_id=post.id, comment_id=comment['comment'].id) }}" rel="nofollow"><span class="fe fe-reply"></span> reply</a>
|
||||
{% endif %}
|
||||
{% if current_user.id == comment['comment'].author.id %}
|
||||
{% include "post/_reply_notification_toggle.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<a href="{{ url_for('post.post_reply_options', post_id=post.id, comment_id=comment['comment'].id) }}" class="comment_actions_link" rel="nofollow"><span class="fe fe-options" title="Options"> </span></a>
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue