1import{_ as Q,r as i,o as X,I as V,y as ee,f as p,h as t,i as c,v as G,l as T,J as z,q as y,t as o,k as u,F as te,j as le,w as U,m as se,K as oe,L as ae,M as ne,p as f,N as A,O as ie}from"./index-D0XoRjBT.js";const re={class:"page-container"},de={class:"container mt-4"},ue={class:"d-flex gap-2 mb-3 flex-wrap"},ce={class:"d-flex align-items-center gap-1"},ve={class:"d-flex align-items-center gap-1"},me={class:"pagination-container mb-2"},be=["disabled"],pe={class:"pagination-info"},fe=["disabled"],ge={class:"table-responsive"},ke={class:"table table-hover admin-table"},Se={class:"sort-indicator"},Ce={class:"sort-indicator"},Me={class:"sort-indicator"},Ne={class:"sort-indicator"},he={class:"sort-indicator"},Ie={class:"sort-indicator"},Ve={class:"sort-indicator"},ye={class:"sort-indicator"},Ae={class:"sort-indicator"},Fe={class:"sort-indicator"},De=["onClick"],Ee={class:"text-truncate-cell"},xe=["onClick"],Te={key:1,class:"text-muted"},Ue={class:"text-center"},$e={class:"text-center"},Re={class:"text-center"},Le=["onClick"],Oe=["onClick"],_e={class:"pagination-container mt-2"},we=["disabled"],Pe={class:"pagination-info"},Ge=["disabled"],ze={class:"modal-box"},Be={class:"modal-user-info"},Ze={class:"mb-3"},Ye={class:"mb-3 form-check"},qe={class:"mb-3"},Je={class:"mb-3 form-check"},Ke={class:"mb-3"},We={class:"modal-actions"},je=["disabled"],He={__name:"AdminUserList",setup(Qe){const $=oe(),m=i([]),a=i(0),b=i(1),F=i(0),S=i("lastName"),g=i("asc"),C=i(""),M=i(""),N=i(!1),h=i(!1),R=i(!1);let L=null;const v=async()=>{R.value=!0;try{const s=await ae({page:a.value,size:48,sort:`${S.value},${g.value}`,search:C.value||null,role:M.value||null,fullMember:N.value||null,hasPerson:h.value?!1:null});m.value=s.content,b.value=s.totalPages||1,F.value=s.totalElements??0}catch(s){console.error("Fehler beim Laden der User:",s)}finally{R.value=!1}};X(v),V(M,()=>{a.value=0,v()}),V(N,()=>{a.value=0,v()}),V(h,()=>{a.value=0,v()}),V(C,()=>{clearTimeout(L),L=setTimeout(()=>{a.value=0,v()},300)});const r=s=>{S.value===s?g.value=g.value==="asc"?"desc":"asc":(S.value=s,g.value="asc"),a.value=0,v()},d=s=>S.value!==s?"":g.value==="asc"?"â":"â",O=()=>{a.value>0&&(a.value--,v())},_=()=>{a.value<b.value-1&&(a.value++,v())},w=ee(()=>`${F.value.toLocaleString("de-DE")} ${F.value===1?"Zugang":"Zugänge"}`),B=s=>$.push({name:"AdminUserDetail",params:{id:s}}),Z=s=>$.push({name:"Actor",query:{actorId:s,mode:"search"}}),Y=s=>s?{ACTOR:"Schauspieler",AGENT:"Agent",CASTING_DIRECTOR:"Casting Director",ADMIN:"Admin"}[s]||s:"â",q=s=>["role-badge",s?{ACTOR:"badge-actor",AGENT:"badge-agent",CASTING_DIRECTOR:"badge-caster",ADMIN:"badge-admin"}[s]||"":"badge-none"],P=s=>s?new Date(s).toLocaleDateString("de-DE"):"â",D=i(!1),E=i(null),n=i({role:"",emailVerified:!1,verificationStatus:"PENDING",isFullMember:!1,fullMemberSince:""}),I=i(!1),J=s=>s==="YES"?"â":s==="NO"?"â":"â",K=s=>s==="YES"?"check-yes":s==="NO"?"check-no":"text-muted",W=s=>{E.value=s,n.value={role:s.role||"",emailVerified:s.emailVerified,verificationStatus:s.verificationStatus||"PENDING",isFullMember:s.isFullMember,fullMemberSince:s.fullMemberSince||""},D.value=!0},x=()=>{D.value=!1},j=async()=>{I.value=!0;try{const s={role:n.value.role||null,emailVerified:n.value.emailVerified,verificationStatus:n.value.verificationStatus,isFullMember:n.value.isFullMember,fullMemberSince:n.value.fullMemberSince||null},e=await ne(E.value.userId,s),l=m.value.findIndex(k=>k.userId===e.userId);l!==-1&&(m.value[l]=e),x()}catch(s){console.error("Fehler beim Speichern:",s),alert("Fehler beim Speichern.")}finally{I.value=!1}},H=async s=>{if(confirm(`User "${s.username}" (ID ${s.userId}) wirklich löschen?`))try{await ie(s.userId),m.value=m.value.filter(e=>e.userId!==s.userId)}catch(e){console.error("Fehler beim Löschen:",e),alert("Fehler beim Löschen.")}};return(s,e)=>(f(),p("div",re,[t("div",de,[e[35]||(e[35]=t("h1",{class:"mb-4"},"User-Verwaltung",-1)),t("div",ue,[c(t("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>C.value=l),type:"search",class:"form-control filter-input",placeholder:"Suche nach Name, E-Mailâ¦"},null,512),[[G,C.value]]),c(t("select",{"onUpdate:modelValue":e[1]||(e[1]=l=>M.value=l),class:"form-select filter-select"},e[20]||(e[20]=[z('<option value="" data-v-93d6b32d>Alle Rollen</option><option value="ACTOR" data-v-93d6b32d>Schauspieler</option><option value="AGENT" data-v-93d6b32d>Agent</option><option value="CASTING_DIRECTOR" data-v-93d6b32d>Casting Director</option><option value="ADMIN" data-v-93d6b32d>Admin</option><option value="NULL" data-v-93d6b32d>Ohne Rolle</option>',6)]),512),[[T,M.value]]),t("div",ce,[c(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>N.value=l),type:"checkbox",class:"form-check-input mt-0",id:"fullMemberFilter"},null,512),[[y,N.value]]),e[21]||(e[21]=t("label",{class:"form-check-label",for:"fullMemberFilter",style:{"font-size":"0.85rem"}},"Nur Vollmitglieder",-1))]),t("div",ve,[c(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>h.value=l),type:"checkbox",class:"form-check-input mt-0",id:"ohnePersonFilter"},null,512),[[y,h.value]]),e[22]||(e[22]=t("label",{class:"form-check-label",for:"ohnePersonFilter",style:{"font-size":"0.85rem"}},"Ohne Person",-1))])]),t("div",me,[t("button",{class:"btn btn-primary",onClick:O,disabled:a.value===0},"â Zurück",8,be),t("span",pe,"Seite "+o(a.value+1)+" von "+o(b.value)+" · "+o(w.value),1),t("button",{class:"btn btn-primary",onClick:_,disabled:a.value>=b.value-1},"Weiter â",8,fe)]),t("div",ge,[t("table",ke,[t("thead",null,[t("tr",null,[t("th",{onClick:e[4]||(e[4]=l=>r("userId")),class:"sortable"},[e[23]||(e[23]=u("ID ")),t("span",Se,o(d("userId")),1)]),t("th",{onClick:e[5]||(e[5]=l=>r("username")),class:"sortable"},[e[24]||(e[24]=u("E-Mail ")),t("span",Ce,o(d("username")),1)]),t("th",{onClick:e[6]||(e[6]=l=>r("firstName")),class:"sortable"},[e[25]||(e[25]=u("Vorname ")),t("span",Me,o(d("firstName")),1)]),t("th",{onClick:e[7]||(e[7]=l=>r("lastName")),class:"sortable"},[e[26]||(e[26]=u("Nachname ")),t("span",Ne,o(d("lastName")),1)]),t("th",{onClick:e[8]||(e[8]=l=>r("role")),class:"sortable"},[e[27]||(e[27]=u("Rolle ")),t("span",he,o(d("role")),1)]),e[33]||(e[33]=t("th",null,"Person",-1)),t("th",{onClick:e[9]||(e[9]=l=>r("emailVerified")),class:"sortable"},[e[28]||(e[28]=u("E-Mail bestätigt ")),t("span",Ie,o(d("emailVerified")),1)]),t("th",{onClick:e[10]||(e[10]=l=>r("verificationStatus")),class:"sortable"},[e[29]||(e[29]=u("Verifiziert ")),t("span",Ve,o(d("verificationStatus")),1)]),t("th",{onClick:e[11]||(e[11]=l=>r("isFullMember")),class:"sortable"},[e[30]||(e[30]=u("Vollmitglied ")),t("span",ye,o(d("isFullMember")),1)]),t("th",{onClick:e[12]||(e[12]=l=>r("fullMemberSince")),class:"sortable"},[e[31]||(e[31]=u("Mitglied seit ")),t("span",Ae,o(d("fullMemberSince")),1)]),t("th",{onClick:e[13]||(e[13]=l=>r("lastLoginAt")),class:"sortable"},[e[32]||(e[32]=u("Letzter Login ")),t("span",Fe,o(d("lastLoginAt")),1)]),e[34]||(e[34]=t("th",null,"Aktionen",-1))])]),t("tbody",null,[(f(!0),p(te,null,le(m.value,l=>(f(),p("tr",{key:l.userId,class:"user-row",onClick:k=>B(l.userId)},[t("td",null,o(l.userId),1),t("td",Ee,o(l.username),1),t("td",null,o(l.firstName),1),t("td",null,o(l.lastName),1),t("td",null,[t("span",{class:A(q(l.role))}
1,o(Y(l.role)),3)]),t("td",null,[l.personId?(f(),p("a",{key:0,href:"#",class:"person-link",onClick:U(k=>Z(l.personId),["stop"])},o(l.personFirstName)+" "+o(l.personLastName),9,xe)):(f(),p("span",Te,"â"))]),t("td",Ue,[t("span",{class:A(l.emailVerified?"check-yes":"check-no")},o(l.emailVerified?"â":"â"),3)]),t("td",$e,[t("span",{class:A(K(l.verificationStatus))},o(J(l.verificationStatus)),3)]),t("td",Re,[t("span",{class:A(l.isFullMember?"check-yes":"check-no")},o(l.isFullMember?"â":"â"),3)]),t("td",null,o(P(l.fullMemberSince)),1),t("td",null,o(P(l.lastLoginAt)),1),t("td",{onClick:e[14]||(e[14]=U(()=>{},["stop"]))},[t("button",{class:"btn-action btn-edit",onClick:k=>W(l)},"Bearbeiten",8,Le),t("button",{class:"btn-action btn-delete",onClick:k=>H(l)},"Löschen",8,Oe)])],8,De))),128))])])]),t("div",_e,[t("button",{class:"btn btn-primary",onClick:O,disabled:a.value===0},"â Zurück",8,we),t("span",Pe,"Seite "+o(a.value+1)+" von "+o(b.value)+" · "+o(w.value),1),t("button",{class:"btn btn-primary",onClick:_,disabled:a.value>=b.value-1},"Weiter â",8,Ge)])]),D.value?(f(),p("div",{key:0,class:"modal-overlay",onClick:U(x,["self"])},[t("div",ze,[e[43]||(e[43]=t("h5",{class:"modal-title"},"User bearbeiten",-1)),t("p",Be,o(E.value.username),1),t("div",Ze,[e[37]||(e[37]=t("label",{class:"form-label"},"Rolle",-1)),c(t("select",{"onUpdate:modelValue":e[15]||(e[15]=l=>n.value.role=l),class:"form-select"},e[36]||(e[36]=[z('<option value="" data-v-93d6b32d>Keine Rolle</option><option value="ACTOR" data-v-93d6b32d>Schauspieler</option><option value="AGENT" data-v-93d6b32d>Agent</option><option value="CASTING_DIRECTOR" data-v-93d6b32d>Casting Director</option><option value="ADMIN" data-v-93d6b32d>Admin</option>',5)]),512),[[T,n.value.role]])]),t("div",Ye,[c(t("input",{"onUpdate:modelValue":e[16]||(e[16]=l=>n.value.emailVerified=l),type:"checkbox",class:"form-check-input",id:"editEmailVerified"},null,512),[[y,n.value.emailVerified]]),e[38]||(e[38]=t("label",{class:"form-check-label",for:"editEmailVerified"},"E-Mail bestätigt",-1))]),t("div",qe,[e[40]||(e[40]=t("label",{class:"form-label",for:"editVerificationStatus"},"Verifiziert (Vertrauenswürdigkeit)",-1)),c(t("select",{"onUpdate:modelValue":e[17]||(e[17]=l=>n.value.verificationStatus=l),class:"form-select",id:"editVerificationStatus"},e[39]||(e[39]=[t("option",{value:"PENDING"},"Ausstehend",-1),t("option",{value:"YES"},"Ja â verifiziert",-1),t("option",{value:"NO"},"Nein â abgelehnt",-1)]),512),[[T,n.value.verificationStatus]])]),t("div",Je,[c(t("input",{"onUpdate:modelValue":e[18]||(e[18]=l=>n.value.isFullMember=l),type:"checkbox",class:"form-check-input",id:"editFullMember"},null,512),[[y,n.value.isFullMember]]),e[41]||(e[41]=t("label",{class:"form-check-label",for:"editFullMember"},"Vollmitglied",-1))]),t("div",Ke,[e[42]||(e[42]=t("label",{class:"form-label"},"Vollmitglied seit",-1)),c(t("input",{"onUpdate:modelValue":e[19]||(e[19]=l=>n.value.fullMemberSince=l),type:"date",class:"form-control"},null,512),[[G,n.value.fullMemberSince]])]),t("div",We,[t("button",{class:"btn-action btn-edit",onClick:j,disabled:I.value},o(I.value?"Speichernâ¦":"Speichern"),9,je),t("button",{class:"btn-action btn-cancel",onClick:x},"Abbrechen")])])])):se("",!0)]))}},et=Q(He,[["__scopeId","data-v-93d6b32d"]]);export{et 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.