{# Background transfer status for one peer (Phase 6). The fragment swaps itself: while any batch is active it polls every 2s; when idle it only re-fetches on the sharingTransfersChanged trigger (fired by the routes that enqueue a batch), so an idle page costs nothing. #} {% set any_active = transfers | selectattr('active') | list | length > 0 %}
{{ _("This transfer reached %(budget)s over the shared relay. Relay traffic is metered — if both devices can be on the same network, that is the free path.", budget=batch.relay_budget_bytes | filesizeformat) }}
{{ batch.error }}
{% endif %} {% if batch.failed_files %}