2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{a as Y}from"./chunk-CQKJN64S.js";import{c as R,d as W,e as $,f as J,g as K,h as Q,p as U,t as X}from"./chunk-UDFQV3WY.js";import"./chunk-MBEC6LK4.js";import{Eb as l,Fa as s,Fb as w,Gb as y,Jb as I,Kb as B,Lb as z,Oa as D,Ob as S,R as u,Rb as A,S as g,T as v,Ta as E,U as P,Ya as C,ca as p,db as h,fb as x,hb as T,ib as N,jb as c,kb as i,lb as n,mb as _,nb as V,ob as F,pc as G,qb as b,qc as L,rb as m,rc as H,sb as d,sc as O,xc as q,zb as j}from"./chunk-TVKQFRWX.js";import{a as M,b as k}from"./chunk-DAQOROHW.js";var ee=()=>[],te=()=>({"background-color":"#00843B","border-color":"#00843B"}),ie=()=>({}),ne=(o,e,t)=>({"bg-green-50 border-green-500 text-green-700":o,"bg-red-50 border-red-500 text-red-700":e,"bg-blue-50 border-blue-500 text-blue-700":t}),oe=(o,e)=>e.id;function re(o,e){if(o&1){let t=b();i(0,"tr",16)(1,"td",23)(2,"p",24),l(3),n()(),i(4,"td",25)(5,"div",26)(6,"button",27),m("click",function(){let a=u(t).$implicit,f=d();return g(f.editProject(a))}),v(),i(7,"svg",28),_(8,"path",29),n()(),P(),i(9,"button",30),m("click",function(){let a=u(t).$implicit,f=d();return g(f.deleteProject(a))}),v(),i(10,"svg",31),_(11,"path",32),n()()()()()}if(o&2){let t=e.$implicit;s(3),w(t.nom)}}function ae(o,e){if(o&1){let t=b();V(0),i(1,"button",33),m("click",function(){let a=u(t).index,f=d();return g(f.currentPage.set(a+1))}),l(2),n(),F()}if(o&2){let t=e.index,r=d();s(),c("ngClass",r.currentPage()===t+1?"px-3 py-1 border rounded text-white":"px-3 py-1 border border-gray-300 rounded hover:bg-gray-100 transition-colors")("ngStyle",r.currentPage()===t+1?S(3,te):S(4,ie)),s(),y(" ",t+1," ")}}function se(o,e){o&1&&(i(0,"p",46),l(1," Le nom est obligatoire. "),n())}function le(o,e){o&1&&_(0,"div",45)}function de(o,e){if(o&1){let t=b();i(0,"div",20)(1,"div",34)(2,"div",35)(3,"h2",36),l(4),n()(),i(5,"form",37,0),m("ngSubmit",function(){u(t);let a=d();return g(a.saveProject())}),i(7,"div")(8,"label",38),l(9,"Nom "),i(10,"span",39),l(11,"*"),n()(),i(12,"input",40,1),z("ngModelChange",function(a){u(t);let f=d();return B(f.form.nom,a)||(f.form.nom=a),g(a)}),n(),C(14,se,2,0,"p",41),n(),i(15,"div",42)(16,"button",43),m("click",function(){u(t);let a=d();return g(a.closeModal())}),l(17," Annuler "),n(),i(18,"button",44),h(19,le,1,0,"div",45),l(20),n()()()()()}if(o&2){let t=j(6),r=j(13),a=d();s(4),y(" ",a.editingProject()?"Modifier le projet":"Nouveau projet"," "),s(8),I("ngModel",a.form.nom),s(2),c("ngIf",r.invalid&&t.submitted),s(4),c("disabled",a.saving()),s(),x(a.saving()?19:-1),s(),y(" ",a.editingProject()?"Mettre \xE0 jour":"Enr\xE9gistrer"," ")}}function ce(o,e){o&1&&(v(),i(0,"svg",50),_(1,"path",51),n())}function me(o,e){o&1&&(v(),i(0,"svg",50),_(1,"path",52),n())}function pe(o,e){o&1&&(v(),i(0,"svg",50),_(1,"path",53),n())}function ue(o,e){if(o&1&&(i(0,"div",21)(1,"div",47),C(2,ce,2,0,"svg",48)(3,me,2,0,"svg",48)(4,pe,2,0,"svg",48),i(5,"span",49),l(6),n()()()),o&2){let t=d();s(),c("ngClass",A(5,ne,t.notification().type==="success",t.notification().type==="error",t.notification().type==="info")),s(),c("ngIf",t.notification().type==="success"),s(),c("ngIf",t.notification().type==="error"),s(),c("ngIf",t.notification().type==="info"),s(2),w(t.notification().message)}}function ge(o,e){if(o&1){let t=b();i(0,"div",22)(1,"div",54)(2,"h3",55),l(3,"Confirmation"),n(),i(4,"p",56),l(5),n(),i(6,"div",57)(7,"button",58),m("click",function(){u(t);let a=d();return g(a.closeConfirmModal())}),l(8," Annuler "),n(),i(9,"button",59),m("click",function(){u(t);let a=d();return g(a.confirmModal().onConfirm())}),l(10," Supprimer "),n()()()()}if(o&2){let t=d();s(5),w(t.confirmModal().message)}}var Z=class o{constructor(e){this.apiService=e}notification=p({show:!1,message:"",type:"success"});projects=p([]);loading=p(!0);showModal=p(!1);editingProject=p(null);saving=p(!1);currentPage=p(1);pageSize=7;totalPages=p(1);form={nom:""};ngOnInit(){this.loadProjects()}loadProjects(){this.loading.set(!0),this.apiService.getAllTypes().subscribe({next:e=>{console.log("RESPONSE =",e),this.projects.set(e.data.content),console.log("PROJECTS =",this.projects()),this.totalPages.set(Math.ceil(e.data.content.length/this.pageSize)),this.currentPage.set(1),this.loading.set(!1)},error:e=>{console.error("Erreur API",e),this.loading.set(!1)}})}paginatedProjects(){let e=this.projects(),t=(this.currentPage()-1)*this.pageSize;return e.slice(t,t+this.pageSize)}nextPage(){this.currentPage()<this.totalPages()&&this.currentPage.update(e=>e+1)}prevPage(){this.currentPage()>1&&this.currentPage.update(e=>e-1)}openModal(){this.form={nom:""},this.editingProject.set(null),this.showModal.set(!0)}closeModal(){this.showModal.set(!1),this.editingProject.set(null)}editProject(e){this.form={nom:e.nom},this.editingProject.set(e),this.showModal.set(!0)}saveProject(){if(!this.form.nom)return;this.saving.set(!0);let e=this.editingProject();(e?this.apiService.updateTypes(e.id,this.form):this.apiService.createTypes(this.form)).subscribe({next:r=>{console.log("API response =",r),this.loadProjects(),this.closeModal(),this.saving.set(!1),this.showNotification(e?"Type Document mis \xE0 jour avec succ\xE8s":"Type Document cr\xE9\xE9 avec succ\xE8s","success")},error:r=>{console.error("Erreur lors de la sauvegarde",r),this.saving.set(!1),this.showNotification("Erreur lors de la sauvegarde","error")}})}showNotification(e,t="success",r=2e3){this.notification.set({show:!0,message:e,type:t}),setTimeout(()=>this.notification.update(a=>k(M({},a),{show:!1})),r)}confirmModal=p({show:!1,message:"",onConfirm:()=>{}});openConfirmModal(e,t){this.confirmModal.set({show:!0,message:e,onConfirm:t})}closeConfirmModal(){this.confirmModal.update(e=>k(M({},e),{show:!1}))}deleteProject(e){console.log("fvfv"),this.openConfirmModal(`Voulez-vous vraiment supprimer ce type de document "${e.nom}" ?`,()=>{this.apiService.deleteTypes(e.id).subscribe({next:()=>{this.loadProjects(),this.closeConfirmModal(),this.showNotification("Projet supprim\xE9 avec succ\xE8s","success")},error:()=>{this.showNotification("Erreur lors de la suppression","error"),this.closeConfirmModal()}})})}static \u0275fac=function(t){return new(t||o)(D(Y))};static \u0275cmp=E({type:o,selectors:[["app-domains"]],decls:32,vars:7,consts:[["projectForm","ngForm"],["nameField","ngModel"],[1,"space-y-6"],[1,"flex","flex-col","sm:flex-row","sm:items-center","sm:justify-between","gap-4"],[1,"text-2xl","font-bold","text-neutral-900"],[1,"text-neutral-500"],[1,"btn-primary",2,"background-color","#00843B",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","mr-2"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 6v6m0 0v6m0-6h6m-6 0H6"],[1,"card","p-0","shadow-lg","rounded-lg","overflow-hidden"],[1,"table-container"],[1,"w-full","table-auto"],[1,"bg-gray-50"],[1,"px-6","py-3","text-left"],[1,"px-6","py-3","text-right","whitespace-nowrap"],[1,"bg-white","divide-y","divide-gray-200"],[1,"hover:bg-gray-50","transition"],[1,"flex","justify-end","items-center","mt-2","px-6","py-2","gap-2","border-t","border-gray-200","bg-gray-50","rounded-b-lg"],[1,"px-3","py-1","border","border-gray-300","rounded","hover:bg-gray-100","disabled:opacity-50","transition-colors",3,"click","disabled"],[4,"ngFor","ngForOf"],[1,"fixed","inset-0","bg-black/50","flex","items-center","justify-center","z-50","p-4"],[1,"fixed","top-4","right-4","z-50","pointer-events-none"],[1,"fixed","inset-0","bg-black/30","flex","items-center","justify-center","z-50","p-4"],[1,"px-6","py-4"],[1,"font-semibold","text-gray-900","truncate"],[1,"px-6","py-4","text-right","whitespace-nowrap"],[1,"flex","justify-end","gap-2"],["title","Modifier",1,"p-2","border-2","border-green-500","rounded-full","bg-white","hover:bg-green-50","transition",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-green-500"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],["title","Supprimer",1,"p-2","border-2","border-red-500","rounded-full","bg-white","hover:bg-red-50","transition",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-red-500"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],[3,"click","ngClass","ngStyle"],[1,"bg-white","rounded-2xl","shadow-xl","w-full","max-w-2xl","max-h-[90vh]","overflow-y-auto"],[1,"p-6","border-b","border-neutral-200"],[1,"text-xl","font-semibold","text-neutral-900"],[1,"p-6","space-y-5",3,"ngSubmit"],[1,"label"],[1,"text-danger-500"],["type","text","name","nom","required","",1,"input",3,"ngModelChange","ngModel"],["class","text-sm text-red-500 mt-1",4,"ngIf"],[1,"flex","justify-end","gap-3","pt-4","border-t","border-gray-200"],["type","button",1,"px-4","py-2","rounded-lg","border","border-red-500","text-red-500","hover:bg-red-50","transition-colors","font-medium",3,"click"],["type","submit",1,"px-4","py-2","rounded-lg","bg-[#00843B]","text-white","hover:bg-[#006830]","transition-colors","font-medium","flex","items-center","justify-center","gap-2",3,"disabled"],[1,"spinner","w-4","h-4","border-2","border-t-white","border-gray-200","rounded-full","animate-spin"],[1,"text-sm","text-red-500","mt-1"],[1,"pointer-events-auto","border-l-4","rounded-lg","shadow-lg","p-6","max-w-sm","w-full","flex","items-center","gap-4","animate-fade-in",3,"ngClass"],["class","w-6 h-6 flex-shrink-0","fill","none","stroke","currentColor","viewBox","0 0 24 24",4,"ngIf"],[1,"text-sm","font-medium"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-6","h-6","flex-shrink-0"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M5 13l4 4L19 7"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M6 18L18 6M6 6l12 12"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M13 16h-1v-4h-1m1-4h.01M12 20a8 8 0 100-16 8 8 0 000 16z"],[1,"bg-white","rounded-2xl","shadow-xl","w-full","max-w-md","p-6","space-y-4"],[1,"text-lg","font-semibold","text-neutral-900"],[1,"text-neutral-700"],[1,"flex","justify-end","gap-3","mt-4"],[1,"px-4","py-2","rounded-lg","border","border-gray-300","text-gray-700","hover:bg-gray-100","transition-colors","font-medium",3,"click"],[1,"px-4","py-2","rounded-lg","bg-red-600","text-white","hover:bg-red-700","transition-colors","font-medium",3,"click"]],template:function(t,r){t&1&&(i(0,"div",2)(1,"div",3)(2,"div")(3,"h1",4),l(4,"Domaines"),n(),i(5,"p",5),l(6,"G\xE9rez les domaines d'intervention des structures rattach\xE9es"),n()(),i(7,"button",6),m("click",function(){return r.openModal()}),v(),i(8,"svg",7),_(9,"path",8),n(),l(10," Nouveau "),n()(),P(),i(11,"div",9)(12,"div",10)(13,"table",11)(14,"thead")(15,"tr",12)(16,"th",13),l(17,"Nom"),n(),i(18,"th",14),l(19,"Actions"),n()()(),i(20,"tbody",15),T(21,re,12,1,"tr",16,oe),n()(),i(23,"div",17)(24,"button",18),m("click",function(){return r.prevPage()}),l(25," \xAB Pr\xE9c\xE9dent "),n(),C(26,ae,3,5,"ng-container",19),i(27,"button",18),m("click",function(){return r.nextPage()}),l(28," Suivant \xBB "),n()()(),h(29,de,21,6,"div",20),n(),h(30,ue,7,9,"div",21),h(31,ge,11,1,"div",22),n()),t&2&&(s(21),N(r.paginatedProjects()),s(3),c("disabled",r.currentPage()===1),s(2),c("ngForOf",S(6,ee).constructor(r.totalPages())),s(),c("disabled",r.currentPage()===r.totalPages()),s(2),x(r.showModal()?29:-1),s(),x(r.notification().show?30:-1),s(),x(r.confirmModal().show?31:-1))},dependencies:[q,G,L,H,O,X,Q,R,W,$,U,K,J],encapsulation:2})};export{Z as DomainsComponent};
|