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