aboutsummaryrefslogtreecommitdiff
path: root/webmentions_ssg/templates/received.html
blob: 7cfdce8aa5540c5f1a6772a4ac088c9c686be89f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!--
SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>

SPDX-License-Identifier: BSD-3-Clause
-->
{% extends "base.html" %}
{% from "bootstrap5/pagination.html" import render_pagination %}
{% block content %}
  <div class="d-flex justify-content-between align-items-center mb-3">
    <h1 class="mb-0">Received Webmentions</h1>
    <span class="text-body-secondary">{{ webmentions.total }} total</span>
  </div>
  {% if webmentions.items %}
    <div class="table-responsive">
      <table class="table table-bordered table-striped table-hover align-middle">
        <thead>
          <tr>
            <th scope="col">Status</th>
            <th scope="col">Source</th>
            <th scope="col">Target</th>
            <th scope="col">Received</th>
            <th scope="col">Updated</th>
            <th scope="col">Reason</th>
            <th scope="col">Actions</th>
          </tr>
        </thead>
        <tbody>
          {% for webmention in webmentions %}
            {% if webmention.status == "received" %}
              {% set row_class = "table-info" %}
              {% set display_status = "Pending" %}
            {% elif webmention.status == "verifying" %}
              {% set row_class = "table-warning" %}
              {% set display_status = "Verifying" %}
            {% elif webmention.status == "verified" %}
              {% set row_class = "table-success" %}
              {% set display_status = "Verified" %}
            {% else %}
              {% set row_class = "table-danger" %}
              {% set display_status = "Declined" %}
            {% endif %}
            <tr class="{{ row_class }}">
              <td>
                <strong>{{ display_status }}</strong>
              </td>
              <td class="text-break">
                <a href="{{ webmention.source }}">{{ webmention.source }}</a>
              </td>
              <td class="text-break">
                <a href="{{ webmention.target }}">{{ webmention.target }}</a>
              </td>
              <td class="text-nowrap">
                <time datetime="{{ webmention.created_at.isoformat() }}">
                  {{ webmention.created_at.strftime("%Y-%m-%d %H:%M:%S") }}
                </time>
              </td>
              <td class="text-nowrap">
                <time datetime="{{ webmention.updated_at.isoformat() }}">
                  {{ webmention.updated_at.strftime("%Y-%m-%d %H:%M:%S") }}
                </time>
              </td>
              <td>{{ webmention.failure_reason or "—" }}</td>
              <td class="text-nowrap">
                <button type="button"
                        class="btn btn-sm btn-primary"
                        data-bs-toggle="modal"
                        data-bs-target="#confirmation-modal"
                        data-action="{{ url_for('root.reverify_received_webmention', identifier=webmention.uuid, page=webmentions.page) }}"
                        data-title="Reverify webmention?"
                        data-message="The webmention will be fetched and verified again."
                        data-confirm-label="Reverify"
                        data-confirm-class="btn-primary">Reverify</button>
                <button type="button"
                        class="btn btn-sm btn-danger"
                        data-bs-toggle="modal"
                        data-bs-target="#confirmation-modal"
                        data-action="{{ url_for('root.delete_received_webmention', identifier=webmention.uuid, page=webmentions.page) }}"
                        data-title="Delete webmention?"
                        data-message="This permanently deletes the webmention and cannot be undone."
                        data-confirm-label="Delete"
                        data-confirm-class="btn-danger">Delete</button>
              </td>
            </tr>
          {% endfor %}
        </tbody>
      </table>
    </div>
    {% if webmentions.pages > 1 %}
      <div class="mt-3">{{ render_pagination(webmentions) }}</div>
    {% endif %}
    {% include "includes/confirmation_modal.html" %}
  {% else %}
    <p class="text-body-secondary">No Webmentions have been received yet.</p>
  {% endif %}
{% endblock %}
{% block scripts %}
  {{ super() }}
  <script src="{{ url_for('static', filename='js/confirmation-modal.js') }}"></script>
{% endblock %}