{#
Devices list page — Settings › Devices.
Two concerns on one page:
1. The "current browser" card, whose state is resolved client-side
by /static/push.js (the server doesn't know which stored row,
if any, belongs to the browser viewing this page). We render
all four possible states' DOM hooks and let the script swap
copy + disable the toggle as appropriate.
2. The server-side subscription table: every row in
``push_subscriptions``, with a friendly UA label, delete action,
and a single "Send test push" button that fans out to all rows.
#}
{% extends "settings/_base.html" %}
{% from "_macros.html" import confirm_dialog %}
{% block section_header %}
Browsers subscribed to push notifications from Agent Drop. Each
device appears once per browser profile; re-subscribing refreshes
the row rather than adding a duplicate.
Devices
{{ detail }}{% endif %}
{{ detail }}{% endif %}
Web Push isn't configured on this server. Generate keys with
make vapid-keys, set AGENTDROP_VAPID_PUBLIC_KEY,
AGENTDROP_VAPID_PRIVATE_KEY, and
AGENTDROP_VAPID_SUBJECT, then restart.
Checking subscription state…
| Device | Subscribed | Last used | Actions |
|---|---|---|---|
|
{{ sub.label }}
{% if sub.user_agent %}
{{ sub.user_agent }}
{% endif %}
|
{{ sub.created_at.strftime("%Y-%m-%d") }} | {% if sub.last_used_at %} {{ sub.last_used_at.strftime("%Y-%m-%d") }} {% else %} — {% endif %} | {{ confirm_dialog( form_id="delete-device-" ~ sub.id, title="Remove this device?", message="It will stop receiving push notifications.", confirm_text="Remove device", danger=True, ) }} |
Enable notifications on at least one browser above to start receiving drops as push notifications.