Files
Ressources-relationnel/resources/views/suggestions/show.blade.php
T
Azmog 2984b9f410
CI - Intégration continue / quality-and-tests (push) Successful in 3m15s
CD - Déploiement continu / deploy (push) Successful in 3m10s
feat: ajout du suivi des suggestions avec intégration Gitea
2026-07-08 09:59:05 +02:00

106 lines
5.7 KiB
PHP

@extends('app')
@section('title', 'Suivi de ma suggestion - (RE)Sources Relationnelles')
@section('content')
<section class="container mx-auto px-4 py-12">
<div class="max-w-3xl mx-auto">
<a href="{{ route('suggestions.index') }}" class="inline-block text-sm text-gray-500 hover:text-niagara mb-4"> Retour à mes suggestions</a>
<!-- En-tête -->
<div class="mb-6">
<div class="flex items-center gap-2 mb-2 flex-wrap">
<span class="px-2 py-0.5 text-xs font-bold rounded-full bg-gray-100 text-gray-700">{{ $suggestion->Type }}</span>
@if ($issue === null)
<span class="px-2 py-0.5 text-xs font-bold rounded-full bg-gray-100 text-gray-500"> État indisponible</span>
@elseif ($issue['state'] === 'closed')
<span class="px-2 py-0.5 text-xs font-bold rounded-full bg-purple-100 text-purple-700">✔️ Traitée</span>
@else
<span class="px-2 py-0.5 text-xs font-bold rounded-full bg-green-100 text-green-700">🟢 En cours de traitement</span>
@endif
@if ($suggestion->GiteaIssueNumber)
<span class="text-xs text-gray-400">Ticket {{ $suggestion->GiteaIssueNumber }}</span>
@endif
</div>
<h1 class="text-3xl font-bold text-gray-900">{{ $suggestion->Titre }}</h1>
<p class="text-sm text-gray-500 mt-1">Envoyée le {{ $suggestion->DateCreation->format('d/m/Y à H\hi') }}</p>
</div>
<!-- Messages -->
@if (session('success'))
<div class="mb-6 p-4 bg-green-50 border border-green-200 rounded-lg">
<p class="text-green-700 font-semibold"> {{ session('success') }}</p>
</div>
@endif
@if ($errors->any())
<div class="mb-6 p-4 bg-red-50 border border-red-200 rounded-lg">
@foreach ($errors->all() as $error)
<p class="text-red-700 text-sm">{{ $error }}</p>
@endforeach
</div>
@endif
<!-- Ma demande -->
<div class="bg-white rounded-xl border-2 border-niagara p-6 mb-6">
<p class="text-xs font-bold text-niagara uppercase mb-2">Votre demande</p>
<p class="text-gray-800 whitespace-pre-line">{{ $suggestion->Description }}</p>
</div>
<!-- Fil de discussion -->
<h2 class="text-xl font-bold text-gray-900 mb-4">
Réponses {{ count($commentaires) > 0 ? '('.count($commentaires).')' : '' }}
</h2>
@forelse ($commentaires as $commentaire)
<div class="bg-white rounded-xl border border-gray-200 p-5 mb-3">
<div class="flex items-center gap-2 mb-2">
<img
src="https://ui-avatars.com/api/?name={{ urlencode($commentaire['auteur']) }}&background=06989e&color=fff&size=32"
alt=""
class="w-8 h-8 rounded-full"
>
<span class="font-bold text-gray-900 text-sm">{{ $commentaire['auteur'] }}</span>
@if ($commentaire['date'])
<span class="text-xs text-gray-400">· {{ \Illuminate\Support\Carbon::parse($commentaire['date'])->format('d/m/Y à H\hi') }}</span>
@endif
</div>
<p class="text-gray-800 text-sm whitespace-pre-line">{{ $commentaire['corps'] }}</p>
</div>
@empty
<div class="bg-gray-50 rounded-xl border border-dashed border-gray-300 p-6 mb-3 text-center">
<p class="text-gray-500 text-sm">
Pas encore de réponse de l'équipe — vous serez notifié ici dès qu'une réponse sera publiée.
</p>
</div>
@endforelse
<!-- Répondre -->
@if ($suggestion->GiteaIssueNumber && ($issue['state'] ?? 'open') !== 'closed')
<form action="{{ route('suggestions.repondre', $suggestion) }}" method="POST" class="bg-white rounded-xl border border-gray-200 p-6 mt-6">
@csrf
<label for="message" class="block text-sm font-bold mb-2 text-gray-700">Répondre sur le ticket</label>
<textarea
id="message"
name="message"
required
minlength="2"
maxlength="2000"
rows="4"
placeholder="Apportez une précision, répondez à l'équipe…"
class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-niagara outline-none @error('message') border-red-500 @enderror">{{ old('message') }}</textarea>
@error('message')
<p class="text-red-600 text-xs mt-1">{{ $message }}</p>
@enderror
<button type="submit" class="mt-3 px-6 py-2.5 font-bold gradient-niagara text-white rounded-lg hover:shadow-lg transition-smooth duration-200">
📨 Envoyer ma réponse
</button>
</form>
@elseif (($issue['state'] ?? null) === 'closed')
<p class="text-sm text-gray-500 mt-6 text-center">
Cette suggestion a été traitée : le ticket est clôturé. Merci pour votre contribution !
</p>
@endif
</div>
</section>
@endsection