2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
import{a as H}from"./chunk-KETFPI33.js";import{b as k,c as F,d as N,e as P,f as W,g as O,h as j,i as A,k as L,l as q,n as U,o as z,p as B,s as R,t as G}from"./chunk-UDFQV3WY.js";import"./chunk-MBEC6LK4.js";import{Ba as C,Bb as M,Eb as a,Fa as r,Fb as g,Jb as _,Kb as h,Lb as v,M as E,R as p,S as u,Ta as D,Ya as b,ca as x,jb as c,kb as n,lb as i,mb as y,qb as w,qc as V,rb as f,rc as I,sb as m,xc as T}from"./chunk-TVKQFRWX.js";import{a as S}from"./chunk-DAQOROHW.js";function K(o,l){if(o&1&&(n(0,"div",11),a(1),i()),o&2){let e=m();r(),g(e.message())}}function Q(o,l){if(o&1&&(n(0,"div",12),a(1),i()),o&2){let e=m();r(),g(e.error())}}function X(o,l){o&1&&(n(0,"div",13),a(1,"Chargement\u2026"),i())}function Y(o,l){if(o&1&&(n(0,"p",27),a(1),i()),o&2){let e=m().$implicit;r(),g(e.phone)}}function Z(o,l){if(o&1){let e=w();n(0,"article",16),y(1,"img",17),n(2,"div",18)(3,"p",19),a(4),i(),n(5,"h2",20),a(6),i(),n(7,"a",21),a(8),i(),b(9,Y,2,1,"p",22),n(10,"span",23),a(11),i()(),n(12,"div",24)(13,"button",25),f("click",function(){let t=p(e).$implicit,d=m(2);return u(d.edit(t))}),a(14,"Modifier"),i(),n(15,"button",26),f("click",function(){let t=p(e).$implicit,d=m(2);return u(d.remove(t))}),a(16,"Supprimer"),i()()()}if(o&2){let e=l.$implicit,s=m(2);r(),c("src",s.service.photoUrl(e.photoUrl),C)("alt",e.name),r(3),g(e.department),r(2),g(e.name),r(),c("href","mailto:"+e.email,C),r(),g(e.email),r(),c("ngIf",e.phone),r(),M("bg-emerald-50",e.active)("text-emerald-700",e.active)("bg-slate-100",!e.active),r(),g(e.active?"Visible":"Masqu\xE9")}}function $(o,l){if(o&1&&(n(0,"div",14),b(1,Z,17,14,"article",15),i()),o&2){let e=m();r(),c("ngForOf",e.contacts())}}function ee(o,l){if(o&1&&y(0,"img",53),o&2){let e=m(2);c("src",e.preview(),C)}}function te(o,l){o&1&&(n(0,"span",54),a(1,"Aucune photo"),i())}function ne(o,l){if(o&1&&(n(0,"option",55),a(1),i()),o&2){let e=l.$implicit;c("value",e),r(),g(e)}}function ie(o,l){if(o&1){let e=w();n(0,"div",28),f("click",function(){p(e);let t=m();return u(t.showForm.set(!1))}),n(1,"form",29),f("ngSubmit",function(){p(e);let t=m();return u(t.save())})("click",function(t){return p(e),u(t.stopPropagation())}),n(2,"div",30)(3,"h2",31),a(4),i()(),n(5,"div",32)(6,"div")(7,"div",33),b(8,ee,1,1,"img",34)(9,te,2,0,"span",35),i(),n(10,"input",36),f("change",function(t){p(e);let d=m();return u(d.choosePhoto(t))}),i()(),n(11,"div",37)(12,"label",38)(13,"span",39),a(14,"D\xE9partement *"),i(),n(15,"select",40),v("ngModelChange",function(t){p(e);let d=m();return h(d.form.department,t)||(d.form.department=t),u(t)}),b(16,ne,2,2,"option",41),i()(),n(17,"label",38)(18,"span",39),a(19,"Nom et pr\xE9nom(s) *"),i(),n(20,"input",42),v("ngModelChange",function(t){p(e);let d=m();return h(d.form.name,t)||(d.form.name=t),u(t)}),i()(),n(21,"label",38)(22,"span",39),a(23,"Adresse \xE9lectronique *"),i(),n(24,"input",43),v("ngModelChange",function(t){p(e);let d=m();return h(d.form.email,t)||(d.form.email=t),u(t)}),i()(),n(25,"label",38)(26,"span",39),a(27,"T\xE9l\xE9phone"),i(),n(28,"input",44),v("ngModelChange",function(t){p(e);let d=m();return h(d.form.phone,t)||(d.form.phone=t),u(t)}),i()(),n(29,"div",45)(30,"label")(31,"span",39),a(32,"Ordre"),i(),n(33,"input",46),v("ngModelChange",function(t){p(e);let d=m();return h(d.form.displayOrder,t)||(d.form.displayOrder=t),u(t)}),i()(),n(34,"label",47)(35,"input",48),v("ngModelChange",function(t){p(e);let d=m();return h(d.form.active,t)||(d.form.active=t),u(t)}),i(),n(36,"span",49),a(37,"Afficher"),i()()()()(),n(38,"div",50)(39,"button",51),f("click",function(){p(e);let t=m();return u(t.showForm.set(!1))}),a(40,"Annuler"),i(),n(41,"button",52),a(42),i()()()()}if(o&2){let e=m();r(4),g(e.form.id?"Modifier le contact":"Ajouter un chef de d\xE9partement"),r(4),c("ngIf",e.preview()),r(),c("ngIf",!e.preview()),r(6),_("ngModel",e.form.department),r(),c("ngForOf",e.departments),r(4),_("ngModel",e.form.name),r(4),_("ngModel",e.form.email),r(4),_("ngModel",e.form.phone),r(5),_("ngModel",e.form.displayOrder),r(2),_("ngModel",e.form.active),r(6),c("disabled",e.saving()),r(),g(e.saving()?"Enregistrement\u2026":"Enregistrer")}}var J=class o{service=E(H);contacts=x([]);loading=x(!0);saving=x(!1);showForm=x(!1);message=x("");error=x("");preview=x("");departments=["D\xE9partement syst\xE8me d\u2019information","D\xE9partement des op\xE9rations","D\xE9partement de la communication et du plaidoyer"];selectedPhoto;form=this.emptyForm();ngOnInit(){this.load()}load(){this.loading.set(!0),this.service.getAll().subscribe({next:l=>{this.contacts.set(l),this.loading.set(!1)},error:()=>{this.error.set("Impossible de charger les contacts."),this.loading.set(!1)}})}add(){this.form=this.emptyForm(),this.preview.set(""),this.selectedPhoto=void 0,this.showForm.set(!0)}edit(l){this.form=S({},l),this.preview.set(this.service.photoUrl(l.photoUrl)),this.selectedPhoto=void 0,this.showForm.set(!0)}choosePhoto(l){let e=l.target.files?.[0];if(!e)return;this.selectedPhoto=e;let s=new FileReader;s.onload=()=>this.preview.set(String(s.result)),s.readAsDataURL(e)}save(){this.error.set(""),this.message.set(""),this.saving.set(!0),(this.form.id?this.service.update(this.form,this.selectedPhoto):this.service.create(this.form,this.selectedPhoto)).subscribe({next:()=>{this.message.set("Le contact a \xE9t\xE9 enregistr\xE9."),this.saving.set(!1),this.showForm.set(!1),this.load()},error:e=>{this.error.set(e.error?.message||"La sauvegarde a \xE9chou\xE9."),this.saving.set(!1)}})}remove(l){!l.id||!confirm(`Supprimer le contact de ${l.name} ?`)||this.service.delete(l.id).subscribe({next:()=>this.load(),error:()=>this.error.set("La suppression a \xE9chou\xE9.")})}emptyForm(){return{department:this.departments[0],name:"",email:"",phone:"",displayOrder:this.contacts().length+1,active:!0}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=D({type:o,selectors:[["app-department-contacts"]],decls:16,vars:5,consts:[[1,"mx-auto","max-w-6xl"],[1,"mb-7","flex","flex-wrap","items-end","justify-between","gap-4"],[1,"text-xs","font-bold","uppercase","tracking-[.18em]","text-primary-700"],[1,"mt-2","text-3xl","font-bold"],[1,"mt-2","text-slate-600"],["type","button",1,"rounded-xl","bg-primary-700","px-5","py-3","font-bold","text-white",3,"click"],["class","mb-5 rounded-xl bg-emerald-50 p-4 text-emerald-800",4,"ngIf"],["class","mb-5 rounded-xl bg-red-50 p-4 text-red-700",4,"ngIf"],["class","rounded-2xl bg-white p-10 text-center text-slate-500",4,"ngIf"],["class","grid gap-5 lg:grid-cols-3",4,"ngIf"],["class","fixed inset-0 z-[100] flex items-center justify-center overflow-y-auto bg-slate-950/65 p-4",3,"click",4,"ngIf"],[1,"mb-5","rounded-xl","bg-emerald-50","p-4","text-emerald-800"],[1,"mb-5","rounded-xl","bg-red-50","p-4","text-red-700"],[1,"rounded-2xl","bg-white","p-10","text-center","text-slate-500"],[1,"grid","gap-5","lg:grid-cols-3"],["class","overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-sm",4,"ngFor","ngForOf"],[1,"overflow-hidden","rounded-2xl","border","border-slate-200","bg-white","shadow-sm"],[1,"h-56","w-full","bg-slate-100","object-cover","object-top",3,"src","alt"],[1,"p-5"],[1,"text-xs","font-bold","uppercase","tracking-wide","text-primary-700"],[1,"mt-2","text-xl","font-bold"],[1,"mt-3","block","text-sm","text-primary-700",3,"href"],["class","mt-1 text-sm text-slate-600",4,"ngIf"],[1,"mt-3","inline-flex","rounded-full","px-3","py-1","text-xs","font-bold"],[1,"flex","gap-2","border-t","border-slate-100","p-4"],["type","button",1,"flex-1","rounded-lg","border","border-primary-200","px-3","py-2","font-semibold","text-primary-700",3,"click"],["type","button",1,"rounded-lg","border","border-red-200","px-3","py-2","font-semibold","text-red-700",3,"click"],[1,"mt-1","text-sm","text-slate-600"],[1,"fixed","inset-0","z-[100]","flex","items-center","justify-center","overflow-y-auto","bg-slate-950/65","p-4",3,"click"],[1,"my-8","w-full","max-w-3xl","rounded-2xl","bg-white","shadow-2xl",3,"ngSubmit","click"],[1,"border-b","border-slate-200","p-6"],[1,"text-2xl","font-bold"],[1,"grid","gap-6","p-6","md:grid-cols-[220px_minmax(0,1fr)]"],[1,"flex","h-56","items-center","justify-center","overflow-hidden","rounded-2xl","bg-slate-100"],["alt","Aper\xE7u","class","h-full w-full object-cover object-top",3,"src",4,"ngIf"],["class","text-sm text-slate-400",4,"ngIf"],["type","file","accept","image/*",1,"mt-3","w-full","text-sm",3,"change"],[1,"space-y-4"],[1,"block"],[1,"text-sm","font-bold"],["name","department","required","",1,"mt-2","w-full","rounded-xl","border","border-slate-300","px-4","py-3",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["name","name","required","","maxlength","150",1,"mt-2","w-full","rounded-xl","border","border-slate-300","px-4","py-3",3,"ngModelChange","ngModel"],["name","email","type","email","required","",1,"mt-2","w-full","rounded-xl","border","border-slate-300","px-4","py-3",3,"ngModelChange","ngModel"],["name","phone",1,"mt-2","w-full","rounded-xl","border","border-slate-300","px-4","py-3",3,"ngModelChange","ngModel"],[1,"grid","grid-cols-2","gap-4"],["name","order","type","number","min","0",1,"mt-2","w-full","rounded-xl","border","border-slate-300","px-4","py-3",3,"ngModelChange","ngModel"],[1,"flex","items-center","gap-3","pt-8"],["name","active","type","checkbox",1,"h-5","w-5",3,"ngModelChange","ngModel"],[1,"font-semibold"],[1,"flex","justify-end","gap-3","border-t","border-slate-200","p-5"],["type","button",1,"rounded-xl","border","border-slate-300","px-5","py-3","font-bold",3,"click"],["type","submit",1,"rounded-xl","bg-primary-700","px-5","py-3","font-bold","text-white",3,"disabled"],["alt","Aper\xE7u",1,"h-full","w-full","object-cover","object-top",3,"src"],[1,"text-sm","text-slate-400"],[3,"value"]],template:function(e,s){e&1&&(n(0,"div",0)(1,"div",1)(2,"div")(3,"p",2),a(4,"Page Contact"),i(),n(5,"h1",3),a(6,"Chefs de d\xE9partement"),i(),n(7,"p",4),a(8,"G\xE9rez les photos et coordonn\xE9es affich\xE9es sur le site public."),i()(),n(9,"button",5),f("click",function(){return s.add()}),a(10,"+ Ajouter un contact"),i()(),b(11,K,2,1,"div",6)(12,Q,2,1,"div",7)(13,X,2,0,"div",8)(14,$,2,1,"div",9)(15,ie,43,12,"div",10),i()),e&2&&(r(11),c("ngIf",s.message()),r(),c("ngIf",s.error()),r(),c("ngIf",s.loading()),r(),c("ngIf",!s.loading()),r(),c("ngIf",s.showForm()))},dependencies:[T,V,I,G,j,q,U,F,A,k,L,N,P,B,R,z,O,W],encapsulation:2})};export{J as DepartmentContactsComponent};
|