NeahNew/.next/server/chunks/2851.js
2025-05-06 23:01:34 +02:00

1 line
10 KiB
JavaScript

"use strict";exports.id=2851,exports.ids=[2851],exports.modules={32851:(e,r,s)=>{s.d(r,{GroupsTable:()=>b});var a=s(60687),t=s(43210),i=s(96752),l=s(24934),o=s(68988),c=s(96474),n=s(93661),d=s(63143),m=s(41312),u=s(96362),h=s(37826),x=s(55629),g=s(39390),p=s(70333);function y({open:e,onOpenChange:r,onAfterClose:s,triggerComponent:i,children:l,className:o}){let c=(0,t.useCallback)(e=>{r(e),!e&&s&&setTimeout(s,300)},[r,s]);return(0,a.jsxs)(h.lG,{open:e,onOpenChange:c,children:[i&&(0,a.jsx)(h.zM,{asChild:!0,children:i}),(0,a.jsx)(h.Cf,{className:o,children:l})]})}function b({userRole:e=[]}){let[r,s]=(0,t.useState)([]),[b,j]=(0,t.useState)(!0),[N,v]=(0,t.useState)(""),[f,w]=(0,t.useState)(!1),[C,E]=(0,t.useState)(""),[k,A]=(0,t.useState)(!1),[L,S]=(0,t.useState)(null),[M,R]=(0,t.useState)(""),[$,O]=(0,t.useState)(!1),[T,F]=(0,t.useState)([]),[G,U]=(0,t.useState)([]),J=async()=>{try{if(!C.trim())throw Error("Le nom du groupe est requis");let e=await fetch("/api/groups",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:C})}),r=await e.json();if(!e.ok)throw Error(r.message||"Erreur lors de la cr\xe9ation du groupe");s(e=>[...e,r]),w(!1),E(""),(0,p.oR)({title:"Succ\xe8s",description:"Le groupe a \xe9t\xe9 cr\xe9\xe9 avec succ\xe8s"})}catch(e){(0,p.oR)({title:"Erreur",description:e instanceof Error?e.message:"Une erreur est survenue",variant:"destructive"})}},z=async e=>{try{if(!(await fetch(`/api/groups/${e}`,{method:"DELETE"})).ok)throw Error("Erreur lors de la suppression du groupe");s(r=>r.filter(r=>r.id!==e)),(0,p.oR)({title:"Succ\xe8s",description:"Le groupe a \xe9t\xe9 supprim\xe9 avec succ\xe8s"})}catch(e){(0,p.oR)({title:"Erreur",description:e instanceof Error?e.message:"Une erreur est survenue",variant:"destructive"})}},P=async e=>{try{let s=r.find(r=>r.id===e);if(!s)return;S(s),R(s.name),A(!0)}catch(e){(0,p.oR)({title:"Erreur",description:e instanceof Error?e.message:"Une erreur est survenue",variant:"destructive"})}},q=async()=>{try{if(!L||!M.trim())throw Error("Le nom du groupe est requis");if(!(await fetch(`/api/groups/${L.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:M})})).ok)throw Error("Erreur lors de la modification du groupe");s(e=>e.map(e=>e.id===L.id?{...e,name:M}:e)),A(!1),S(null),R(""),(0,p.oR)({title:"Succ\xe8s",description:"Le groupe a \xe9t\xe9 modifi\xe9 avec succ\xe8s"})}catch(e){(0,p.oR)({title:"Erreur",description:e instanceof Error?e.message:"Une erreur est survenue",variant:"destructive"})}},H=async e=>{let a=r.find(r=>r.id===e);if(a){S(a);try{let r=await fetch(`/api/groups/${e}/members`);if(!r.ok)throw Error("Failed to fetch group members");let a=await r.json();F(a),s(r=>r.map(r=>r.id===e?{...r,membersCount:a.length}:r));let t=await fetch("/api/users");if(!t.ok)throw Error("Failed to fetch users");let i=await t.json();U(i.filter(e=>!a.some(r=>r.id===e.id))),O(!0)}catch(e){(0,p.oR)({title:"Erreur",description:"Erreur lors de la r\xe9cup\xe9ration des membres",variant:"destructive"})}}},_=async e=>{if(L)try{if(!(await fetch(`/api/groups/${L.id}/members`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:e})})).ok)throw Error("Failed to add member");let r=G.find(r=>r.id===e);r&&(F(e=>[...e,r]),U(r=>r.filter(r=>r.id!==e))),s(e=>e.map(e=>e.id===L.id?{...e,membersCount:e.membersCount+1}:e)),(0,p.oR)({title:"Success",description:"Member added successfully"})}catch(e){(0,p.oR)({title:"Error",description:e instanceof Error?e.message:"An error occurred",variant:"destructive"})}},B=async e=>{if(L)try{if(!(await fetch(`/api/groups/${L.id}/members/${e}`,{method:"DELETE"})).ok)throw Error("Failed to remove member");let r=T.find(r=>r.id===e);r&&(F(r=>r.filter(r=>r.id!==e)),U(e=>[...e,r])),s(e=>e.map(e=>e.id===L.id?{...e,membersCount:Math.max(0,e.membersCount-1)}:e)),(0,p.oR)({title:"Success",description:"Member removed successfully"})}catch(e){(0,p.oR)({title:"Error",description:e instanceof Error?e.message:"An error occurred",variant:"destructive"})}},D=(0,t.useCallback)(()=>{E("")},[]),I=(0,t.useCallback)(()=>{S(null),R("")},[]),Q=(0,t.useCallback)(()=>{S(null),F([]),U([])},[]);return b?(0,a.jsx)("div",{className:"text-center p-4",children:"Loading..."}):(0,a.jsxs)("div",{className:"space-y-4 p-6 bg-gray-100 rounded-lg",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center",children:[(0,a.jsx)(o.p,{type:"text",placeholder:"Rechercher un groupe...",value:N,onChange:e=>v(e.target.value),className:"max-w-xs bg-white text-gray-900 border-gray-300"}),(0,a.jsxs)(y,{open:f,onOpenChange:w,onAfterClose:D,triggerComponent:(0,a.jsxs)(l.$,{className:"bg-blue-600 hover:bg-blue-700 text-white",children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4"})," Ajouter un groupe"]}),className:"bg-white text-black border border-gray-300",children:[(0,a.jsx)(h.c7,{children:(0,a.jsx)(h.L3,{className:"text-gray-900",children:"Nouveau Groupe"})}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(g.J,{htmlFor:"groupName",className:"text-gray-900",children:"Nom du groupe"}),(0,a.jsx)(o.p,{id:"groupName",value:C,onChange:e=>E(e.target.value),placeholder:"Entrez le nom du groupe",className:"bg-white text-gray-900 border-gray-300"})]}),(0,a.jsx)(l.$,{onClick:J,className:"w-full bg-blue-600 hover:bg-blue-700 text-white",children:"Cr\xe9er le groupe"})]})]})]}),(0,a.jsxs)(i.XI,{className:"bg-white border border-gray-300 rounded-md",children:[(0,a.jsx)(i.A0,{className:"bg-gray-50",children:(0,a.jsxs)(i.Hj,{children:[(0,a.jsx)(i.nd,{className:"text-gray-900",children:"Nom"}),(0,a.jsx)(i.nd,{className:"text-gray-900",children:"Chemin"}),(0,a.jsx)(i.nd,{className:"text-gray-900",children:"Membres"}),(0,a.jsx)(i.nd,{className:"text-right text-gray-900",children:"Actions"})]})}),(0,a.jsx)(i.BF,{children:r.filter(e=>e.name.toLowerCase().includes(N.toLowerCase())||e.path.toLowerCase().includes(N.toLowerCase())).map(e=>(0,a.jsxs)(i.Hj,{className:"hover:bg-gray-50 border-t border-gray-200",children:[(0,a.jsx)(i.nA,{className:"text-gray-900 font-medium",children:e.name}),(0,a.jsx)(i.nA,{className:"text-gray-900",children:e.path}),(0,a.jsx)(i.nA,{className:"text-gray-900",children:e.membersCount}),(0,a.jsx)(i.nA,{className:"text-right",children:(0,a.jsxs)(x.rI,{children:[(0,a.jsx)(x.ty,{asChild:!0,children:(0,a.jsxs)(l.$,{variant:"ghost",className:"h-8 w-8 p-0",children:[(0,a.jsx)("span",{className:"sr-only",children:"Open menu"}),(0,a.jsx)(n.A,{className:"h-4 w-4"})]})}),(0,a.jsxs)(x.SQ,{align:"end",className:"bg-white border border-gray-300",children:[(0,a.jsx)(x.lp,{className:"text-gray-900",children:"Actions"}),(0,a.jsxs)(x._2,{onClick:()=>P(e.id),className:"text-gray-900 hover:bg-gray-100",children:[(0,a.jsx)(d.A,{className:"mr-2 h-4 w-4"}),"Modifier"]}),(0,a.jsxs)(x._2,{onClick:()=>H(e.id),className:"text-gray-900 hover:bg-gray-100",children:[(0,a.jsx)(m.A,{className:"mr-2 h-4 w-4"}),"G\xe9rer les membres"]}),(0,a.jsx)(x.mB,{}),(0,a.jsxs)(x._2,{onClick:()=>z(e.id),className:"text-red-600 hover:bg-red-50 hover:text-red-700",children:[(0,a.jsx)(u.A,{className:"mr-2 h-4 w-4"}),"Supprimer"]})]})]})})]},e.id))})]}),(0,a.jsxs)(y,{open:k,onOpenChange:A,onAfterClose:I,className:"bg-white text-black border border-gray-300",children:[(0,a.jsx)(h.c7,{children:(0,a.jsx)(h.L3,{className:"text-gray-900",children:"Modifier le groupe"})}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(g.J,{htmlFor:"modifiedGroupName",className:"text-gray-900",children:"Nom du groupe"}),(0,a.jsx)(o.p,{id:"modifiedGroupName",value:M,onChange:e=>R(e.target.value),className:"bg-white text-gray-900 border-gray-300",autoFocus:!0})]}),(0,a.jsx)(l.$,{onClick:q,className:"w-full bg-blue-600 hover:bg-blue-700 text-white",children:"Mettre \xe0 jour"})]})]}),(0,a.jsxs)(y,{open:$,onOpenChange:O,onAfterClose:Q,className:"sm:max-w-[600px] max-h-[90vh] overflow-y-auto bg-white text-black border border-gray-300",children:[(0,a.jsx)(h.c7,{children:(0,a.jsxs)(h.L3,{className:"text-gray-900",children:["G\xe9rer les membres - ",L?.name]})}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-medium mb-2 text-gray-900",children:"Membres actuels"}),0===T.length?(0,a.jsx)("p",{className:"text-gray-600",children:"Ce groupe n'a pas de membres."}):(0,a.jsx)("div",{className:"space-y-2",children:T.map(e=>(0,a.jsxs)("div",{className:"flex items-center justify-between p-2 bg-gray-50 rounded-md border border-gray-200",children:[(0,a.jsxs)("div",{className:"text-gray-900",children:[(0,a.jsx)("div",{className:"font-medium",children:e.username}),(0,a.jsxs)("div",{className:"text-sm text-gray-600",children:[e.firstName," ",e.lastName," (",e.email,")"]})]}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>B(e.id),className:"text-red-600 hover:bg-red-50 hover:text-red-700 border-red-200",children:(0,a.jsx)(u.A,{className:"h-4 w-4"})})]},e.id))})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-medium mb-2 text-gray-900",children:"Ajouter des membres"}),(0,a.jsx)(o.p,{type:"text",placeholder:"Rechercher un utilisateur...",value:N,onChange:e=>v(e.target.value),className:"mb-2 bg-white text-gray-900 border-gray-300"}),(0,a.jsx)("div",{className:"space-y-2 max-h-[250px] overflow-y-auto",children:G.filter(e=>!T.some(r=>r.id===e.id)&&(e.username.toLowerCase().includes(N.toLowerCase())||e.email.toLowerCase().includes(N.toLowerCase())||e.firstName.toLowerCase().includes(N.toLowerCase())||e.lastName.toLowerCase().includes(N.toLowerCase()))).map(e=>(0,a.jsxs)("div",{className:"flex items-center justify-between p-2 bg-gray-50 rounded-md border border-gray-200",children:[(0,a.jsxs)("div",{className:"text-gray-900",children:[(0,a.jsx)("div",{className:"font-medium",children:e.username}),(0,a.jsxs)("div",{className:"text-sm text-gray-600",children:[e.firstName," ",e.lastName," (",e.email,")"]})]}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>_(e.id),className:"text-green-600 hover:bg-green-50 hover:text-green-700 border-green-200",children:(0,a.jsx)(c.A,{className:"h-4 w-4"})})]},e.id))})]})]})]})]})}},41312:(e,r,s)=>{s.d(r,{A:()=>a});let a=(0,s(62688).A)("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]])},96474:(e,r,s)=>{s.d(r,{A:()=>a});let a=(0,s(62688).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])}};