{% extends "main_card.html.twig" %} {% block title %} {% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_title{% endtrans %} {% else %} {% trans %}update_manager.progress.title{% endtrans %} {% endif %} {% endblock %} {% block card_title %} {% if progress and progress.status == 'running' %} {% elseif progress and progress.status == 'completed' %} {% elseif progress and progress.status == 'failed' %} {% else %} {% endif %} {% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_title{% endtrans %} {% else %} {% trans %}update_manager.progress.title{% endtrans %} {% endif %} {% endblock %} {% block head %} {{ parent() }} {# Auto-refresh while update is running - also refresh when 'starting' status #} {% if not progress or progress.status == 'running' or progress.status == 'starting' %} {% endif %} {% endblock %} {% block card_content %}
{# Progress Header #}
{% if progress and progress.status == 'completed' %} {% elseif progress and progress.status == 'failed' %} {% else %} {% endif %}

{% if progress and progress.status == 'running' %} {% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrading{% endtrans %} {% else %} {% trans %}update_manager.progress.updating{% endtrans %} {% endif %} {% elseif progress and progress.status == 'completed' %} {% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_completed{% endtrans %} {% else %} {% trans %}update_manager.progress.completed{% endtrans %} {% endif %} {% elseif progress and progress.status == 'failed' %} {% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_failed{% endtrans %} {% else %} {% trans %}update_manager.progress.failed{% endtrans %} {% endif %} {% else %} {% trans %}update_manager.progress.initializing{% endtrans %} {% endif %}

{% if progress %} {% if is_downgrade|default(false) %} {% trans with {'%version%': progress.target_version|default('unknown')} %}update_manager.progress.downgrading_to{% endtrans %} {% else %} {% trans with {'%version%': progress.target_version|default('unknown')} %}update_manager.progress.updating_to{% endtrans %} {% endif %} {% endif %}

{# Progress Bar #} {% set percent = progress ? ((progress.current_step|default(0) / progress.total_steps|default(12)) * 100)|round : 0 %} {% if progress and progress.status == 'completed' %} {% set percent = 100 %} {% endif %}
{{ percent }}%
{# Current Step - shows what's currently being worked on #} {% if progress and (progress.status == 'running' or progress.status == 'starting') %}
{{ progress.step_name|default('initializing')|replace({'_': ' '})|capitalize }}: {{ progress.step_message|default('Processing...') }}
{% endif %} {# Error Message #} {% if progress and progress.status == 'failed' %}
{% trans %}update_manager.progress.error{% endtrans %}: {{ progress.error|default('An unknown error occurred') }}
{% endif %} {# Success Message #} {% if progress and progress.status == 'completed' %}
{% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_success_message{% endtrans %} {% else %} {% trans %}update_manager.progress.success_message{% endtrans %} {% endif %}
{% endif %} {# Steps Timeline #}
{% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_steps{% endtrans %} {% else %} {% trans %}update_manager.progress.steps{% endtrans %} {% endif %}
    {% if progress and progress.steps %} {% for step in progress.steps %}
  • {% if step.success %} {% else %} {% endif %}
    {{ step.step|replace({'_': ' '})|capitalize }}
    {{ step.message }}
    {{ step.timestamp|date('H:i:s') }}
  • {% endfor %} {% else %}
  • {% trans %}update_manager.progress.waiting{% endtrans %}
  • {% endif %}
{# Actions #}
{% if progress and (progress.status == 'completed' or progress.status == 'failed') %} {% trans %}update_manager.progress.back{% endtrans %} {% trans %}update_manager.progress.refresh_page{% endtrans %} {% endif %}
{# Warning Notice #} {% if not progress or progress.status == 'running' or progress.status == 'starting' %}
{% trans %}update_manager.progress.warning{% endtrans %}: {% if is_downgrade|default(false) %} {% trans %}update_manager.progress.downgrade_do_not_close{% endtrans %} {% else %} {% trans %}update_manager.progress.do_not_close{% endtrans %} {% endif %}
{# JavaScript refresh - more reliable than meta refresh #} {% endif %}
{% endblock %}