1
0
Fork 0
get-installer-bootstrap/templates/admin/dashboard.html.twig
2026-05-05 10:57:14 +02:00

78 lines
3.8 KiB
Twig

{% extends 'admin/base.html.twig' %}
{% block title %}Admin{% endblock %}
{% block body %}
<main class="admin-shell">
<header class="admin-toolbar">
<div>
<p class="eyebrow">Administration</p>
<h1>Mappings</h1>
</div>
<nav class="toolbar-actions" aria-label="Actions admin">
<a class="button button-primary" href="{{ path('admin_mapping_new') }}">Nouveau mapping</a>
<a class="button button-secondary" href="{{ path('admin_settings') }}">Configuration</a>
</nav>
</header>
{% for message in app.flashes('success') %}
<p class="alert alert-success">{{ message }}</p>
{% endfor %}
{% for message in app.flashes('error') %}
<p class="alert alert-error">{{ message }}</p>
{% endfor %}
<section class="table-panel" aria-label="Mappings">
<table class="admin-table">
<thead>
<tr>
<th>Chemin public</th>
<th>Dépôt</th>
<th>Réf.</th>
<th>Fichier</th>
<th>Actif</th>
<th>Dernière synchro</th>
<th>Dernier succès</th>
<th>Erreur</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for mapping in mappings %}
<tr>
<td><code>{{ mapping.publicPath }}</code></td>
<td class="text-muted">{{ mapping.repositoryUrl }}</td>
<td><code>{{ mapping.gitRef }}</code></td>
<td><code>{{ mapping.repositoryFilePath }}</code></td>
<td>
<span class="status-badge {{ mapping.active ? 'status-success' : 'status-muted' }}">
{{ mapping.active ? 'oui' : 'non' }}
</span>
</td>
<td>{{ mapping.lastSyncStatus ?: 'jamais' }}</td>
<td>{{ mapping.lastSuccessfulSyncAt ? mapping.lastSuccessfulSyncAt|date('Y-m-d H:i:s') : '' }}</td>
<td class="error-cell">{{ mapping.lastSyncError }}</td>
<td>
<div class="row-actions">
<a class="button button-ghost" href="{{ path('admin_mapping_edit', {id: mapping.id}) }}">Modifier</a>
<form method="post" action="{{ path('admin_mapping_sync', {id: mapping.id}) }}">
<input type="hidden" name="_token" value="{{ csrf_token('sync_mapping_' ~ mapping.id) }}">
<button class="button button-secondary" type="submit">Synchroniser</button>
</form>
<form method="post" action="{{ path('admin_mapping_delete', {id: mapping.id}) }}">
<input type="hidden" name="_token" value="{{ csrf_token('delete_mapping_' ~ mapping.id) }}">
<button class="button button-danger" type="submit">Supprimer</button>
</form>
</div>
</td>
</tr>
{% else %}
<tr>
<td class="empty-state" colspan="9">Aucun mapping.</td>
</tr>
{% endfor %}
</tbody>
</table>
</section>
</main>
{% endblock %}