ai_upgrade_assistant-0.2.0-alpha2/templates/ai-upgrade-assistant-analysis.html.twig

templates/ai-upgrade-assistant-analysis.html.twig
{% extends "ai-upgrade-base.html.twig" %}

{% block content %}
  {% if analysis.status == 'error' %}
    <div class="ai-message ai-message--error">
      <span class="material-icons">error</span>
      <p>{{ analysis.error_message }}</p>
    </div>
  {% else %}
    {% if analysis %}
      <div class="module-analysis-results">
        <div class="breadcrumb">
          {{ 'Home'|t }} » {{ 'Administration'|t }} » {{ 'Reports'|t }} » {{ 'AI Upgrade Assistant'|t }}
        </div>

        <h1>
          <span class="material-icons">smart_toy</span>
          {{ 'AI-Powered Upgrade Analysis'|t }}
        </h1>

        <div class="analysis-meta">
          <div class="meta-item">
            <span class="label">{{ 'Generated on:'|t }}</span>
            <span class="value">{{ 'now'|date('Y-m-d H:i:s') }}</span>
          </div>
          <div class="meta-item">
            <span class="label">{{ 'Drupal Version:'|t }}</span>
            <span class="value">{{ analysis.drupal_version }}</span>
          </div>
        </div>

        <div class="analysis-summary">
          <div class="summary-grid">
            <div class="summary-item">
              <span class="label">{{ 'Total Modules'|t }}</span>
              <span class="value">{{ analysis.total_modules }}</span>
            </div>
            <div class="summary-item">
              <span class="label">{{ 'Issues Found'|t }}</span>
              <span class="value">{{ analysis.issues_found }}</span>
            </div>
            <div class="summary-item">
              <span class="label">{{ 'Critical Issues'|t }}</span>
              <span class="value">{{ analysis.critical_issues }}</span>
            </div>
            <div class="summary-item">
              <span class="label">{{ 'Compatibility'|t }}</span>
              <span class="value">{{ analysis.compatibility }}%</span>
            </div>
          </div>
        </div>

        {% for module in analysis.modules %}
          <div class="module-card">
            <div class="module-header">
              <div class="module-title">
                <h2>{{ module.name }}</h2>
                <div class="module-meta">
                  {% if module.type %}
                    <span class="module-type {{ module.type }}">{{ module.type }}</span>
                  {% endif %}
                  <span class="version">
                    {% if module.version %}
                      v{{ module.version }}
                    {% else %}
                      {{ 'Version unknown'|t }}
                    {% endif %}
                  </span>
                  {% if module.recommended_version %}
                    <span class="recommended-version">({{ 'Latest:'|t }} {{ module.recommended_version }})</span>
                  {% endif %}
                  <span class="status {{ module.status|lower }}">{{ module.status }}</span>
                </div>
              </div>
              <div class="module-actions">
                {% if module.project_url %}
                  <a href="{{ module.project_url }}" target="_blank" class="button">
                    <span class="material-icons">open_in_new</span>
                    {{ 'View on Drupal.org'|t }}
                  </a>
                {% endif %}
              </div>
            </div>

            <div class="module-details">
              {% if module.description %}
                <div class="module-description">
                  {{ module.description }}
                </div>
              {% endif %}

              <div class="module-info-grid">
                {% if module.core_compatibility %}
                  <div class="info-item">
                    <span class="label">{{ 'Core Compatibility'|t }}</span>
                    <span class="value">{{ module.core_compatibility }}</span>
                  </div>
                {% endif %}
                
                {% if module.php_version %}
                  <div class="info-item">
                    <span class="label">{{ 'PHP Version'|t }}</span>
                    <span class="value">{{ module.php_version }}</span>
                  </div>
                {% endif %}

                {% if module.package %}
                  <div class="info-item">
                    <span class="label">{{ 'Package'|t }}</span>
                    <span class="value">{{ module.package }}</span>
                  </div>
                {% endif %}

                {% if module.dependencies %}
                  <div class="info-item">
                    <span class="label">{{ 'Dependencies'|t }}</span>
                    <span class="value">
                      {% for dependency in module.dependencies %}
                        <span class="dependency">{{ dependency }}</span>
                      {% endfor %}
                    </span>
                  </div>
                {% endif %}
              </div>
            </div>

            {% if module.upgrade_commands %}
              <div class="upgrade-commands">
                <h3>
                  <span class="material-icons">terminal</span>
                  {{ 'Upgrade Commands'|t }}
                </h3>
                
                {% if module.upgrade_commands.composer %}
                  <div class="command-item">
                    <label>{{ 'Composer Update'|t }}</label>
                    <div class="command-wrapper">
                      <code>{{ module.upgrade_commands.composer }}</code>
                      <button class="copy-button" data-clipboard-text="{{ module.upgrade_commands.composer }}">
                        <span class="material-icons">content_copy</span>
                      </button>
                    </div>
                  </div>
                {% endif %}

                {% if module.upgrade_commands.drush %}
                  <div class="command-item">
                    <label>{{ 'Post-Update Commands'|t }}</label>
                    {% for cmd in module.upgrade_commands.drush %}
                      <div class="command-wrapper">
                        <code>{{ cmd }}</code>
                        <button class="copy-button" data-clipboard-text="{{ cmd }}">
                          <span class="material-icons">content_copy</span>
                        </button>
                      </div>
                    {% endfor %}
                  </div>
                {% endif %}
              </div>
            {% endif %}

            {% if module.issues %}
              <div class="ai-subsection issues-section">
                <h4 class="ai-subsection__title">
                  <span class="material-icons">bug_report</span>
                  {{ 'Issues Found'|t }}
                  <span class="issue-count">({{ module.issues|length }})</span>
                </h4>

                <div class="issues-grid">
                  {% for issue in module.issues %}
                    <div class="issue-card {{ issue.severity }}">
                      <div class="issue-header">
                        <span class="material-icons">
                          {% if issue.severity == 'critical' %}error{% endif %}
                          {% if issue.severity == 'warning' %}warning{% endif %}
                          {% if issue.severity == 'notice' %}info{% endif %}
                        </span>
                        <h5>{{ issue.title }}</h5>
                        <span class="issue-type">{{ issue.type|title }}</span>
                      </div>

                      <div class="issue-content">
                        <p class="issue-message">{{ issue.message }}</p>
                        
                        {% if issue.file %}
                          <div class="issue-location">
                            <span class="material-icons">code</span>
                            {{ issue.file }}{% if issue.line %}:{{ issue.line }}{% endif %}
                          </div>
                        {% endif %}

                        {% if issue.solution %}
                          <div class="issue-solution">
                            <strong>{{ 'Solution:'|t }}</strong>
                            <p>{{ issue.solution }}</p>
                          </div>
                        {% endif %}
                      </div>
                    </div>
                  {% endfor %}
                </div>
              </div>
            {% endif %}

            {% if module.code_quality %}
              <div class="ai-subsection code-quality-section">
                <h4 class="ai-subsection__title">
                  <span class="material-icons">code</span>
                  {{ 'Code Quality Analysis'|t }}
                </h4>

                {% if module.code_quality.deprecated_code %}
                  <div class="code-quality-subsection">
                    <h5>
                      <span class="material-icons">warning</span>
                      {{ 'Deprecated Code Usage'|t }}
                    </h5>
                    <div class="code-issues-grid">
                      {% for issue in module.code_quality.deprecated_code %}
                        <div class="code-issue-card">
                          <div class="issue-location">
                            {{ issue.file }}:{{ issue.line }}
                          </div>
                          <p class="issue-message">{{ issue.message }}</p>
                          <div class="issue-solution">
                            <strong>{{ 'Replacement:'|t }}</strong>
                            <code>{{ issue.replacement }}</code>
                          </div>
                        </div>
                      {% endfor %}
                    </div>
                  </div>
                {% endif %}

                {% if module.code_quality.coding_standards %}
                  <div class="code-quality-subsection">
                    <h5>
                      <span class="material-icons">rule</span>
                      {{ 'Coding Standards'|t }}
                    </h5>
                    <div class="code-issues-grid">
                      {% for issue in module.code_quality.coding_standards %}
                        <div class="code-issue-card">
                          <div class="issue-location">
                            {{ issue.file }}:{{ issue.line }}
                          </div>
                          <p class="issue-message">{{ issue.message }}</p>
                          <div class="issue-solution">
                            <strong>{{ 'Solution:'|t }}</strong>
                            <p>{{ issue.solution }}</p>
                          </div>
                        </div>
                      {% endfor %}
                    </div>
                  </div>
                {% endif %}
              </div>
            {% endif %}

            {% if analysis.ai_recommendation %}
              <div class="ai-recommendation">
                <div class="ai-recommendation-header">
                  <span class="material-icons">smart_toy</span>
                  <h3>{{ 'Message from your friendly AI Upgrade Assistant'|t }}</h3>
                </div>
                
                <div class="ai-message">
                  <p class="greeting">{{ analysis.ai_recommendation.greeting }}</p>
                  <p class="message">{{ analysis.ai_recommendation.message }}</p>
                  
                  {% if analysis.ai_recommendation.next_steps %}
                    <div class="next-steps">
                      <h4>{{ 'Next Steps:'|t }}</h4>
                      <ul>
                        {% for step in analysis.ai_recommendation.next_steps %}
                          <li>{{ step }}</li>
                        {% endfor %}
                      </ul>
                    </div>
                  {% endif %}

                  <div class="meta-info">
                    <span class="time-estimate">
                      <span class="material-icons">schedule</span>
                      {{ 'Estimated time:'|t }} {{ analysis.ai_recommendation.time_estimate.min }}-{{ analysis.ai_recommendation.time_estimate.max }} {{ 'hours'|t }}
                    </span>
                    <span class="confidence">
                      <span class="material-icons">verified</span>
                      {{ 'Confidence:'|t }} {{ analysis.ai_recommendation.confidence|title }}
                    </span>
                  </div>
                </div>
              </div>
            {% endif %}
          </div>
        {% endfor %}
      </div>
    {% endif %}
  {% endif %}
  
  {# Footer Actions #}
  <div class="ai-footer-actions">
    <a href="{{ path('ai_upgrade_assistant.start_analysis') }}" class="ai-button ai-button--primary">
      <span class="material-icons">refresh</span>
      {{ 'Run New Analysis'|t }}
    </a>
    <a href="{{ path('ai_upgrade_assistant.generate_report') }}" class="ai-button ai-button--secondary">
      <span class="material-icons">description</span>
      {{ 'Generate Report'|t }}
    </a>
  </div>
{% endblock %}

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

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