diff --git a/attached_assets/{233371AA-29E0-4DDB-A0E3-B792E4B62C9E}_1755173552015.png b/attached_assets/{233371AA-29E0-4DDB-A0E3-B792E4B62C9E}_1755173552015.png new file mode 100644 index 0000000..f347179 Binary files /dev/null and b/attached_assets/{233371AA-29E0-4DDB-A0E3-B792E4B62C9E}_1755173552015.png differ diff --git a/client/src/pages/SavTickets.tsx b/client/src/pages/SavTickets.tsx index 3acd203..8cb766d 100644 --- a/client/src/pages/SavTickets.tsx +++ b/client/src/pages/SavTickets.tsx @@ -59,10 +59,12 @@ export default function SavTickets() { const [showCreateModal, setShowCreateModal] = useState(false); const [showDetailModal, setShowDetailModal] = useState(false); const [showEditModal, setShowEditModal] = useState(false); - const [showCommentModal, setShowCommentModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); const [selectedTicket, setSelectedTicket] = useState(null); const [newComment, setNewComment] = useState(""); + const [tempPriority, setTempPriority] = useState(""); + const [tempStatus, setTempStatus] = useState(""); const [formData, setFormData] = useState({ supplierId: "", groupId: "", @@ -162,14 +164,17 @@ export default function SavTickets() { // Add comment mutation const addCommentMutation = useMutation({ mutationFn: async (data: { ticketId: number; comment: string }) => { - const response = await apiRequest(`/api/sav-tickets/${data.ticketId}/comments`, "POST", { - comment: data.comment + const response = await apiRequest(`/api/sav/tickets/${data.ticketId}/history`, "POST", { + description: data.comment // ✅ Utilise 'description' selon le schéma API }); return response; }, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['/api/sav/tickets'] }); - setShowCommentModal(false); + // ✅ Invalider aussi les détails du ticket pour rafraîchir l'historique + if (selectedTicket) { + queryClient.invalidateQueries({ queryKey: [`/api/sav/tickets/${selectedTicket.id}`] }); + } setNewComment(""); toast({ title: "Commentaire ajouté", @@ -188,7 +193,7 @@ export default function SavTickets() { // Delete ticket mutation const deleteTicketMutation = useMutation({ mutationFn: async (ticketId: number) => { - const response = await apiRequest(`/api/sav-tickets/${ticketId}`, "DELETE"); + const response = await apiRequest(`/api/sav/tickets/${ticketId}`, "DELETE"); return response; }, onSuccess: () => { @@ -271,6 +276,13 @@ export default function SavTickets() { setShowDetailModal(true); }; + // Query pour récupérer les détails complets du ticket avec historique + const { data: ticketDetails } = useQuery({ + queryKey: [`/api/sav/tickets/${selectedTicket?.id}`], + enabled: !!selectedTicket && showDetailModal, + staleTime: 0, // Toujours récupérer les derniers commentaires + }); + // Handle editing ticket const handleEditTicket = (ticket: SavTicketWithRelations) => { setSelectedTicket(ticket); @@ -290,12 +302,7 @@ export default function SavTickets() { setShowEditModal(true); }; - // Handle commenting on ticket - const handleCommentTicket = (ticket: SavTicketWithRelations) => { - setSelectedTicket(ticket); - setNewComment(""); - setShowCommentModal(true); - }; + // Handle deleting ticket const handleDeleteTicket = (ticket: SavTicketWithRelations) => { @@ -779,14 +786,9 @@ export default function SavTickets() { {canModify && ( - <> - - - + )} {canDelete && (