{%- import "utils.html" as utils with context -%}
{% extends "layout.html" %}

{% block head %}
<title>{{ local_actor.display_name }} - 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) }}
            {%- elif notif.notification_type.value == "move" %}
                {# 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 %}