ai_upgrade_assistant-0.2.0-alpha2/templates/ai-upgrade-assistant-status.html.twig
templates/ai-upgrade-assistant-status.html.twig
{#
/**
* @file
* Theme implementation for the AI Upgrade Assistant status page.
*
* Available variables:
* - modules: Module status information.
* - progress: Overall progress information.
*/
#}
{% extends "ai-upgrade-base.html.twig" %}
{% block content %}
<div class="ai-upgrade-status">
{# Hero Section with Progress #}
<div class="ai-hero">
<div class="ai-hero__content">
<h1 class="ai-hero__title">{{ 'AI Upgrade Assistant'|t }}</h1>
<p class="ai-hero__description">{{ 'Modernize your Drupal site with AI-powered upgrades'|t }}</p>
<div class="ai-progress-container">
<div class="ai-progress-ring">
<svg class="ai-progress-ring__circle" width="120" height="120">
<circle class="ai-progress-ring__circle-bg" r="54" cx="60" cy="60"/>
<circle class="ai-progress-ring__circle-progress" r="54" cx="60" cy="60"
style="stroke-dashoffset: {{ 339.292 - (339.292 * (progress.data['#markup'] ?? 0) / 100) }}"/>
</svg>
<div class="ai-progress-ring__text">
<span class="ai-progress-ring__percentage">{{ progress.data['#markup'] ?? 0 }}%</span>
<span class="ai-progress-ring__label">{{ 'Complete'|t }}</span>
</div>
</div>
</div>
</div>
</div>
{# Quick Actions #}
<div class="ai-quick-actions">
<a href="{{ path('ai_upgrade_assistant.start_analysis') }}" class="ai-button ai-button--primary">
<span class="material-icons">play_arrow</span>
{{ 'Start Analysis'|t }}
</a>
<a href="{{ path('ai_upgrade_assistant.auto_fix_all') }}" class="ai-button ai-button--secondary">
<span class="material-icons">auto_fix_high</span>
{{ 'Auto Fix All'|t }}
</a>
<a href="{{ path('ai_upgrade_assistant.analysis_report') }}" class="ai-button ai-button--secondary">
<span class="material-icons">description</span>
{{ 'View Report'|t }}
</a>
</div>
{# Module Groups #}
<div class="ai-module-groups">
{% for group_name, group_modules in modules.groups %}
{% if group_modules is not empty %}
<div class="ai-card ai-module-group">
<div class="ai-card__header">
<span class="material-icons">
{% if group_name == 'Compatible' %}check_circle
{% elseif group_name == 'Needs_Update' %}warning
{% else %}help{% endif %}
</span>
<h2>{{ group_name|replace({'_': ' '})|t }}</h2>
<span class="ai-badge">{{ group_modules|length }}</span>
</div>
<div class="ai-module-list">
{% for module in group_modules %}
<div class="ai-module-item">
<div class="ai-module-item__info">
<div class="ai-module-item__main">
<span class="ai-module-item__name">{{ module.name['#markup'] }}</span>
<span class="ai-badge ai-badge--outline">{{ module.version['#markup'] }}</span>
</div>
<span class="ai-status-label ai-status-label--{{ module.status['#markup']|lower }}">
{{ module.status['#markup']|replace({'_': ' '})|t }}
</span>
</div>
<div class="ai-module-item__actions">
{% if module.machine_name['#markup'] is defined and module.machine_name['#markup'] is not empty %}
<a href="{{ path('ai_upgrade_assistant.analyze_module', {'module': module.machine_name['#markup']}) }}"
class="ai-button ai-button--icon">
<span class="material-icons">analytics</span>
{{ 'Analyze'|t }}
</a>
<a href="{{ path('ai_upgrade_assistant.auto_fix_module', {'module_name': module.machine_name['#markup']}) }}"
class="ai-button ai-button--icon">
<span class="material-icons">build</span>
{{ 'Auto Fix'|t }}
</a>
<a href="{{ path('ai_upgrade_assistant.module_patches', {'module': module.machine_name['#markup']}) }}"
class="ai-button ai-button--icon">
<span class="material-icons">list</span>
{{ 'Patches'|t }}
</a>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
</div>
<div class="ai-footer-actions">
<a href="{{ path('ai_upgrade_assistant.upgrade') }}" class="ai-button ai-button--secondary">
<span class="material-icons">refresh</span>
{{ 'Refresh Status'|t }}
</a>
</div>
</div>
{% endblock %}
