1import{J as X,n as E,l as b,B as k,d as Z,C as $,a6 as K,O as ee,Q as L,R as g,T as W}from"#entry";import{M as te}from"./COL9lW-Z.js";import"./C0MzSTyq.js";import{f as ae}from"./e_X7fKYs.js";import{h as w}from"./B-IMjirZ.js";import{b as oe}from"./cbP3V-Ye.js";import{f as V}from"./Dt_r19lB.js";import{Y as ne}from"./GpFf7ot7.js";import{u as se}from"./CyiqLigs.js";import{u as le}from"./DeYgWaCY.js";import{u as ie}from"./BpSbRMNS.js";import{z as re,k as p,b as P,p as j,E as d,F as n,L as s,G as B,A as e,Z as u,a0 as _,$ as i,a1 as T,a2 as v,X as O,a6 as R}from"./-viQefx2.js";import"./PPVm8Dsz.js";import"./Bms4CGQi.js";import"./B5ZLoL5d.js";import"./D8XeIyjz.js";const F=async({userId:I,params:x,onSuccess:C,onError:f})=>{try{const c=await $fetch(`/api/admin/users/${I}`,{method:"PUT",body:x});await C?.(c)}catch(c){console.error("Error updating user:",c),f?.(c)}},de={style:{padding:"1rem"}},ue={style:{display:"flex",padding:"1rem 2rem",gap:"1rem","flex-direction":"column"}},ce={style:{display:"flex","justify-content":"space-between","align-items":"flex-end"}},me={style:{display:"flex","align-items":"center","justify-content":"space-between"}},pe={key:1},fe={key:2,style:{display:"flex",gap:"0.5rem"}},ye={key:1},Ve=re({__name:"index",setup(I){const x=["User Name","Email","Role"],C=X(),{roles:f}=se(),c=p(()=>Object.fromEntries(r.value?.map(t=>[t.documentId,{label:t.role.name,value:t.role.id}])??[])),M=p(()=>f.value?f.value.map(t=>({label:t.name,value:t.id})):[]),Y=p(()=>f.value?f.value.map(t=>({[t.name]:t.description})):[]),q=async(t,o)=>{await F({userId:t,params:{role:o},onSuccess:()=>{W("Successfully updated user role",{position:g.Position.TOP_CENTER})},onError:()=>{L("Oops, Failed to update user role",{position:g.Position.TOP_CENTER})}})},{isBlogAdministrator:A,authStatus:D}=le(),S=p(()=>A.value),N=p(()=>A.value),G=p(()=>A.value),{articleWriters:r,status:H}=ie(),U=p(()=>H.value==="success"&&D.value==="success"),h=P({});j(()=>{r.value&&Object.keys(h.value).length===0&&(h.value=Object.fromEntries(r.value?.map(t=>[t.id,t.username])??[]))});const y=P({});j(()=>{y.value=Object.fromEntries(r.value?.map(t=>[t.id,""])??[])});const m=P({});j(()=>{m.value=Object.fromEntries(r.value?.map(t=>[t.id,!1])??[])});const z=async(t,o)=>{if(y.value[t]="",!o){y.value[t]="Username is required";return}if(r.value?.find(a=>a.id!==t&&a.username===o)){y.value[t]="Username already exists";return}m.value[t]=!1,h.value[t]!==o&&await F({userId:t,params:{username:o},onSuccess:()=>{W("Successfully updated username",{position:g.Position.TOP_CENTER}),h.value[t]=o},onError:()=>{L("Oops, Failed to update username",{position:g.Position.TOP_CENTER})}})},J=t=>{m.value[t]=!1,y.value[t]="",r.value&&(r.value=r.value.map(o=>o.id===t?{...o,username:h.value[t]||o.username}:o))},Q=()=>{C.push("/admin")};return(t,o)=>(n(),d("div",de,[s(e(k),{text:"Home",type:e(b).Type.Grey,icon:e(E).Icons.ArrowUndo,small:"",onClick:Q},null,8,["type","icon"]),B("div",ue,[B("div",ce,[s(e($),{type:e(Z).Type.Heading2},{default:i(()=>o[1]||(o[1]=[T(v("Writers"))])),_:1},8,["type"]),e(N)?(n(),u(e(k),{key:0,text:"Create a New Writer",onClick:o[0]||(o[0]=a=>e(C).push("/admin/users/create"))})):_("",!0)]),e(U)&&!e(S)?(n(),u(e($),{key:0},{default:i(()=>o[2]||(o[2]=[T(v("You don't have permission to view this page."))])),_:1})):(n(),u(e(ae),{key:1,style:{width:"100%"}},{default:i(()=>[s(e(V),null,{default:i(()=>[(n(),d(O,null,R(x,a=>s(e(oe),{key:a},{default:i(()=>[T(v(a)+" ",1),a==="Role"?(n(),u(e(K),{key:0,text:e(Y).map(l=>`<b>${Object.keys(l)}</b>: ${Object.values(l)}`).join(` 2 3`),"max-width":480,style:{whiteSpace:"pre-wrap"}},null,8,["text"])):_("",!0)]),_:2},1024)),64))]),_:1}),e(U)?_("",!0):(n(),d(O,{key:0},R(5,a=>s(e(V),{key:a},{default:i(()=>[(n(),d(O,null,R(x,l=>s(e(w),{key:l},{default:i(()=>[s(e(ee),{height:28,width:200})]),_:2},1024)),64))]),_:2},1024)),64)),e(U)&&e(S)?(n(!0),d(O,{key:1},R(e(r),a=>(n(),u(e(V),{key:a.id},{default:i(()=>[s(e(w),{style:{width:"30%"}},{default:i(()=>[B("span",me,[e(m)[a.id]?(n(),u(e(ne),{key:0,modelValue:a.username,"onUpdate:modelValue":l=>a.username=l,"field-attrs":{id:"text",label:"Text*",hideLabel:!0,errorText:e(y)[a.id]},"input-attrs":{id:"text",type:"text",required:!0}},null,8,["modelValue","onUpdate:modelValue","field-attrs"])):(n(),d("span",pe,v(a.username),1)),e(N)&&e(m)[a.id]?(n(),d("div",fe,[s(e(k),{text:"",type:e(b).Type.Accent5,icon:e(E).Icons.Check,"icon-only":"",small:"",onClick:()=>z(a.id,a.username)},null,8,["type","icon","onClick"]),s(e(k),{text:"",type:e(b).Type.Accent2,icon:e(E).Icons.Cross,"icon-only":"",small:"",onClick:()=>J(a.id)},null,8,["type","icon","onClick"])])):e(N)&&!e(m)[a.id]?(n(),u(e(k),{key:3,text:"",type:e(b).Type.Accent1,icon:e(E).Icons.Pencil,"icon-only":"",small:"",onClick:()=>e(m)[a.id]=!0},null,8,["type","icon","onClick"])):_("",!0)])]),_:2},1024),s(e(w),{style:{width:"40%"}},{default:i(()=>[T(v(a.email),1)]),_:2},1024),s(e(w),{style:{width:"30%"}},{default:i(()=>[e(G)?(n(),u(e(te),{key:0,modelValue:e(c)[a.documentId],"onUpdate:modelValue":[l=>e(c)[a.documentId]=l,l=>l&&q(a.id,Number(l.value))],options:e(M),"field-attrs":{id:"role",label:"Role",hideLabel:!0},style:{flex:"1","align-self":"flex-end",width:"100%"}},null,8,["modelValue","onUpdate:modelValue","options"])):(n(),d("span",ye,v(a.role?.name||"N/A"),1))]),_:2},1024)]),_:2},1024))),128)):_("",!0)]),_:1}))])]))}});
3export{Ve 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.