2023-01-11 23:28:38 +00:00
{%- import "utils.html" as utils with context -%}
{% extends "layout.html" %}
{% block head %}
< title > blog.zak - Notifications< / title >
{% endblock %}
{% macro notif_actor_action(notif, text, with_icon=False) %}
< div class = "actor-action" >
< a href = "{{ url_for(" admin_profile " ) } } ? actor_id = {{ notif . actor . ap_id } } " >
{% if with_icon %}{{ utils.display_tiny_actor_icon(notif.actor) }}{% endif %} {{ notif.actor.display_name | clean_html(notif.actor) | safe }}< / a > {{ text }}
< span title = "{{ notif.created_at.isoformat() }}" > {{ notif.created_at | timeago }}< / span >
{% if notif.is_new %}
< span class = "new" > new< / span >
{% endif %}
< / div >
{% endmacro %}
{% block content %}
< div class = "box" >
< h2 > Notifications< / h2 >
< / div >
< div id = "notifications" >
{%- for notif in notifications %}
< div >
{%- if notif.notification_type.value == "new_follower" %}
{{ notif_actor_action(notif, "followed you") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{%- elif notif.notification_type.value == "pending_incoming_follower" %}
{{ notif_actor_action(notif, "sent a follow request") }}
{{ utils.display_actor(notif.actor, actors_metadata, pending_incoming_follow_notif=notif) }}
{% elif notif.notification_type.value == "rejected_follower" %}
{% elif notif.notification_type.value == "unfollow" %}
{{ notif_actor_action(notif, "unfollowed you") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{%- elif notif.notification_type.value == "follow_request_accepted" %}
{{ notif_actor_action(notif, "accepted your follow request") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{%- elif notif.notification_type.value == "follow_request_rejected" %}
{{ notif_actor_action(notif, "rejected your follow request") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{% elif notif.notification_type.value == "blocked" %}
{{ notif_actor_action(notif, "blocked you") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{% elif notif.notification_type.value == "unblocked" %}
{{ notif_actor_action(notif, "unblocked you") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{% elif notif.notification_type.value == "block" %}
{{ notif_actor_action(notif, "was blocked") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
{% elif notif.notification_type.value == "unblock" %}
{{ notif_actor_action(notif, "was unblocked") }}
{{ utils.display_actor(notif.actor, actors_metadata) }}
2023-07-03 18:25:03 +00:00
{%- elif notif.notification_type.value == "move" and notif.inbox_object %}
2023-01-11 23:28:38 +00:00
{# for move notif, the actor is the target and the inbox object the Move activity #}
< div class = "actor-action" >
< a href = "{{ url_for(" admin_profile " ) } } ? actor_id = {{ notif . inbox_object . actor . ap_id } } " >
{{ utils.display_tiny_actor_icon(notif.inbox_object.actor) }} {{ notif.inbox_object.actor.display_name | clean_html(notif.inbox_object.actor) | safe }}< / a > has moved to
< span title = "{{ notif.created_at.isoformat() }}" > {{ notif.created_at | timeago }}< / span >
< / div >
{{ utils.display_actor(notif.actor) }}
{% elif notif.notification_type.value == "like" %}
{{ notif_actor_action(notif, "liked a post", with_icon=True) }}
{{ utils.display_object(notif.outbox_object) }}
{% elif notif.notification_type.value == "undo_like" %}
{{ notif_actor_action(notif, "unliked a post", with_icon=True) }}
{{ utils.display_object(notif.outbox_object) }}
{% elif notif.notification_type.value == "announce" %}
{{ notif_actor_action(notif, "shared a post", with_icon=True) }}
{{ utils.display_object(notif.outbox_object) }}
{% elif notif.notification_type.value == "undo_announce" %}
{{ notif_actor_action(notif, "unshared a post", with_icon=True) }}
{{ utils.display_object(notif.outbox_object) }}
{% elif notif.notification_type.value == "mention" %}
{{ notif_actor_action(notif, "mentioned you") }}
{{ utils.display_object(notif.inbox_object) }}
{% elif notif.notification_type.value == "new_webmention" %}
< div class = "actor-action" title = "{{ notif.created_at.isoformat() }}" >
new webmention from
{% set facepile_item = notif.webmention.as_facepile_item %}
{% if facepile_item %}
< a href = "{{ facepile_item.actor_url }}" > {{ facepile_item.actor_name }}< / a >
{% endif %}
< a class = "bold" href = "{{ notif.webmention.source }}" > {{ notif.webmention.source }}< / a >
< / div >
{{ utils.display_object(notif.outbox_object) }}
{% elif notif.notification_type.value == "updated_webmention" %}
< div class = "actor-action" title = "{{ notif.created_at.isoformat() }}" >
updated webmention from
{% set facepile_item = notif.webmention.as_facepile_item %}
{% if facepile_item %}
< a href = "{{ facepile_item.actor_url }}" > {{ facepile_item.actor_name }}< / a >
{% endif %}
< a class = "bold" href = "{{ notif.webmention.source }}" > {{ notif.webmention.source }}< / a >
< / div >
{{ utils.display_object(notif.outbox_object) }}
{% elif notif.notification_type.value == "deleted_webmention" %}
< div class = "actor-action" title = "{{ notif.created_at.isoformat() }}" >
deleted webmention from
{% set facepile_item = notif.webmention.as_facepile_item %}
{% if facepile_item %}
< a href = "{{ facepile_item.actor_url }}" > {{ facepile_item.actor_name }}< / a >
{% endif %}
< a class = "bold" href = "{{ notif.webmention.source }}" > {{ notif.webmention.source }}< / a >
< / div >
{{ utils.display_object(notif.outbox_object) }}
{% else %}
< div class = "actor-action" >
Implement {{ notif.notification_type }}
< / div >
{%- endif %}
< / div >
{%- endfor %}
< / div >
{% if next_cursor %}
< div class = "box" >
< p >
< a href = "{{ request.url._path }}?cursor={{ next_cursor }}" >
See more{% if more_unread_count %} ({{ more_unread_count }} unread left){% endif %}
< / a >
< / p >
< / div >
{% endif %}
{% endblock %}