Files
WGDashboard/src/static/app/dist/assets/peerAssignModal-B4d2liOl.js
Donald Zou f3cae0b005 Build
2025-08-20 15:10:13 +08:00

2 lines
7.5 KiB
JavaScript

import{L as v}from"./localeText-C7TZPgfG.js";import{a5 as E,r as C,g as w,z as A,q as N,c as o,f as a,a as e,t as h,F as $,i as k,u as b,n as x,b as _,E as P,m as B,y as L,e as T,k as D,d as G,_ as I,w as V,T as M,O as S}from"./index-Lcd4HoNp.js";const y=E("DashboardClientAssignmentStore",()=>{const r=C([]),p=C({}),n=C(!1),t=C(""),l=async()=>{await w("/api/clients/allClients",{},i=>{p.value=i.data})},m=i=>Object.values(p.value).flat().find(d=>d.ClientID===i),s=async(i,d)=>{await w("/api/clients/assignedClients",{ConfigurationName:i,Peer:d},u=>{r.value=u.data})};return{assignments:r,getAssignedClients:s,getClients:l,clients:p,unassignClient:async(i,d,u)=>{n.value=!0,await A("/api/clients/unassignClient",{AssignmentID:u},async f=>{f.status&&await s(i,d),n.value=!1})},assignClient:async(i,d,u)=>{t.value=u,await A("/api/clients/assignClient",{ConfigurationName:i,Peer:d,ClientID:u},async f=>{f.status&&await s(i,d),t.value=""})},getClientById:m,unassigning:n,assigning:t}}),O={class:"d-flex flex-column gap-2"},j={class:"mb-0"},U={key:0,class:"d-flex flex-column gap-2"},z={class:"bg-body-secondary rounded-3 text-start p-2 d-flex"},F={class:"d-flex flex-column"},q={class:"mb-0"},H={class:"text-muted"},J=["onClick"],K={key:0,class:"spinner-border spinner-border-sm"},Q={key:1,class:"bi bi-plus-circle-fill"},R={key:1},W={class:"text-muted"},X={__name:"searchClientsGroup",props:["group","groupName","searchString"],emits:["count","assign"],setup(r,{emit:p}){const n=r,t=p,l=y(),m=N(()=>{let s=n.group.filter(g=>!l.assignments.map(c=>c.Client.ClientID).includes(g.ClientID));if(n.searchString){let g=s.filter(c=>c.Name&&c.Name.includes(n.searchString)||c.Email&&c.Email.includes(n.searchString));return t("count",g.length),g}return t("count",s.length),s});return(s,g)=>(a(),o("div",O,[e("h6",j,[e("small",null,h(r.groupName),1)]),m.value.length>0?(a(),o("div",U,[(a(!0),o($,null,k(m.value,c=>(a(),o("div",z,[e("div",F,[e("small",q,h(c.Email),1),e("small",H,h(c.Name?c.Name:"No Name"),1)]),e("button",{onClick:i=>t("assign",c.ClientID),class:x([{disabled:b(l).assigning},"btn bg-success-subtle text-success-emphasis ms-auto"])},[b(l).assigning===c.ClientID?(a(),o("span",K)):(a(),o("i",Q))],10,J)]))),256))])):(a(),o("div",R,[e("small",W,[_(v,{t:"No result"})])]))]))}},Y={class:"p-3 bg-body-tertiary rounded-3 position-relative"},Z={for:"SearchClient",class:"form-label"},ee={class:"text-muted"},se={class:"w-100 rounded-3 d-flex flex-column gap-2"},te={class:"mt-1"},ne=["onClick"],ie={class:"p-3 border rounded-3 d-flex flex-column gap-2 overflow-y-scroll",style:{height:"400px"}},ae={__name:"searchClients",props:["clients","newAssignClients","assignments"],emits:["assign"],setup(r,{emit:p}){const n=y(),t=C(""),l=C(""),m=N(()=>t.value?{[t.value]:n.clients[t.value]}:n.clients),s=P({});Object.keys(n.clients).forEach(c=>s[c]=n.clients[c].length);const g=p;return(c,i)=>(a(),o("div",Y,[e("h6",null,[_(v,{t:"Assign to Clients"})]),e("label",Z,[e("small",ee,[_(v,{t:"Enter Email or Name to Search"})])]),B(e("input",{class:"form-control rounded-3 mb-2",id:"SearchClient","onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),type:"email"},null,512),[[L,l.value]]),e("div",se,[e("div",null,[i[3]||(i[3]=e("small",{class:"text-muted"},"Groups",-1)),e("div",te,[e("button",{class:x([{active:!t.value},"btn bg-primary-subtle text-primary-emphasis btn-sm me-2 rounded-3"]),onClick:i[1]||(i[1]=d=>t.value="")},[_(v,{t:"All"})],2),(a(!0),o($,null,k(b(n).clients,(d,u)=>(a(),o("button",{onClick:f=>t.value=u,class:x([{active:t.value===u},"btn bg-primary-subtle text-primary-emphasis btn-sm me-2 rounded-3"])},[T(h(u)+" ",1),e("span",{class:x(["ms-1 badge",[s[u]>0?"bg-primary":"bg-secondary"]])},h(s[u]),3)],10,ne))),256))])]),e("div",ie,[(a(!0),o($,null,k(m.value,(d,u)=>(a(),D(X,{onAssign:i[2]||(i[2]=f=>g("assign",f)),onCount:f=>s[u]=f,searchString:l.value,group:d,groupName:u},null,8,["onCount","searchString","group","groupName"]))),256))])])]))}},le={class:"bg-body-secondary rounded-3 text-start p-2 mb-2 assignment"},oe={key:0,class:"d-flex"},re={class:"d-flex flex-column"},ce={class:"text-muted"},de={key:1,class:"d-flex gap-2"},ue={class:"d-flex flex-column"},me={class:"text-muted"},ge={key:0,class:"spinner-border spinner-border-sm"},pe={key:1,class:"bi bi-check-lg"},_e={__name:"assignment",props:["assignment"],emits:["unassign"],setup(r,{emit:p}){const n=p,t=C(!1),l=y();return(m,s)=>(a(),o("div",le,[t.value?(a(),o("div",de,[e("div",ue,[e("small",null,[_(v,{t:"Are you sure to delete assignment for"})]),e("small",me,[_(v,{t:r.assignment.Client.Email+" in group "+(r.assignment.Client.ClientGroup?r.assignment.Client.ClientGroup:"Local")+"?"},null,8,["t"])])]),e("button",{onClick:s[1]||(s[1]=g=>n("unassign")),"aria-label":"Delete Assignment",class:x([{disabled:b(l).unassigning},"btn bg-danger-subtle text-danger-emphasis ms-auto"])},[b(l).unassigning?(a(),o("span",ge)):(a(),o("i",pe))],2),e("button",{class:x([{disabled:b(l).unassigning},"btn bg-secondary-subtle text-secondary-emphasis"]),onClick:s[2]||(s[2]=g=>t.value=!t.value),"aria-label":"Cancel Delete Assignment"},s[4]||(s[4]=[e("i",{class:"bi bi-x-lg"},null,-1)]),2)])):(a(),o("div",oe,[e("div",re,[e("small",null,h(r.assignment.Client.Email),1),e("small",ce,h(r.assignment.Client.Name?r.assignment.Client.Name+" | ":"")+h(r.assignment.Client.ClientGroup?r.assignment.Client.ClientGroup:"Local"),1)]),t.value?G("",!0):(a(),o("button",{key:0,onClick:s[0]||(s[0]=g=>t.value=!t.value),class:x([{disabled:b(l).unassigning},"btn bg-danger-subtle text-danger-emphasis ms-auto"]),"aria-label":"Delete Assignment"},s[3]||(s[3]=[e("i",{class:"bi bi-trash-fill"},null,-1)]),2))]))]))}},be={class:"p-3 bg-body-tertiary rounded-3 d-flex flex-column gap-2"},ve={class:"mb-0"},fe={key:0,class:"text-center"},he={class:"text-muted"},Ce={__name:"assignedClients",props:["configurationName","peer"],emits:["unassign"],setup(r,{emit:p}){const n=y();return(t,l)=>(a(),o("div",be,[e("h6",ve,[_(v,{t:"Assigned Clients"})]),_(M,{name:"list",tag:"div",class:"position-relative"},{default:V(()=>[(a(!0),o($,null,k(b(n).assignments,m=>(a(),D(_e,{assignment:m,key:m.AssignmentID,onUnassign:s=>b(n).unassignClient(r.configurationName,r.peer,m.AssignmentID)},null,8,["assignment","onUnassign"]))),128))]),_:1}),b(n).assignments.length===0?(a(),o("div",fe,[e("small",he,[_(v,{t:"No client assigned to this peer yet"})])])):G("",!0)]))}},xe=I(Ce,[["__scopeId","data-v-99c0844e"]]),ye={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},$e={class:"container d-flex h-100 w-100"},ke={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"700px"}},we={class:"card rounded-3 shadow flex-grow-1"},Ae={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},Se={class:"mb-0"},Ne={class:"card-body px-4 pb-4 d-flex gap-2 flex-column"},De={__name:"peerAssignModal",props:{selectedPeer:Object},emits:["close"],async setup(r,{emit:p}){let n,t;const l=r,m=p,s=y();s.clients.length>0?s.getClients():([n,t]=S(()=>s.getClients()),await n,t()),[n,t]=S(()=>s.getAssignedClients(l.selectedPeer.configuration.Name,l.selectedPeer.id)),await n,t();const g=async c=>{await s.assignClient(l.selectedPeer.configuration.Name,l.selectedPeer.id,c)};return(c,i)=>(a(),o("div",ye,[e("div",$e,[e("div",ke,[e("div",we,[e("div",Ae,[e("h4",Se,[_(v,{t:"Assign Peer to Client"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:i[0]||(i[0]=d=>m("close"))})]),e("div",Ne,[_(xe,{"configuration-name":l.selectedPeer.configuration.Name,peer:l.selectedPeer.id},null,8,["configuration-name","peer"]),_(ae,{onAssign:i[1]||(i[1]=d=>g(d))})])])])])]))}},Ee=I(De,[["__scopeId","data-v-b52659b4"]]);export{Ee as default};