1import{_ as le}from"./D03Ys8Av.js";import{_ as ne}from"./BkqURr19.js";import{_ as oe}from"./aiKYpgNL.js";import{b2 as de,b1 as ue,aW as re,b7 as ce,bt as D,b4 as me,b5 as I,bD as ve,c0 as _e,b8 as l,b9 as d,ba as u,bb as m,bc as v,bd as r,be as s,bf as o,bi as _,bj as T,bk as pe,bl as f,bQ as fe,fE as ye,fF as be,bg as R,ct as ge,fu as he,c8 as ke,bI as $e,cv as we,bw as q,bn as H,bs as De}from"./szcXUDxO.js";import{_ as z}from"./CgfY3Mp3.js";import{_ as O}from"./B_PulHi_.js";import{_ as ze}from"./QO6hp_qc.js";import{_ as xe}from"./Bl14rRsU.js";import{_ as L}from"./DfxzkHXw.js";import{_ as Ae}from"./RxKU0bsn.js";import{A as Se}from"./Cjpi2W68.js";import{B as Te}from"./w6LzkVB9.js";import{A as Ce,a as h}from"./CpwGikyw.js";import{A as Ue}from"./BsFLQDgf.js";import{D as Re}from"./BllieiTF.js";import{D as Oe}from"./CG-8VHFz.js";import{R as Be}from"./BTfU9c02.js";import{_ as Pe}from"./Biawv_qP.js";import{g as Ve}from"./DbaG-xPr.js";import"./CbzZngf6.js";import"./D9wjDhk-.js";import"./BdAdJOS2.js";import"./BTGXXOaW.js";import"./ClP5St4K.js";import"./Gc_2MR4g.js";import"./kVV428Hw.js";import"./Cb0PnI2E.js";import"./K5-bd9sb.js";import"./D9ySoWyW.js";import"./8t0Cb_no.js";import"./gsQmYL8-.js";import"./B9ioR0Ey.js";import"./BQ8Q5Wmx.js";import"./Bm92f-5u.js";import"./CxIZtCgj.js";import"./xa67PyFm.js";import"./Bu6mFo6t.js";import"./B3Ccnh5Q.js";import"./DyUAU4Io.js";import"./DkBByVkp.js";import"./D9m04HH5.js";import"./Bw7_0Fdy.js";import"./SLFGBvS_.js";import"./DzsCG8Kb.js";import"./DAKLJPvY.js";import"./WiCfFZYh.js";const Me={class:"text-2xl font-extrabold text-gray-title mb-5"},Fe={key:0,class:"flex justify-between items-end"},Ee={class:"text-sm font-bold uppercase m-0"},Ne={class:"flex-none flex flex-wrap items-center md:gap-x-6 gap-2"},Ie={key:0},qe={class:"overflow-hidden"},He={key:0},Le={key:1},Ke={key:2},Qe={key:1,class:"animate-pulse-placeholder space-y-1.5"},We={key:0},Ge={key:3},Je={key:1,class:"animate-pulse-placeholder"},Xe={key:0},Ye={key:0,class:"flex items-center min-w-0"},Ze={key:1},je={class:"flex items-center min-w-0"},ea={key:1,class:"animate-pulse-placeholder"},aa={key:0,class:"inline-flex items-center"},ta={key:1,class:"inline-flex items-center"},sa={class:"fr-ml-1v inline-flex items-center space-x-1 text-gray-plain"},ia={class:"font-bold"},la={class:"font-bold"},na={key:0,class:"animate-pulse-placeholder flex items-center gap-1"},oa={key:1,class:"flex items-center"},da={class:"relative"},ua={key:0,class:"absolute top-0.5 right-0.5 size-2 rounded-full bg-new-warning ring-1 ring-white","aria-hidden":"true"},ra={key:1,class:"size-8 flex items-center justify-center"},ca={class:"fr-text--bold"},ma={key:1,class:"flex flex-col items-center"},va={class:"fr-text--bold fr-my-3v"},g="/admin/site/moderation",_a=de({__name:"moderation",async setup(pa){let y,x;const{t:n}=ue(),{$api:A}=re();ce({title:n("Modération"),robots:"noindex"});const C=D(1),B=D(20),S=D({label:n("En cours"),id:!1}),K=H(()=>S.value.id===null?void 0:S.value.id),Q=[{href:g,label:n("Tous")},{href:`${g}?type=Dataset`,label:n("Datasets")},{href:`${g}?type=Dataservice`,label:n("Dataservices")},{href:`${g}?type=Reuse`,label:n("Réutilisations")},{href:`${g}?type=Organization`,label:n("Organisations")},{href:`${g}?type=Discussion`,label:n("Discussions")},{href:`${g}?type=User`,label:n("Utilisateurs")}],W=me(),G=H(()=>{const t=W.query.type;if(typeof t=="string"&&["Dataset","Dataservice","Reuse","Organization","Discussion","User"].includes(t))return t}),{data:p,status:P,refresh:V}=([y,x]=I(()=>q("/api/1/reports/",{query:{handled:K,subject_type:G,page:C,pageSize:B,sort:"-reported_at"}})),y=await y,x(),y),{data:J}=([y,x]=I(()=>q("/api/1/reports/reasons/",{lazy:!0})),y=await y,x(),y),X=t=>({Dataset:`/api/2/datasets/${t.id}/`,Dataservice:`/api/1/dataservices/${t.id}/`,Reuse:`/api/1/reuses/${t.id}/`,Organization:`/api/1/organizations/${t.id}/`,Discussion:`/api/1/discussions/${t.id}/`,User:`/api/1/users/${t.id}/`})[t.class],i=D({}),U=async(t,e)=>{if(t.subject_deleted_at){i.value[t.id]={type:e.class,value:null};return}try{const c=await A(X(e));i.value[t.id]={type:e.class,value:c}}catch{i.value[t.id]={type:e.class,value:null}}};ve(p,async()=>
1{if(!p.value)return;const t=p.value.data.filter(e=>e.subject&&!i.value[e.id]).map(e=>U(e,e.subject));await Promise.all(t)},{immediate:!0});const k=D({});_e(async()=>{if(!p.value)return;const t=p.value.data.map(c=>c.subject).filter(c=>c),e=await Ve(A,t);k.value={...k.value,...e}});const Y=async t=>{await A(`/api/1/reports/${t.id}`,{method:"PATCH",body:{dismissed_at:new Date}}),await V()},M=t=>({Dataset:{method:"PUT",url:`/api/1/datasets/${t.id}/`},Dataservice:{method:"PATCH",url:`/api/1/dataservices/${t.id}/`},Reuse:{method:"PUT",url:`/api/1/reuses/${t.id}/`},Organization:null,Discussion:null,User:null})[t.class],Z=async(t,e)=>{const c=M(e);c&&(await A(c.url,{method:c.method,body:{private:!0}}),await U(t,e))},F=(t,e)=>e.class==="Discussion"&&t.subject_embed_id?`/api/1/discussions/${e.id}/comments/${t.subject_embed_id}/`:{Dataset:`/api/1/datasets/${e.id}/`,Dataservice:`/api/1/dataservices/${e.id}/`,Reuse:`/api/1/reuses/${e.id}/`,Organization:`/api/1/organizations/${e.id}/`,Discussion:`/api/1/discussions/${e.id}/`,User:`/api/1/users/${e.id}/`}[e.class],j=t=>!!(!t||"deleted"in t&&t.deleted||"deleted_at"in t&&t.deleted_at),E=(t,e)=>e.type==="Discussion"&&e.value?N(t,e.value):e.type==="Dataset"&&e.value?.owner||e.type==="Reuse"&&e.value?.owner?e.value.owner:null,ee=(t,e)=>{if(e.type==="Discussion"&&t.subject_embed_id&&e.value){const c=e.value.discussion.find($=>$.id===t.subject_embed_id);if(c)return c.posted_on}return e.type==="Dataset"&&e.value||e.type==="Dataservice"&&e.value||e.type==="Organization"&&e.value||e.type==="Reuse"&&e.value?e.value.created_at:e.type==="Discussion"&&e.value?e.value.created:e.type==="User"&&e.value?.since?e.value.since:""},N=(t,e)=>{if(t.subject_embed_id){const c=e.discussion.find($=>$.id===t.subject_embed_id);if(c)return c.posted_by}return e.user},ae=t=>({Dataset:"dataset",Dataservice:"dataservice",Reuse:"reuse",Organization:"organization",Discussion:"discussion",User:"user"})[t]||"dataset",te=t=>{if(t){if("title"in t)return t.title;if("name"in t)return t.name;if("first_name"in t)return`${t.first_name} ${t.last_name}`.trim()||t.slug}};return(t,e)=>{const c=le,$=ne,se=oe;return l(),d("div",null,[u(Se,null,{default:m(()=>[u(Te,null,{default:m(()=>[v(r(s(n)("Modération")),1)]),_:1})]),_:1}),o("h1",Me,r(s(n)("Modération")),1),u(Pe,{class:"mb-5",links:Q}),s(p)?(l(),d("div",Fe,[o("h2",Ee,r(s(n)("{n} signalements | {n} signalement | {n} signalements",s(p).total)),1),o("div",Ne,[u(s(Ae),{modelValue:S.value,"onUpdate:modelValue":e[0]||(e[0]=b=>S.value=b),placeholder:t.$t("Filtrer par statut"),label:t.$t("Filtrer par statut"),options:[{label:s(n)("En cours"),id:!1},{label:s(n)("Traités"),id:!0},{label:s(n)("Tous"),id:null}],"display-value":b=>b.label,multiple:!1,class:"mb-0","hide-label":"",required:""},null,8,["modelValue","placeholder","label","options","display-value"])])])):_("",!0),u(s(ze),{status:s(P),data:s(p)},{default:m(({data:b})=>[b&&b.total?(l(),d("div",Ie,[u(Ce,null,{default:m(()=>[o("thead",null,[o("tr",null,[u(h,{class:"w-full",scope:"col"},{default:m(()=>[v(r(s(n)("Objet")),1)]),_:1}),u(h,{class:"w-24",scope:"col"},{default:m(()=>[v(r(s(n)("Statut")),1)]),_:1}),u(h,{class:"w-52",scope:"col"},{default:m(()=>[v(r(s(n)("Créé le")),1)]),_:1}),u(h,{class:"w-52",scope:"col"},{default:m(()=>[v(r(s(n)("Signalé le")),1)]),_:1}),u(h,{class:"w-full",scope:"col"},{default:m(()=>[v(r(s(n)("Raison")),1)]),_:1}),u(h,{class:"w-28",scope:"col"},{default:m(()=>[v(r(t.$t("Actions")),1)]),_:1})])]),o("tbody",null,[(l(!0),d(T,null,pe(b.data,a=>(l(),d("tr",{key:a.id},[o("td",qe,[i.value[a.id]?(l(),d(T,{key:0},[i.value[a.id].value?(l(),d("div",He,[u(c,{type:i.value[a.id].type,subject:i.value[a.id].value},null,8,["type","subject"])])):(l(),d("div",Le,[u(c,{type:i.value[a.id].type,subject:{customTitle:a.subject_label||t.$t("Supprimé"),customUrl:void 0}},null,8,["type","subject"])])),i.value[a.id].value?(l(),d("div",Ke,["organization"in i.value[a.id].value&&i.value[a.id].value.organization?(l(),f($,{key:0,organization:i.value[a.id].value.organization,"logo-size-class":"size-3.5","logo-no-border":"","name-size":"xs","name-color":"text-gray-plain font-bold"},null,8,["organization"])):_("",!0),"owner"in i.value[a.id].value&&i.value[a.id].value.owner?(l(),f(s(z),{key:1,size:14,user:i.value[a.id].value.owner,class:"text-gray-plain"},null,8,["user"])):_("",!0),i.value[a.id].type==="Discussion"?(l(),f(s(z),{key:2,size:14,user:N(a,i.value[a.id].value)},null,8,["user"])):_("",!0)])):_("",!0)],64)):(l(),d("div",Qe,[...e[2]||(e[2]=[o("div",{class:"bg-gray-200 h-3.5 w-3/4"},null,-1),o("div",{class:"bg-gray-200 h-3 w-1/3"},null,-1)])]))]),o("td",null,[i.value[a.id]?(l(),d(T,{key:0},[i.value[a.id].value?(l(),d("div",We,[i.value[a.id].type==="Dataset"?(l(),f(Re,{key:0,dataset:i.value[a.id].value},null,8,["dataset"])):i.value[a.id].type==="Dataservice"?(l(),f(Oe,{key:1,dataservice:i.value[a.id].value},null,8,["dataservice"])):i.value[a.id].type==="Reuse"?(l(),f(Be,{key:2,reuse:i.value[a.id].value},null,8,["reuse"])):(l(),d("div",Ge," â "))])):(l(),f(se,{key:1,type:"danger",size:"xs"},{default:m(()=>[v(r(t.$t("Supprimé")),1)]),_:1}))],64)):(l(),d("div",Je,[...e[3]||(e[3]=[o("div",{class:"bg-gray-200 h-3.5 w-14 roun
1ded-full"},null,-1)])]))]),o("td",null,[i.value[a.id]?(l(),d(T,{key:0},[i.value[a.id].value?(l(),d("div",Xe,[u(s(L),{tag:"div",keypath:"Créé le {date}"},{date:m(()=>[u(s(O),{date:ee(a,i.value[a.id])},null,8,["date"])]),_:2},1024),E(a,i.value[a.id])?(l(),d("p",Ye,[v(r(s(n)("par "))+" ",1),u(s(z),{class:"fr-ml-1v min-w-0",size:14,user:E(a,i.value[a.id])},null,8,["user"])])):_("",!0),a.subject&&a.subject.id in k.value?(l(),d("div",Ze,[u(s(L),{tag:"div",keypath:"Modifié le {date}"},{date:m(()=>[u(s(O),{date:k.value[a.subject.id].created_at},null,8,["date"])]),_:2},1024),o("p",je,[v(r(s(n)("par "))+" ",1),u(s(z),{class:"fr-ml-1v min-w-0",user:k.value[a.subject.id].actor},null,8,["user"])])])):_("",!0)])):_("",!0)],64)):(l(),d("div",ea,[...e[4]||(e[4]=[o("div",{class:"bg-gray-200 h-3.5 w-20"},null,-1)])]))]),o("td",null,[o("div",null,[u(s(O),{date:a.reported_at},null,8,["date"])]),a.by?(l(),d("p",aa,[v(r(s(n)("par "))+" ",1),u(s(z),{class:"fr-ml-1v",user:a.by},null,8,["user"])])):(l(),d("p",ta,[v(r(s(n)("par "))+" ",1),o("span",sa,[(l(),f(fe(a.reason==="auto_spam"?s(ye):s(be)),{class:"size-3.5 shrink-0"})),o("span",ia,r(a.reason==="auto_spam"?s(n)("Spam bot"):s(n)("Anonyme")),1)])]))]),o("td",null,[o("div",la,r(s(J)?.find(w=>w.value===a.reason)?.label||a.reason),1),v(" "+r(a.message),1)]),o("td",null,[i.value[a.id]?i.value[a.id].value?(l(),d("div",oa,[o("div",da,[u(s(R),{size:"xs",color:"tertiary",type:"button",icon:s(ge),"icon-only":"","keep-margins-even-without-borders":"",disabled:!!a.dismissed_at,title:a.callbacks_count>0?s(n)("Rejeter le signalement (déclenchera {n} actions en attente | déclenchera {n} action en attente | déclenchera {n} actions en attente)",a.callbacks_count):t.$t("Rejeter le signalement"),onClick:w=>Y(a)},null,8,["icon","disabled","title","onClick"]),a.callbacks_count>0&&!a.dismissed_at?(l(),d("span",ua)):_("",!0)]),a.subject&&M(a.subject)?(l(),f(s(R),{key:0,size:"xs",color:"tertiary",type:"button",icon:s(he),"icon-only":"","keep-margins-even-without-borders":"",disabled:"private"in i.value[a.id].value&&i.value[a.id].value.private,title:t.$t("Cacher l'objet"),onClick:w=>Z(a,a.subject)},null,8,["icon","disabled","title","onClick"])):(l(),d("div",ra," â ")),a.subject&&F(a,a.subject)?(l(),f(Ue,{key:2,title:a.subject_embed_id?t.$t("Ãtes-vous sûr de vouloir supprimer ce commentaire ?"):t.$t("Ãtes-vous sûr de vouloir supprimer cet objet ?"),"delete-url":F(a,a.subject),"delete-button-label":t.$t("Supprimer"),"deletable-object":i.value[a.id].value,"object-type":ae(a.subject.class),"object-title":te(i.value[a.id]?.value),onDeleted:()=>{U(a,a.subject),s(V)()}},{button:m(({attrs:w,listeners:ie})=>[u(s(R),ke({size:"xs",color:"tertiary",icon:s($e),"icon-only":"","keep-margins-even-without-borders":"",disabled:j(i.value[a.id].value),title:t.$t("Supprimer l'objet")},{ref_for:!0},w,we(ie)),null,16,["icon","disabled","title"])]),default:m(()=>[o("p",ca,r(t.$t("Cette action est irréversible.")),1)]),_:2},1032,["title","delete-url","delete-button-label","deletable-object","object-type","object-title","onDeleted"])):_("",!0)])):_("",!0):(l(),d("div",na,[...e[5]||(e[5]=[o("div",{class:"bg-gray-200 size-5 rounded"},null,-1),o("div",{class:"bg-gray-200 size-5 rounded"},null,-1),o("div",{class:"bg-gray-200 size-5 rounded"},null,-1)])]))])]))),128))])]),_:2},1024),u(s(xe),{page:C.value,"page-size":B.value,"total-results":b.total,onChange:e[1]||(e[1]=a=>C.value=a)},null,8,["page","page-size","total-results"])])):_("",!0)]),_:1},8,["status","data"]),s(P)!="pending"&&s(p)&&!s(p).total?(l(),d("div",ma,[o("p",va,r(s(n)("Aucun signalement")),1)])):_("",!0)])}}}),dt=De(_a,[["__scopeId","data-v-79cc86f4"]]);export{dt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.