FreedomBox/plinth/templates/notifications.html
Sunil Mohan Adapa 04ba96a467
ui: Use HTMX to update notifications on partial page updates
Tests:

- When app install button is clicked, the new page shows that app is being
installed. However, when app installation is complete, the notification still
shows that app is being installed. With the patch, the issues is resolved.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-02-02 14:38:11 -08:00

75 lines
2.7 KiB
HTML

{% comment %}
# SPDX-License-Identifier: AGPL-3.0-or-later
{% endcomment %}
{# Template to display notifications under the navbar #}
{% load i18n %}
{% load static %}
{% if notifications %}
<div id="notifications" class="notifications collapse no-no-js" hx-swap-oob="true">
<ul>
{% for note in notifications %}
<li class="notification notification-{{ note.severity }}">
<div class="notification-header">
<span class="notification-time"
title="{{ note.last_update_time|date:'DATETIME_FORMAT' }}">
{% blocktrans trimmed with time_since=note.last_update_time|timesince %}
{{ time_since }} ago
{% endblocktrans %}
</span>
{% if note.data.app_name %}
<div class="app-name">
{% if note.data.app_icon %}
<div class="app-icon fa {{ note.data.app_icon }}"></div>
{% elif note.data.app_icon_filename %}
{% if note.app_id %}
<img src="{% static note.app_id %}/icons/{{ note.data.app_icon_filename }}.svg"
alt="{{ note.data.app_name }}"
class="notification-icon" />
{% else %}
<img src="{% static 'theme/icons/' %}{{ note.data.app_icon_filename }}.svg"
alt="{{ note.data.app_name }}"
class="notification-icon" />
{% endif %}
{% endif %}
{{ note.data.app_name }}
</div>
{% endif %}
</div>
{% if note.body %}
{{ note.body.content.decode|safe }}
{% else %}
<div class="notification-title">{{ note.title }}</div>
{% if note.message %}
<p>{{ note.message }}</p>
{% endif %}
{% if note.actions %}
<div class="btn-toolbar">
{% for action in note.actions %}
{% if action.type == "dismiss" %}
<a href="{% url 'notification_dismiss' id=note.id %}?next={{ request.path|iriencode }}"
role="button" class="btn btn-default">
{% trans "Dismiss" %}
</a>
{% else %}
<a href="{% url action.url %}" role="button"
class="btn btn-{{ action.class|default:'default' }}">
{{ action.text }}
</a>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% endif %}