44 lines
2.5 KiB
HTML
44 lines
2.5 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}Benachrichtigungen{% endblock %}
|
||
{% block content %}
|
||
<div class="stack stack-sm">
|
||
<h1>Benachrichtigungen</h1>
|
||
<p class="text-muted">E-Mails zu Freigaben und Nachrichten an die Webhooks der Workspaces. Der Worker stellt sie zu und versucht es bei Fehlern bis zu fünfmal.</p>
|
||
</div>
|
||
<div class="aiw-stats">
|
||
<div class="card"><div class="card-body stat">
|
||
<span class="stat-label">E-Mail</span>
|
||
<span class="text-base">{% if mail_ready %}eingerichtet: <code>{{ settings.smtp_host }}:{{ settings.smtp_port }}</code>, Absender <code>{{ settings.smtp_from }}</code>{% else %}nicht eingerichtet (AIW_SMTP_HOST, AIW_SMTP_FROM){% endif %}</span>
|
||
</div></div>
|
||
<div class="card"><div class="card-body stat">
|
||
<span class="stat-label">Links in Nachrichten</span>
|
||
<span class="text-base">{% if settings.public_url %}<code>{{ settings.public_url }}</code>{% else %}nur Pfade; AIW_PUBLIC_URL setzen{% endif %}</span>
|
||
</div></div>
|
||
<div class="card"><div class="card-body stat">
|
||
<span class="stat-label">Webhook-Hosts</span>
|
||
<span class="text-base"><code>{{ settings.webhook_allowed_hosts or '–' }}</code></span>
|
||
</div></div>
|
||
</div>
|
||
<section class="card"><div class="card-body stack">
|
||
<h2 class="text-lg">Letzte 50</h2>
|
||
{% set labels = {'pending': 'wartet', 'sent': 'zugestellt', 'failed': 'fehlgeschlagen', 'skipped': 'übersprungen'} %}
|
||
{% if items %}
|
||
<div class="table-wrap"><table>
|
||
<thead><tr><th>Zeit</th><th>Kanal</th><th>Empfänger</th><th>Betreff</th><th>Status</th></tr></thead>
|
||
<tbody>
|
||
{% for n in items %}
|
||
<tr>
|
||
<td class="text-sm aiw-nowrap">{{ n.created.strftime('%d.%m.%Y %H:%M') }}</td>
|
||
<td class="text-sm">{{ 'E-Mail' if n.channel == 'email' else 'Webhook' }}</td>
|
||
<td class="text-sm">{{ names.get(n.user_id, '–') if n.channel == 'email' else 'Workspace ' ~ n.workspace_id }}</td>
|
||
<td class="text-sm">{{ n.subject }}</td>
|
||
<td><span class="badge {{ 'badge-success' if n.status == 'sent' else 'badge-danger' if n.status == 'failed' else 'badge-default' }}">{{ labels.get(n.status, n.status) }}</span>
|
||
{% if n.error %}<p class="text-xs text-muted aiw-break">{{ n.attempts }} Versuch{{ 'e' if n.attempts != 1 }}: {{ n.error }}</p>{% endif %}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table></div>
|
||
{% else %}<p class="text-muted">Noch keine Benachrichtigungen.</p>{% endif %}
|
||
<p class="text-sm text-muted">Eine Test-Mail an dich selbst gibt es im <a href="/profile">Profil</a>.</p>
|
||
</div></section>
|
||
{% endblock %}
|