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