1import{e as fe,f as ve,a8 as _e,a as be,Y as C,l as S,aa as t,bm as Me,j as w,h as c,k as e,m as O,R as U,o as p,s as b,i as u,t as n,w as s,ap as G,b0 as ge,bh as R,v as m,am as Ee,bi as Re,c as h,an as he,F as M,x as i}from"./main-BJ0JjTz9.js";import{G as N,a as Te,b as Ae,U as we}from"./member-DglY6eDk.js";import{_ as Oe}from"./EmptyContent.vue_vue_type_script_setup_true_lang-BPrt7mLV.js";import{u as ke}from"./head-CAsbFNMN.js";import{u as Q,i as De,e as ye}from"./index-xakfqh5-.js";const Ne={key:1,class:"container mx-auto section"},Pe={value:void 0},Ie=["value"],Ce=["value"],Se=["value"],Ue=["value"],xe=["value"],Be=["value"],Ve={class:"flex"},Ge={key:0,class:"h-10 w-10"},Qe=["src","alt"],Le={class:""},je={class:"text-start"},$e={key:0},qe={class:""},ze={class:"has-text-centered"},Je={key:0,class:"flex flex-wrap gap-2"},T=10,Xe=fe({__name:"GroupMembers",props:{preferredUsername:{}},emits:["sort"],setup(L,{emit:j}){const{t:o}=ve({useScope:"global"});ke({title:h(()=>o("Group members"))});const k=L,x=h(()=>k.preferredUsername),$=j,{currentActor:q}=_e(),f=Q("page",1,De),v=Q("roles",void 0,ye(t)),g=he("notifier"),{result:z,fetchMore:J,loading:P}=be(N,()=>({groupName:k.preferredUsername,page:f.value,limit:T,roles:v.value}),()=>({fetchPolicy:"cache-and-network"})),d=h(()=>z.value?.group),I=h(()=>d.value?.members??{total:0,elements:[]}),Y=async()=>{await J({variables(){return{name:O(d.value),page:f,limit:T,roles:v}}})},{mutate:F,onDone:H,onError:W}=C(Te,()=>({refetchQueries:[{query:N,variables:{groupName:k.preferredUsername,page:f.value,limit:T,roles:v.value}}]}));H(({context:r})=>{let l=o("The member was removed from the group {group}",{group:S(d.value)});r?.oldMember.role===t.NOT_APPROVED&&(l=o("The membership request from {profile} was rejected",{group:S(r?.oldMember.actor)})),g?.success(l)}),W(r=>{console.error(r),r.graphQLErrors&&r.graphQLErrors.length>0&&g?.error(r.graphQLErrors[0].message)});const B=r=>{F({groupId:d.value?.id,memberId:r.id},{context:{oldMember:r}})},K=r=>{r.id&&(r.role===t.MODERATOR&&D(r,t.ADMINISTRATOR),r.role===t.MEMBER&&D(r,t.MODERATOR))},X=r=>{r.id&&(r.role===t.MODERATOR&&D(r,t.MEMBER),r.role===t.ADMINISTRATOR&&D(r,t.MODERATOR))},{mutate:Z,onDone:ee,onError:re}=C(Ae,{refetchQueries:[{query:N,variables:{groupName:x.value,page:f.value,limit:T,roles:v.value}}]});ee(()=>{g?.success(o("The member was approved"))}),re(r=>{console.error(r),r.graphQLErrors&&r.graphQLErrors.length>0&&g?.error(r.graphQLErrors[0].message)});const oe=r=>{r.id&&B(r)},{mutate:ae,onDone:te,onError:ne}=C(we,()=>({refetchQueries:[{query:N,variables:{groupName:k.preferredUsername,page:f.value,limit:T,roles:v.value}}]}));te(({data:r,context:l})=>{let _;switch(console.debug("onUpdateMutationDone",l),r?.role){case t.MODERATOR:_="The member role was updated to moderator";break;case t.ADMINISTRATOR:_="The member role was updated to administrator";break;case t.MEMBER:l?.oldMember.role===t.NOT_APPROVED?_="The member was approved":_="The member role was updated to simple member";break;default:_="The member role was updated"}g?.success(o(_))}),ne(r=>{console.error(r),r.graphQLErrors&&r.graphQLErrors.length>0&&g?.error(r.graphQLErrors[0].message)});const D=async(r,l)=>{ae({memberId:r.id,role:l,oldRole:r.role},{context:{oldMember:r}})},se=h(()=>le(t.ADMINISTRATOR)),le=r=>{const l=Array.isArray(r)?r:[r];return V.value?.total>0&&l.includes(V.value?.elements[0].role)},V=h(()=>ie.value?.memberships??{total:0,elements:[]}),{person:ie}=Me(x.value);return(r,l)=>{const _=M("breadcrumbs-nav"),ue=M("o-loading"),ce=M("o-select"),me=M("o-field"),y=M("o-table-column"),A=M("o-button"),de=M("o-table"),pe=M("o-notification");return i(),w("div",null,[d.value?(i(),c(_,{key:0,links:[{name:e(U).GROUP,params:{preferredUsername:e(O)(d.value)},text:e(S)(d.value)},{name:e(U).GROUP_SETTINGS,params:{preferredUsername:e(O)(d.value)},text:e(o)("Settings")},{name:e(U).GROUP_MEMBERS_SETTINGS,params:{preferredUsername:e(O)(d.value)},text:e(o)("Members")}]},null,8,["links"])):p("",!0),b(ue,{active:e(P)},null,8,["active"]),d.value&&se.value?(i(),w("section",Ne,[u("h1",null,n(e(o)("Group Members"))+" ("+n(d.value.members.total)+")",1),b(me,{class:"my-2",label:e(o)("Status"),horizontal:"","label-for":"group-members-status-filter"},{default:s(()=>[b(ce,{modelValue:e(v),"onUpdate:modelValue":l[0]||(l[0]=a=>G(v)?v.value=a:null),id:"group-members-status-filter"},{default:s(()=>[u("option",Pe,n(e(o)("Everything")),1),u("option",{value:e(t).ADMINISTRATOR},n(e(o)("Administrator")),9,Ie),u("option",{value:e(t).MODERATOR},n(e(o)("Moderator")),9,Ce),u("option",{value:e(t).MEMBER},n(e(o)("Member")),9,Se),u("option",{value:e(t).INVITED},n(e(o)("Invited")),9,Ue),u("option",{value:e(t).NOT_APPROVED},n(e(o)("Not approved")),9,xe),u("option",{value:e(t).REJECTED},n(e(o)("Rejected")),9,Be)]),_:1},8,["modelValue"])]),_:1},8,["label"]),I.value?(i(),c(de,{key:0,data:I.value.elements,ref:"queueTable",loading:e(P),paginated:"","backend-pagination":"","current-page":e(f),"onUpdate:currentPage":l[1]||(l[1]=a=>G(f)?f.value=a:null),"pagination-simple":!0,"aria-next-label":e(o)("Next page"),"aria-previous-label":e(o)("Previous page"),"aria-page-label":e(o)("Page"),"aria-current-label":e(o)("Current page"),total:I.value.total,"per-page":T,"backend-sorting":"","default-sort-direction":"desc","default-sort":["insertedAt","desc"],onPageChange:Y,onSort:l[2]||(l[2]=(a,E)=>$("sort",a,E))},{empty:s(()=>[b(Oe,{icon:"account",inline:""},{default:s(()=>[m(n(e(o)("No member matches the filters")),1)]),_:1})]),default:s(()=>[b(y,{field:"actor.preferredUsername",label:e(o)("Member")},{default:s(a=>[u("article",Ve,[a.row.actor.avatar?(i(),w("figure",Ge,[u("img",{class:"rounded-full object-cover h-full",src:a.row.actor.avatar.url,alt:a.row.actor.avatar.alt||"",height:"48",width:"48"},null,8,Qe)])):(i(),c(ge,{key:1,size:48})),u("div",Le,[u("div",je,[a.row.actor.name?(i(),w("span",$e,n(a.row.actor.name),1)):p("",!0),l[3]||(l[3]=u("br",null,null,-1)),u("span",qe,"@"+n(e(O)(a.row.actor)),1)])])])]),_:1},8,["label"]),b(y,{field:"role",label:e(o)("Role")},{default:s(a=>[a.row.role===e(t).ADMINISTRATOR?(i(),c(R,{key:0,variant:"info"},{default:s(()=>[m(n(e(o)("Administrator")),1)]),_:1})):a.row.role===e(t).MODERATOR?(i(),c(R,{key:1,variant:"info"},{default:s(()=>[m(n(e(o)("Moderator")),1)]),_:1})):a.row.role===e(t).MEMBER?(i(),c(R,{key:2},{default:s(()=>[m(n(e(o)("Member")),1)]),_:1})):a.row.role===e(t).NOT_APPROVED?(i(),c(R,{key:3,variant:"warning"},{default:s(()=>[m(n(e(o)("Not approved")),1)]),_:1})):a.row.role===e(t).REJECTED?(i(),c(R,{key:4,variant:"danger"},{default:s(()=>[m(n(e(o)("Rejected")),1)]),_:1})):a.row.role===e(t).INVITED?(i(),c(R,{key:5,variant:"warning"},{default:s(()=>[m(n(e(o)("Invited")),1)]),_:1})):p("",!0)]),_:1},8,["label"]),b(y,{field:"insertedAt",label:e(o)("Date")},{default:s(a=>[u("span",ze,[m(n(e(Ee)(a.row.insertedAt)),1),l[4]||(l[4]=u("br",null,null,-1)),m(n(e(Re)(a.row.insertedAt)),1)])]),_:1},8,["label"]),b(y,{field:"actions",label:e(o)("Actions")},{default:s(a=>[a.row.actor.id!==e(q)?.id?(i(),w("div",Je,[a.row.role===e(t).NOT_APPROVED?(i(),c(A,{key:0,variant:"success",onClick:E=>e(Z)({memberId:a.row.id}),"icon-left":"check"},{default:s(()=>[m(n(e(o)("Approve member")),1)]),_:1},8,["onClick"])):p("",!0),a.row.role===e(t).NOT_APPROVED?(i(),c(A,{key:1,variant:"danger",onClick:E=>oe(a.row),"icon-left":"exit-to-app"},{default:s(()=>[m(n(e(o)("Reject member")),1)]),_:1},8,["onClick"])):p("",!0),[e(t).MEMBER,e(t).MODERATOR].includes(a.row.role)?(i(),c(A,{key:2,onClick:E=>K(a.row),"icon-left":"chevron-double-up"},{default:s(()=>[m(n(e(o)("Promote")),1)]),_:1},8,["onClick"])):p("",!0),[e(t).ADMINISTRATOR,e(t).MODERATOR].includes(a.row.role)?(i(),c(A,{key:3,onClick:E=>X(a.row),"icon-left":"chevron-double-down"},{default:s(()=>[m(n(e(o)("Demote")),1)]),_:1},8,["onClick"])):p("",!0),a.row.role===e(t).MEMBER?(i(),c(A,{key:4,onClick:E=>B(a.row),variant:"danger","icon-left":"exit-to-app"},{default:s(()=>[m(n(e(o)("Remove")),1)]),_:1},8,["onClick"])):p("",!0)])):p("",!0)]),_:1},8,["label"])]),_:1},8,["data","loading","current-page","aria-next-label","aria-previous-label","aria-page-label","aria-current-label","total"])):p("",!0)])):!e(P)&&d.value?(i(),c(pe,{key:2},{default:s(()=>[m(n(e(o)("You are not an administrator for this group.")),1)]),_:1})):p("",!0)])}}});
1export{Xe as default}; 2//# sourceMappingURL=GroupMembers-DUXxBBj1.js.map
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.