Files
WGDashboard/src/static/app/dist/assets/peerAssignModal-B4d2liOl.js

2 lines
7.5 KiB
JavaScript
Raw Normal View History

2025-07-18 18:50:38 +08:00
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-