Gestion utilisateurs, limites recherche, filtres lieux/sources, fix logo prod

- Admin : CRUD complet utilisateurs (créer, modifier nom/email/mdp/rôle, supprimer)
  avec garde-fous (dernier admin, compte propre)
- Recherche : limite configurable par l'admin (défaut 200), bannière d'avertissement
  quand la limite est atteinte, plus de pagination (résultats en bloc)
- Lieux : liste non chargée sans filtre actif (performance sur grands volumes)
- Sources : idem pour admin/responsables ; membres voient toujours leurs sources
- Logo 404 prod : +FollowSymLinks dans .htaccess, storage:link dans l'assistant
  d'installation, bouton "Recréer le lien" dans Administration → Paramètres

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 03:39:06 +02:00
parent dab9e758fe
commit 6a73a2f001
16 changed files with 464 additions and 99 deletions
+22 -13
View File
@@ -102,14 +102,28 @@
{{-- Résultats --}}
@if($resultats !== null)
<div>
<p class="text-sm text-gray-500 dark:text-gray-400 mb-3">
@if($total === 0)
Aucun relevé trouvé.
@else
<strong>{{ number_format($total) }}</strong> relevé{{ $total > 1 ? 's' : '' }} trouvé{{ $total > 1 ? 's' : '' }}
@if(request('q')) pour <em>« {{ request('q') }} »</em> @endif
@endif
</p>
<div class="flex items-center justify-between mb-3">
<p class="text-sm text-gray-500 dark:text-gray-400">
@if($total === 0)
Aucun relevé trouvé.
@else
<strong>{{ number_format($total) }}</strong> relevé{{ $total > 1 ? 's' : '' }} trouvé{{ $total > 1 ? 's' : '' }}
@if(request('q')) pour <em>« {{ request('q') }} »</em> @endif
@endif
</p>
</div>
@if($limited)
<div class="mb-4 p-4 bg-amber-50 dark:bg-amber-900/30 border border-amber-200 dark:border-amber-700 rounded-md flex items-start gap-3">
<svg class="w-5 h-5 text-amber-500 shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/>
</svg>
<p class="text-sm text-amber-800 dark:text-amber-200">
Seuls les <strong>{{ number_format($resultats->count()) }} premiers résultats</strong> sur {{ number_format($total) }} sont affichés.
Affinez vos critères de recherche pour obtenir des résultats plus précis.
</p>
</div>
@endif
@if($resultats->isNotEmpty())
<div class="bg-white dark:bg-gray-800 shadow rounded-lg overflow-hidden">
@@ -175,11 +189,6 @@
</table>
</div>
@if($resultats->hasPages())
<div class="px-6 py-4 border-t border-gray-200 dark:border-gray-700">
{{ $resultats->links() }}
</div>
@endif
</div>
@endif
</div>