FreedomBox/plinth/modules/backups/templates/backups_repository.html
Sunil Mohan Adapa 7ea06bd635
backups: Fix issue clicking on schedule buttons with Bootstrap 5
Closes: #2476.

- The collapse click logic is triggered when clicking on the schedule button (or
the other buttons). In case of other buttons they do activate eventually but
the schedule button does not activate.

- Solve this properly by making sure that collapse logic is not triggered when
the buttons are clicked.

Tests:

- On stable and testing containers, ensure that collapse works. Collapse/expand
icon works. The three buttons work. And mobile view looks good.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2024-12-29 14:01:07 -05:00

123 lines
4.2 KiB
HTML

{% comment %}
# SPDX-License-Identifier: AGPL-3.0-or-later
{% endcomment %}
{% load i18n %}
<div class="table-responsive">
<table class="table" id="archives-list">
<thead>
<tr>
<th colspan="2">
<div class="d-sm-flex flex-sm-row">
<div class="flex-sm-grow-1 lh-lg collapsible-button"
data-bs-toggle="collapse" data-bs-target="#{{ uuid }}">
<span class="fa fa-chevron-right fa-fw" aria-hidden="true"></span>
{% if repository.error %}
<span class="fa fa-exclamation-triangle mount-error"
aria-hidden="true" title="{{ repository.error }}">
</span>
{% elif repository.is_encrypted %}
<span class="fa fa-lock encrypted"
aria-hidden="true" title="{% trans "This repository is encrypted" %}">
</span>
{% endif %}
{{ repository.name }}
</div>
<div class="text-end">
<a class="repository-schedule btn btn-sm btn-primary"
href="{% url 'backups:schedule' uuid %}">
<span class="fa fa-clock-o" aria-hidden="true"></span>
{% trans "Schedule" %}
</a>
{% if repository.flags.mountable %}
{% if repository.mounted %}
<form action="{% url 'backups:repository-umount' uuid %}" method="POST"
class="inline-block" >
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-default"
title="{% trans 'Unmount Location' %}">
<span class="fa fa-eject" aria-hidden="true"></span>
</button>
</form>
{% else %}
<form action="{% url 'backups:repository-mount' uuid %}" method="POST"
class="inline-block" >
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-default"
title="{% trans 'Mount Location' %}">
<span class="fa fa-eye" aria-hidden="true"></span>
</button>
</form>
{% endif %}
{% endif %}
{% if repository.flags.removable %}
<a title="{% trans 'Remove Backup Location. This will not delete the remote backup.' %}"
role="button" class="repository-remove btn btn-sm btn-default"
href="{% url 'backups:repository-remove' uuid %}">
<span class="fa fa-trash-o" aria-hidden="true"></span>
</a>
{% endif %}
</div>
</div>
</th>
</tr>
</thead>
<tbody class="collapse show" id="{{ uuid }}">
{% if repository.mounted %}
{% for archive in repository.archives %}
<tr id="archive-{{ archive.name }}" class="archive">
<td class="archive-name">{{ archive.name }}</td>
<td class="archive-operations">
<a class="archive-export btn btn-sm btn-default"
href="{% url 'backups:download' uuid archive.name %}">
{% trans "Download" %}
</a>
<a class="archive-export btn btn-sm btn-default"
href="{% url 'backups:restore-archive' uuid archive.name %}">
{% trans "Restore" %}
</a>
<a class="archive-delete btn btn-sm btn-default"
href="{% url 'backups:delete' uuid archive.name %}">
<span class="fa fa-trash-o" aria-hidden="true">
</span>
</a>
</td>
</tr>
{% endfor %}
{% if repository.error %}
<tr>
<td>
<p>{{ repository.error }}</p>
</td>
</tr>
{% endif %}
{% if not repository.error and not repository.archives %}
<tr>
<td>
<p>{% trans 'No archives currently exist.' %}</p>
</td>
</tr>
{% endif %}
{% endif %}
</tbody>
</table>
</div>