Files
rsu-new-site/frontend/chunk-6JLK4LP5.js

2 lines
12 KiB
JavaScript

import{a as k}from"./chunk-SMVD5LRJ.js";import{a as J}from"./chunk-N7V66YMR.js";import{b as U,c as j,d as A,e as B,f as L,g as z,h as O,p as q,s as H,t as G}from"./chunk-UDFQV3WY.js";import"./chunk-ZEULGWAI.js";import{a as N}from"./chunk-MBEC6LK4.js";import{Ba as w,Eb as l,Fa as a,Fb as _,Hb as P,Jb as C,Kb as h,Lb as b,M as y,R as c,S as p,Ta as F,ca as f,db as u,fb as x,hb as V,ib as D,jb as v,kb as r,lb as i,mb as I,pc as R,qb as S,rb as g,sb as m,xc as W,zb as E}from"./chunk-TVKQFRWX.js";import{a as M,b as T}from"./chunk-DAQOROHW.js";var Q=(o,t)=>t.id;function X(o,t){if(o&1&&(r(0,"div",6),l(1),i()),o&2){let e=t;v("ngClass",e.type==="success"?"border-green-200 bg-green-50 text-green-800":"border-red-200 bg-red-50 text-red-700"),a(),_(e.text)}}function Y(o,t){o&1&&(r(0,"div",8),l(1,"Chargement des sessions\u2026"),i())}function Z(o,t){o&1&&(r(0,"div",9)(1,"p",12),l(2,"Aucune session enregistr\xE9e."),i(),r(3,"p",13),l(4,"Ajoutez la premi\xE8re session du COS-RSU."),i()())}function $(o,t){if(o&1&&I(0,"img",16),o&2){let e=m().$implicit,d=m(2);v("src",d.assetUrl(e.featuredImage),w)("alt",e.title)}}function ee(o,t){o&1&&(r(0,"div",17),l(1,"Sans photo"),i())}function te(o,t){if(o&1&&(r(0,"a",25),l(1,"Voir le compte rendu PDF"),i()),o&2){let e=m().$implicit,d=m(2);v("href",d.assetUrl(e.reportFileUrl),w)}}function ie(o,t){if(o&1){let e=S();r(0,"button",29),g("click",function(){c(e);let s=m().$implicit,n=m(2);return p(n.remove(s))}),l(1,"Supprimer"),i()}}function ne(o,t){if(o&1){let e=S();r(0,"article",14)(1,"div",15),u(2,$,1,2,"img",16)(3,ee,2,0,"div",17),i(),r(4,"div",18)(5,"div",19)(6,"h2",20),l(7),i(),r(8,"span",21),l(9),i()(),r(10,"p",22),l(11),i(),r(12,"p",23),l(13),i(),r(14,"p",24),l(15),i(),u(16,te,2,1,"a",25),i(),r(17,"div",26)(18,"button",27),g("click",function(){let s=c(e).$implicit,n=m(2);return p(n.openEdit(s))}),l(19,"Modifier"),i(),u(20,ie,2,0,"button",28),i()()}if(o&2){let e=t.$implicit,d=m(2);a(2),x(e.featuredImage?2:3),a(5),_(e.title),a(),v("ngClass",e.published?"bg-green-100 text-green-800":"bg-slate-100 text-slate-600"),a(),_(e.published?"Publi\xE9e":"Brouillon"),a(2),_(d.formatDate(e.sessionDate)),a(2),_(e.summary),a(2),P("Cr\xE9\xE9e par ",e.createdByName||"Utilisateur"," \xB7 Derni\xE8re modification ",d.formatDateTime(e.updatedAt)),a(),x(e.reportFileUrl?16:-1),a(4),x(d.authService.isAdmin()?20:-1)}}function oe(o,t){if(o&1&&(r(0,"div",10),V(1,ne,21,10,"article",14,Q),i()),o&2){let e=m();a(),D(e.sessions())}}function se(o,t){if(o&1&&(r(0,"p",40),l(1),i()),o&2){let e=m(2);a(),_(e.selectedPhoto.name)}}function re(o,t){if(o&1){let e=S();r(0,"label",41)(1,"input",50),b("ngModelChange",function(s){c(e);let n=m(2);return h(n.form.removeFeaturedImage,s)||(n.form.removeFeaturedImage=s),p(s)}),i(),l(2," Supprimer la photo actuelle"),i()}if(o&2){let e=m(2);a(),C("ngModel",e.form.removeFeaturedImage)}}function le(o,t){if(o&1&&(r(0,"p",40),l(1),i()),o&2){let e=m(2);a(),_(e.selectedReport.name)}}function ae(o,t){if(o&1){let e=S();r(0,"label",41)(1,"input",51),b("ngModelChange",function(s){c(e);let n=m(2);return h(n.form.removeReport,s)||(n.form.removeReport=s),p(s)}),i(),l(2," Supprimer le compte rendu actuel"),i()}if(o&2){let e=m(2);a(),C("ngModel",e.form.removeReport)}}function de(o,t){if(o&1){let e=S();r(0,"div",11)(1,"div",30)(2,"div",31)(3,"h2",32),l(4),i()(),r(5,"form",33,0),g("ngSubmit",function(){c(e);let s=E(6),n=m();return p(n.save(s))}),r(7,"div")(8,"label",34),l(9,"Titre de la session *"),i(),r(10,"input",35),b("ngModelChange",function(s){c(e);let n=m();return h(n.form.title,s)||(n.form.title=s),p(s)}),i()(),r(11,"div")(12,"label",34),l(13,"Date de la session *"),i(),r(14,"input",36),b("ngModelChange",function(s){c(e);let n=m();return h(n.form.sessionDate,s)||(n.form.sessionDate=s),p(s)}),i()(),r(15,"div")(16,"label",34),l(17,"R\xE9sum\xE9 *"),i(),r(18,"textarea",37),b("ngModelChange",function(s){c(e);let n=m();return h(n.form.summary,s)||(n.form.summary=s),p(s)}),i()(),r(19,"div",38)(20,"div")(21,"label",34),l(22,"Photo principale"),i(),r(23,"input",39),g("change",function(s){c(e);let n=m();return p(n.selectPhoto(s))}),i(),u(24,se,2,1,"p",40),u(25,re,3,1,"label",41),i(),r(26,"div")(27,"label",34),l(28,"Compte rendu (PDF)"),i(),r(29,"input",42),g("change",function(s){c(e);let n=m();return p(n.selectReport(s))}),i(),u(30,le,2,1,"p",40),u(31,ae,3,1,"label",41),i()(),r(32,"label",43)(33,"input",44),b("ngModelChange",function(s){c(e);let n=m();return h(n.form.published,s)||(n.form.published=s),p(s)}),i(),r(34,"span")(35,"strong",45),l(36,"Publier cette session"),i(),r(37,"small",46),l(38,"Si d\xE9coch\xE9, elle reste visible uniquement dans l\u2019administration."),i()()(),r(39,"div",47)(40,"button",48),g("click",function(){c(e);let s=m();return p(s.closeModal())}),l(41,"Annuler"),i(),r(42,"button",49),l(43),i()()()()()}if(o&2){let e,d,s=E(6),n=m();a(4),_(n.editing()?"Modifier la session":"Ajouter une session"),a(6),C("ngModel",n.form.title),a(4),C("ngModel",n.form.sessionDate),a(4),C("ngModel",n.form.summary),a(6),x(n.selectedPhoto?24:-1),a(),x((e=n.editing())!=null&&e.featuredImage&&!n.selectedPhoto?25:-1),a(5),x(n.selectedReport?30:-1),a(),x((d=n.editing())!=null&&d.reportFileUrl&&!n.selectedReport?31:-1),a(2),C("ngModel",n.form.published),a(9),v("disabled",s.invalid||n.saving()),a(),_(n.saving()?"Enregistrement\u2026":n.editing()?"Mettre \xE0 jour":"Enregistrer")}}var K=class o{service=y(J);authService=y(k);publicBaseUrl=N.apiUrl.replace(/\/api\/v1\/?$/,"");sessions=f([]);loading=f(!0);saving=f(!1);showModal=f(!1);editing=f(null);message=f(null);form=this.emptyForm();selectedPhoto;selectedReport;ngOnInit(){this.load()}load(){this.loading.set(!0),this.service.getAll().subscribe({next:t=>{this.sessions.set(t),this.loading.set(!1)},error:()=>{this.notify("error","Impossible de charger les sessions."),this.loading.set(!1)}})}openNew(){this.editing.set(null),this.form=this.emptyForm(),this.selectedPhoto=void 0,this.selectedReport=void 0,this.showModal.set(!0)}openEdit(t){this.editing.set(t),this.form=T(M({},t),{removeFeaturedImage:!1,removeReport:!1}),this.selectedPhoto=void 0,this.selectedReport=void 0,this.showModal.set(!0)}closeModal(){this.saving()||this.showModal.set(!1)}selectPhoto(t){this.selectedPhoto=t.target.files?.[0],this.selectedPhoto&&(this.form.removeFeaturedImage=!1)}selectReport(t){this.selectedReport=t.target.files?.[0],this.selectedReport&&(this.form.removeReport=!1)}save(t){t.invalid||this.saving()||(this.saving.set(!0),this.service.save(this.form,this.selectedPhoto,this.selectedReport).subscribe({next:()=>{this.saving.set(!1),this.showModal.set(!1),this.notify("success",this.editing()?"Session mise \xE0 jour.":"Session cr\xE9\xE9e."),this.load()},error:e=>{this.saving.set(!1),this.notify("error",e?.error?.message||"La sauvegarde a \xE9chou\xE9.")}}))}remove(t){!t.id||!confirm(`Supprimer la session \xAB ${t.title} \xBB ?`)||this.service.delete(t.id).subscribe({next:()=>{this.notify("success","Session supprim\xE9e."),this.load()},error:()=>this.notify("error","La suppression a \xE9chou\xE9.")})}assetUrl(t){return t?t.startsWith("assets/")?t:t.startsWith("/assets/")?t.slice(1):/^https?:\/\//i.test(t)?t:`${this.publicBaseUrl}${t.startsWith("/")?"":"/"}${t}`:""}formatDate(t){return t?new Intl.DateTimeFormat("fr-FR",{dateStyle:"long"}).format(new Date(`${t}T00:00:00`)):""}formatDateTime(t){return t?new Intl.DateTimeFormat("fr-FR",{dateStyle:"short",timeStyle:"short"}).format(new Date(t)):"\u2014"}emptyForm(){return{title:"",sessionDate:new Date().toISOString().slice(0,10),summary:"",published:!0}}notify(t,e){this.message.set({type:t,text:e}),setTimeout(()=>this.message.set(null),4500)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=F({type:o,selectors:[["app-cos-sessions-admin"]],decls:15,vars:3,consts:[["sessionForm","ngForm"],[1,"space-y-6"],[1,"flex","flex-col","gap-4","sm:flex-row","sm:items-center","sm:justify-between"],[1,"text-2xl","font-bold","text-slate-900"],[1,"mt-1","text-slate-500"],["type","button",1,"rounded-xl","bg-primary-700","px-5","py-3","font-semibold","text-white","transition","hover:bg-primary-800",3,"click"],[1,"rounded-xl","border","px-4","py-3","text-sm","font-medium",3,"ngClass"],[1,"overflow-hidden","rounded-2xl","border","border-slate-200","bg-white","shadow-sm"],[1,"p-10","text-center","text-slate-500"],[1,"p-12","text-center"],[1,"divide-y","divide-slate-100"],[1,"fixed","inset-0","z-50","flex","items-center","justify-center","bg-slate-950/55","p-4"],[1,"font-semibold","text-slate-700"],[1,"mt-1","text-sm","text-slate-500"],[1,"grid","gap-4","p-5","md:grid-cols-[120px_minmax(0,1fr)_auto]","md:items-center"],[1,"h-24","overflow-hidden","rounded-xl","bg-slate-100"],[1,"h-full","w-full","object-cover",3,"src","alt"],[1,"flex","h-full","items-center","justify-center","text-xs","font-semibold","text-slate-400"],[1,"min-w-0"],[1,"flex","flex-wrap","items-center","gap-2"],[1,"font-bold","text-slate-900"],[1,"rounded-full","px-2.5","py-1","text-xs","font-semibold",3,"ngClass"],[1,"mt-1","text-sm","font-semibold","text-primary-700"],[1,"mt-2","line-clamp-2","text-sm","text-slate-600"],[1,"mt-2","text-xs","text-slate-400"],["target","_blank","rel","noopener",1,"mt-2","inline-flex","text-sm","font-semibold","text-primary-700","hover:underline",3,"href"],[1,"flex","gap-2","md:flex-col"],["type","button",1,"rounded-lg","border","border-blue-200","px-4","py-2","text-sm","font-semibold","text-blue-700","hover:bg-blue-50",3,"click"],["type","button",1,"rounded-lg","border","border-red-200","px-4","py-2","text-sm","font-semibold","text-red-700","hover:bg-red-50"],["type","button",1,"rounded-lg","border","border-red-200","px-4","py-2","text-sm","font-semibold","text-red-700","hover:bg-red-50",3,"click"],[1,"max-h-[92vh]","w-full","max-w-2xl","overflow-y-auto","rounded-2xl","bg-white","shadow-2xl"],[1,"border-b","border-slate-200","p-6"],[1,"text-xl","font-bold","text-slate-900"],[1,"space-y-5","p-6",3,"ngSubmit"],[1,"label"],["name","title","required","","maxlength","500",1,"input",3,"ngModelChange","ngModel"],["type","date","name","sessionDate","required","",1,"input",3,"ngModelChange","ngModel"],["rows","5","name","summary","required","",1,"input","resize-none",3,"ngModelChange","ngModel"],[1,"grid","gap-5","rounded-2xl","border","border-slate-200","bg-slate-50","p-5","md:grid-cols-2"],["type","file","accept","image/*",1,"input",3,"change"],[1,"mt-2","text-xs","font-semibold","text-primary-700"],[1,"mt-3","flex","items-center","gap-2","text-xs","text-slate-600"],["type","file","accept","application/pdf,.pdf",1,"input",3,"change"],[1,"flex","items-start","gap-3","rounded-xl","border","border-green-200","bg-green-50","p-4"],["type","checkbox","name","published",1,"mt-1",3,"ngModelChange","ngModel"],[1,"block","text-slate-900"],[1,"text-slate-600"],[1,"flex","justify-end","gap-3","border-t","border-slate-200","pt-5"],["type","button",1,"rounded-lg","border","border-slate-300","px-5","py-2.5","font-semibold","text-slate-700",3,"click"],["type","submit",1,"rounded-lg","bg-primary-700","px-5","py-2.5","font-semibold","text-white","disabled:opacity-50",3,"disabled"],["type","checkbox","name","removeFeaturedImage",3,"ngModelChange","ngModel"],["type","checkbox","name","removeReport",3,"ngModelChange","ngModel"]],template:function(e,d){if(e&1&&(r(0,"div",1)(1,"div",2)(2,"div")(3,"h1",3),l(4,"Sessions du COS-RSU"),i(),r(5,"p",4),l(6,"Cr\xE9ez les sessions et publiez leurs photos, r\xE9sum\xE9s et comptes rendus."),i()(),r(7,"button",5),g("click",function(){return d.openNew()}),l(8,"+ Ajouter une session"),i()(),u(9,X,2,2,"div",6),r(10,"section",7),u(11,Y,2,0,"div",8)(12,Z,5,0,"div",9)(13,oe,3,0,"div",10),i(),u(14,de,44,11,"div",11),i()),e&2){let s;a(9),x((s=d.message())?9:-1,s),a(2),x(d.loading()?11:d.sessions().length?13:12),a(3),x(d.showModal()?14:-1)}},dependencies:[W,R,G,O,j,U,A,B,q,H,z,L],encapsulation:2})};export{K as CosSessionsComponent};