qualiwiki/templates/admin/wiki_recent_changes.html.twig

173 lines
No EOL
10 KiB
Twig
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends 'base.html.twig' %}
{% block title %}Changements récents Wiki OSM{% endblock %}
{% block body %}
<div class="container mt-4">
<h1>Changements récents Wiki OpenStreetMap</h1>
<p class="lead">Liste des changements récents dans l'espace de noms français du wiki OpenStreetMap.</p>
{% if last_updated %}
<div class="alert alert-info">
<i class="bi bi-info-circle"></i> Dernière mise à jour : {{ last_updated|date('d/m/Y H:i') }}
</div>
{% endif %}
{% if team_members|length > 0 %}
<div class="card mb-4">
<div class="card-header bg-success text-white">
<h2>Équipe Wiki OSM FR</h2>
<p class="mb-0">Contributeurs classés par nombre de modifications</p>
</div>
<div class="card-body">
<div class="row">
{% for member in team_members %}
<div class="col-md-4 mb-3">
<div class="d-flex align-items-center">
{% if member.avatar_url is defined and member.avatar_url %}
<img src="{{ member.avatar_url }}" alt="{{ member.username }}" class="rounded-circle me-2" style="width: 40px; height: 40px; object-fit: cover;">
{% else %}
<div class="rounded-circle bg-secondary text-white d-flex align-items-center justify-content-center me-2" style="width: 40px; height: 40px;">
<span>{{ member.username|first|upper }}</span>
</div>
{% endif %}
<div>
<a href="{{ member.user_url }}" target="_blank" class="text-decoration-none">
<span class="fw-bold">{{ member.username }}</span>
</a>
<span class="badge bg-primary ms-2">{{ member.contributions }}</span>
<div class="small">
<span class="text-success" title="Caractères ajoutés">+{{ member.chars_added }}</span>
{% if member.chars_changed > 0 %}
<span class="text-warning" title="Caractères modifiés">~{{ member.chars_changed }}</span>
{% endif %}
{% if member.chars_deleted > 0 %}
<span class="text-danger" title="Caractères supprimés">-{{ member.chars_deleted }}</span>
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
<div class="card mb-4">
<div class="card-header bg-primary text-white">
<h2>Changements récents</h2>
<p class="mb-0">
<a href="https://wiki.openstreetmap.org/w/index.php?hidebots=1&hidepreviousrevisions=1&hidecategorization=1&hideWikibase=1&hidelog=1&hidenewuserlog=1&namespace=202&limit=500&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2"
target="_blank" class="text-white">
<i class="bi bi-box-arrow-up-right"></i> Voir sur le wiki OSM
</a>
</p>
</div>
<div class="card-body">
{% if recent_changes|length > 0 %}
<div class="table-responsive">
<table class="table table-striped table-hover">
<thead class="thead-dark">
<tr>
<th>Page</th>
<th>Date</th>
<th>Utilisateur</th>
<th>Commentaire</th>
<th>Taille</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for change in recent_changes %}
<tr>
<td>
<strong>
<a href="{{ change.page_url }}" target="_blank" class="text-decoration-none">
{{ change.page_name }}
</a>
</strong>
</td>
<td>{{ change.timestamp }}</td>
<td>
<div class="d-flex align-items-center">
{% if change.avatar_url is defined and change.avatar_url %}
<img src="{{ change.avatar_url }}" alt="{{ change.user }}" class="rounded-circle me-2" style="width: 30px; height: 30px; object-fit: cover;">
{% else %}
<div class="rounded-circle bg-secondary text-white d-flex align-items-center justify-content-center me-2" style="width: 30px; height: 30px; font-size: 0.8rem;">
<span>{{ change.user|first|upper }}</span>
</div>
{% endif %}
{% if change.user_url %}
<a href="{{ change.user_url }}" target="_blank" class="text-decoration-none">
{{ change.user }}
</a>
{% else %}
{{ change.user }}
{% endif %}
</div>
</td>
<td>
{{ change.comment }}
{% if change.added_text or change.removed_text %}
<div class="mt-1 small">
{% if change.added_text %}
<span class="text-success">{{ change.added_text }}</span>
{% endif %}
{% if change.removed_text %}
<span class="text-danger">{{ change.removed_text }}</span>
{% endif %}
</div>
{% endif %}
</td>
<td>
{% if change.change_size starts with '+' or change.change_size > 0 %}
<span class="text-success">{{ change.change_size }}</span>
{% elseif change.change_size starts with '' or change.change_size < 0 %}
<span class="text-danger">{{ change.change_size }}</span>
{% else %}
{{ change.change_size }}
{% endif %}
</td>
<td>
<a href="{{ change.page_url }}" target="_blank" class="btn btn-sm btn-outline-primary">
<i class="bi bi-box-arrow-up-right"></i> Voir
</a>
{% if change.diff_url %}
<a href="{{ change.diff_url }}" target="_blank" class="btn btn-sm btn-outline-secondary mt-1">
<i class="bi bi-file-diff"></i> Diff
</a>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="alert alert-info">
<p><i class="bi bi-info-circle"></i> Aucun changement récent n'a été trouvé.</p>
</div>
{% endif %}
</div>
</div>
<div class="card mb-4">
<div class="card-header">
<h2>À propos des changements récents</h2>
</div>
<div class="card-body">
<p>Cette page affiche les changements récents dans l'espace de noms français (FR:) du wiki OpenStreetMap.</p>
<p>Ces informations sont utiles pour suivre les traductions manquantes et les mises à jour des pages wiki.</p>
<p>Les données sont mises à jour automatiquement toutes les heures.</p>
</div>
</div>
<div class="mt-3">
<a href="{{ path('app_admin_wiki') }}" class="btn btn-secondary">
<i class="bi bi-arrow-left"></i> Retour à la liste des pages wiki
</a>
</div>
</div>
{% endblock %}