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 %}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc