mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2025-10-03 07:46:18 +00:00
2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{L as a}from"./localeText-BYI7KSyb.js";import{B as C,r as p,L as B,c as l,d as k,a as e,b as n,m as g,e as D,y as V,C as q,v as A,F as W,i as L,n as h,u as z,A as F,t as _,g as I,z as P,f as s,j as w,q as O,x as G,_ as N,o as J,w as U,S as R}from"./index-B-HmZe8h.js";const K={class:"p-3"},Y={key:0},Z={for:"PayloadURL",class:"form-label fw-bold text-muted"},Q=["disabled"],X={for:"ContentType",class:"form-label fw-bold text-muted"},ee=["disabled"],se={class:"form-label fw-bold text-muted"},te={class:"form-check form-switch mb-2"},le=["disabled"],oe={class:"form-check-label",for:"VerifySSL"},ne={key:0,class:"alert-danger alert rounded-3"},ae={class:"form-label fw-bold text-muted"},ie={class:"card rounded-3"},de={class:"card-body d-flex gap-2 flex-column"},ue={class:"d-flex gap-2"},re={class:"flex-grow-1"},ce=["disabled","onUpdate:modelValue"],be={class:"flex-grow-1"},ve=["disabled","onUpdate:modelValue"],me=["onClick"],fe={class:"form-label fw-bold text-muted"},pe={class:"form-check form-check-inline"},ke=["disabled","id","value"],ye=["for"],_e={class:"form-label fw-bold text-muted"},he={class:"form-check form-switch mb-2"},xe=["disabled"],Se={class:"form-check-label",for:"IsActive"},ge={key:0,class:"alert alert-danger rounded-3"},we={class:"d-flex gap-2"},$e={class:"d-flex align-items-center"},He={class:"mb-0"},T=C({__name:"addWebHook",props:["webHook"],emits:["refresh","delete"],async setup(u,{emit:f}){let r,i;const o=p({ContentType:String,Headers:Object,IsActive:Boolean,Notes:String,PayloadURL:String,SubscribedActions:Array,VerifySSL:Boolean,WebHookID:String}),m=u;m.webHook?o.value={...m.webHook}:([r,i]=B(()=>I("/api/webHooks/createWebHook",{},S=>{o.value=S.data})),await r,i());const y=p({peer_created:"Peer Created",peer_deleted:"Peer Deleted",peer_updated:"Peer Updated"}),x=f,d=p(!1),b=p(""),c=p(!1),M=async S=>{S&&S.preventDefault(),c.value=!0,await P("/api/webHooks/updateWebHook",o.value,t=>{t.status?x("refresh"):(d.value=!0,b.value=t.message),c.value=!1})},j=async()=>{c.value=!0,await P("/api/webHooks/deleteWebHook",o.value,S=>{S.status?x("delete"):(d.value=!0,b.value=S.message),c.value=!1})};return(S,t)=>(s(),l("div",K,[u.webHook?k("",!0):(s(),l("div",Y,[e("h6",null,[n(a,{t:"Add Webhook"})]),e("p",null,[n(a,{t:"WGDashboard will sent a POST Request to the URL below with details of any subscribed events."})])])),e("form",{onSubmit:t[7]||(t[7]=v=>M(v)),class:"d-flex flex-column gap-2"},[e("div",null,[e("label",Z,[e("small",null,[n(a,{t:"Payload URL"}),t[8]||(t[8]=D("* "))])]),g(e("input",{required:"",disabled:c.value,id:"PayloadURL","onUpdate:modelValue":t[0]||(t[0]=v=>o.value.PayloadURL=v),class:"form-control rounded-3",type:"url"},null,8,Q),[[V,o.value.PayloadURL]])]),e("div",null,[e("label",X,[e("small",null,[n(a,{t:"Content Type"}),t[9]||(t[9]=D("* "))])]),g(e("select",{disabled:c.value,id:"ContentType","onUpdate:modelValue":t[1]||(t[1]=v=>o.value.ContentType=v),class:"form-select rounded-3",required:""},t[10]||(t[10]=[e("option",{value:"application/json"}," application/json ",-1),e("option",{value:"application/x-www-form-urlencoded"}," application/x-www-form-urlencoded ",-1)]),8,ee),[[q,o.value.ContentType]])]),e("div",null,[e("label",se,[e("small",null,[n(a,{t:"Verify SSL"})])]),e("div",null,[e("div",te,[g(e("input",{disabled:c.value,"onUpdate:modelValue":t[2]||(t[2]=v=>o.value.VerifySSL=v),class:"form-check-input",type:"checkbox",role:"switch",id:"VerifySSL"},null,8,le),[[A,o.value.VerifySSL]]),e("label",oe,[n(a,{t:o.value.VerifySSL?"Enabled":"Disabled"},null,8,["t"])])]),o.value.VerifySSL?k("",!0):(s(),l("div",ne,[t[11]||(t[11]=e("i",{class:"bi bi-exclamation-triangle-fill me-2"},null,-1)),n(a,{t:"We highly suggest to enable SSL verification"})]))])]),e("div",null,[e("label",ae,[e("small",null,[n(a,{t:"Custom Headers"})])]),e("div",ie,[e("div",de,[(s(!0),l(W,null,L(o.value.Headers,(v,$)=>(s(),l("div",ue,[e("div",re,[g(e("input",{class:"form-control rounded-3 form-control-sm",disabled:c.value,"onUpdate:modelValue":H=>v.key=H,placeholder:"Key"},null,8,ce),[[V,v.key]])]),e("div",be,[g(e("input",{class:"form-control rounded-3 form-control-sm",disabled:c.value,"onUpdate:modelValue":H=>v.value=H,placeholder:"Value"},null,8,ve),[[V,v.value]])]),e("button",{class:h([{disabled:c.value},"btn btn-sm bg-danger-subtle text-danger-emphasis border-danger-subtle rounded-3"]),type:"button",onClick:H=>delete o.value.Headers[$]},t[12]||(t[12]=[e("i",{class:"bi bi-trash-fill"},null,-1)]),10,me)]))),256)),e("button",{type:"button",class:h([{disabled:c.value},"btn btn-sm bg-primary-subtle text-primary-emphasis border-primary-subtle rounded-3"]),onClick:t[3]||(t[3]=v=>o.value.Headers[z(F)().toString()]={key:"",value:""})},[t[13]||(t[13]=e("i",{class:"bi bi-plus-lg me-2"},null,-1)),n(a,{t:"Header"})],2)])])]),t[15]||(t[15]=e("hr",null,null,-1)),e("div",null,[e("label",fe,[e("small",null,[n(a,{t:"Subscribed Actions"})])]),e("div",null,[(s(!0),l(W,null,L(y.value,(v,$)=>(s(),l("div",pe,[g(e("input",{class:"form-check-input",disabled:o.value.SubscribedActions.length===1&&o.value.SubscribedActions.includes($)||c.value,type:"checkbox",id:$,value:$,"onUpdate:modelValue":t[4]||(t[4]=H=>o.value.SubscribedActions=H)},null,8,ke),[[A,o.value.SubscribedActions]]),e("label",{class:"form-check-label",for:$},_(v),9,ye)]))),256))])]),t[16]||(t[16]=e("hr",null,null,-1)),e("div",null,[e("label",_e,[e("small",null,[n(a,{t:"Enable Webhook"})])]),e("div",null,[e("div",he,[g(e("input",{disabled:c.value,"onUpdate:modelValue":t[5]||(t[5]=v=>o.value.IsActive=v),class:"form-check-input",type:"checkbox",role:"switch",id:"IsActive"},null,8,xe),[[A,o.value.IsActive]]),e("label",Se,[n(a,{t:o.value.IsActive?"Yes":"No"},null,8,["t"])])])])]),d.value?(s(),l("div",ge,_(b.value),1)):k("",!0),e("div",we,[e("button",{type:"submit",class:h([{disabled:c.value},"ms-auto btn bg-success-subtle text-success-emphasis border-success-subtle rounded-3"])},[n(a,{t:"Save"})],2)]),u.webHook?(s(),l(W,{key:1},[t[14]||(t[14]=e("hr",null,null,-1)),e("div",$e,[e("h6",He,[n(a,{t:"Danger Zone"})]),e("button",{onClick:t[6]||(t[6]=v=>j()),type:"button",class:h([{disabled:c.value},"btn bg-danger-subtle text-danger-emphasis border-danger-subtle rounded-3 ms-auto"])},[n(a,{t:"Delete"})],2)])],64)):k("",!0)],32)]))}}),We={class:"d-flex flex-column gap-3"},Le={class:"text-muted"},Ce={key:0},De={key:1},Ve={key:2},Ae={class:"d-flex gap-4 align-items-center"},Ue={class:"text-muted"},Ie={key:0},Pe={key:1},Re={class:"text-muted"},Te={class:"table-responsive"},Be={class:"table"},Ne={scope:"col"},Ee={scope:"col"},Me={scope:"col"},je={style:{"white-space":"nowrap"}},qe={key:0},ze={key:1},Fe={key:2},Oe={style:{"white-space":"nowrap","overflow-x":"scroll"}},Ge={class:"bg-body-tertiary p-3 rounded-3"},Je={class:"mb-0"},E=C({__name:"webHookSession",props:["session"],setup(u){return(f,r)=>(s(),l("div",We,[e("div",null,[e("small",Le,[n(a,{t:"Status"})]),e("h3",{class:h({"text-success":u.session.Status===0,"text-danger":u.session.Status===1})},[u.session.Status===0?(s(),l("span",Ce,[r[0]||(r[0]=e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)),n(a,{t:"Success"})])):u.session.Status===1?(s(),l("span",De,[r[1]||(r[1]=e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),n(a,{t:"Failed"})])):u.session.Status===-1?(s(),l("span",Ve,[r[2]||(r[2]=e("i",{class:"spinner-border me-2"},null,-1)),n(a,{t:"Requesting..."})])):k("",!0)],2),e("div",Ae,[e("div",null,[e("small",Ue,[n(a,{t:"Started At"})]),e("h6",null,_(u.session.StartDate),1)]),u.session.EndDate?(s(),l("div",Ie,r[3]||(r[3]=[e("i",{class:"bi bi-arrow-right"},null,-1)]))):k("",!0),u.session.EndDate?(s(),l("div",Pe,[e("small",Re,[n(a,{t:"Ended At"})]),e("h6",null,_(u.session.EndDate),1)])):k("",!0)])]),e("div",null,[e("h6",null,[n(a,{t:"Logs"})]),e("div",Te,[e("table",Be,[e("thead",null,[e("tr",null,[e("th",Ne,[n(a,{t:"Datetime"})]),e("th",Ee,[n(a,{t:"Status"})]),e("th",Me,[n(a,{t:"Message"})])])]),e("tbody",null,[(s(!0),l(W,null,L([...u.session.Logs.Logs].reverse(),i=>(s(),l("tr",null,[e("td",je,_(i.LogTime),1),e("td",{style:{"white-space":"nowrap"},class:h({"text-success":i.Status===0,"text-danger":i.Status===1})},[i.Status===0?(s(),l("span",qe,r[4]||(r[4]=[e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)]))):i.Status===1?(s(),l("span",ze,r[5]||(r[5]=[e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)]))):i.Status===-1?(s(),l("span",Fe,r[6]||(r[6]=[e("i",{class:"bi bi-circle me-2"},null,-1)]))):k("",!0)],2),e("td",Oe,_(i.Message),1)]))),256))])])])]),e("div",null,[e("h6",null,[n(a,{t:"Data"})]),e("div",Ge,[e("pre",Je,[e("code",null,_(JSON.stringify(u.session.Data,null,4)),1)])])])]))}}),Ke={class:"card"},Ye={class:"card-body"},Ze={key:0},Qe={key:1},Xe={key:2},es=C({__name:"previousWebHookSession",props:["session"],setup(u){const f=p(!0);return(r,i)=>(s(),l("div",Ke,[e("div",Ye,[e("p",{class:"d-flex mb-0",role:"button",onClick:i[0]||(i[0]=o=>f.value=!f.value)},[e("span",{class:h({"text-success":u.session.Status===0,"text-danger":u.session.Status===1})},[u.session.Status===0?(s(),l("span",Ze,i[1]||(i[1]=[e("i",{class:"bi bi-check-circle-fill me-2"},null,-1)]))):u.session.Status===1?(s(),l("span",Qe,i[2]||(i[2]=[e("i",{class:"bi bi-x-circle-fill me-2"},null,-1)]))):u.session.Status===-1?(s(),l("span",Xe,i[3]||(i[3]=[e("i",{class:"spinner-border spinner-border-sm me-2"},null,-1)]))):k("",!0)],2),D(" "+_(u.session.StartDate)+" ",1),i[4]||(i[4]=e("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),f.value?k("",!0):(s(),w(E,{key:0,session:u.session,class:"mt-2"},null,8,["session"]))])]))}}),ss={key:0},ts={class:"p-3"},ls={class:"mb-3"},os={key:0,class:"border-top p-3"},ns={class:"d-flex flex-column gap-2"},as={key:1,class:"p-3"},is=C({__name:"webHookSessions",props:["webHook"],async setup(u){let f,r;const i=u,o=p([]),m=p(void 0),y=async()=>{await I("/api/webHooks/getWebHookSessions",{WebHookID:i.webHook.WebHookID},d=>{o.value=d.data})};[f,r]=B(()=>y()),await f,r();const x=O(()=>{if(o.value)return o.value[0]});return m.value=setInterval(()=>{y()},5e3),G(()=>{clearInterval(m.value)}),(d,b)=>x.value?(s(),l("div",ss,[e("div",ts,[e("h6",ls,[n(a,{t:"Latest Session"})]),(s(),w(E,{session:x.value,key:x.value.WebHookSessionID},null,8,["session"]))]),o.value.length>1?(s(),l("div",os,[e("h6",null,[n(a,{t:"Previous Sessions"})]),e("div",ns,[(s(!0),l(W,null,L(o.value.slice(1),c=>(s(),w(es,{session:c,key:c.WebHookSessionID},null,8,["session"]))),128))])])):k("",!0)])):(s(),l("div",as,b[0]||(b[0]=[e("div",{class:"bg-body-tertiary p-3 w-100 d-flex rounded-3"},[e("h6",{class:"mb-0 m-auto"},"No Sessions")],-1)])))}}),ds=N(is,[["__scopeId","data-v-f8ce5659"]]),us={class:"text-body w-100 h-100 pb-2 position-relative"},rs={class:"w-100 h-100 card rounded-3"},cs={class:"border-bottom z-0"},bs={class:"d-flex text-body align-items-center sticky-top p-3 bg-body-tertiary rounded-top-3",style:{"border-top-right-radius":"0 !important"}},vs={class:"my-2"},ms={key:0,class:"row h-100 g-0"},fs={class:"col-sm-4 border-end d-flex flex-column clientListContainer"},ps={class:"d-flex flex-column overflow-y-scroll",style:{flex:"1 0 0"}},ks={class:"list-group d-flex flex-column d-flex h-100"},ys=["onClick"],_s={class:"mb-0 fw-bold text-body url"},hs={class:"url mb-0"},xs={key:1,class:"flex-grow-1 d-flex text-muted"},Ss={key:0,class:"col-sm-8 clientViewerContainer d-flex flex-column"},gs={class:"overflow-scroll",style:{flex:"1 0 0"}},ws={class:"navbar navbar-expand-lg bg-body-tertiary sticky-top"},$s={class:"container-fluid"},Hs={class:"navbar-nav gap-2"},Ws={class:"nav-item"},Ls={class:"nav-item"},Cs={class:"p-3"},Ds=C({__name:"dashboardWebHooks",setup(u){const f=p([]),r=p(!1);J(async()=>{await i(),r.value=!0});const i=async()=>{await I("/api/webHooks/getWebHooks",{},x=>{f.value=x.data})},o=p(!1),m=p(void 0),y=p("edit");return(x,d)=>(s(),l("div",us,[e("div",rs,[e("div",cs,[e("div",bs,[e("h6",vs,[d[7]||(d[7]=e("i",{class:"bi bi-plug-fill me-2"},null,-1)),n(a,{t:"Webhooks"})]),o.value?(s(),l("button",{key:1,class:"btn bg-secondary-subtle text-secondary-emphasis border-1 border-secondary-subtle rounded-3 shadow-sm ms-auto",onClick:d[1]||(d[1]=b=>o.value=!1)},[d[9]||(d[9]=e("i",{class:"bi bi-chevron-left me-2"},null,-1)),n(a,{t:"Back"})])):(s(),l("button",{key:0,class:"btn bg-primary-subtle text-primary-emphasis border-1 border-primary-subtle rounded-3 shadow-sm ms-auto",onClick:d[0]||(d[0]=b=>{o.value=!0,m.value=void 0})},[d[8]||(d[8]=e("i",{class:"bi bi-plus-circle-fill me-2"},null,-1)),n(a,{t:"Webhook"})]))])]),o.value?(s(),w(R,{key:1},{default:U(()=>[n(T,{onRefresh:d[6]||(d[6]=b=>{m.value=void 0,o.value=!1,i()})})]),_:1})):(s(),l("div",ms,[e("div",fs,[e("div",ps,[e("div",ks,[f.value.length>0?(s(!0),l(W,{key:0},L(f.value,b=>(s(),l("a",{role:"button",onClick:c=>m.value=b,class:h([{active:m.value?.WebHookID===b.WebHookID},"list-group-item list-group-item-action"]),"aria-current":"true"},[e("p",_s,_(b.PayloadURL),1),e("p",hs,[n(a,{t:"Subscribed Actions"}),D(": "+_(b.SubscribedActions.join(", ")),1)])],10,ys))),256)):(s(),l("div",xs,[n(a,{t:"No Webhooks",class:"m-auto"})]))])])]),m.value?(s(),l("div",Ss,[e("div",gs,[e("nav",ws,[e("div",$s,[e("div",null,[e("ul",Hs,[e("li",Ws,[e("a",{onClick:d[2]||(d[2]=b=>y.value="edit"),class:h([{active:y.value==="edit"},"nav-link rounded-3"]),role:"button"},"Edit",2)]),e("li",Ls,[e("a",{class:h([{active:y.value==="sessions"},"nav-link rounded-3"]),onClick:d[3]||(d[3]=b=>y.value="sessions"),role:"button"},"Sessions",2)])])])])]),y.value==="edit"?(s(),w(T,{key:m.value,onDelete:d[4]||(d[4]=b=>{i(),m.value=void 0}),webHook:m.value,onRefresh:d[5]||(d[5]=b=>i())},null,8,["webHook"])):y.value==="sessions"?(s(),w(R,{key:1},{fallback:U(()=>[e("div",Cs,[n(a,{t:"Loading..."})])]),default:U(()=>[(s(),w(ds,{key:m.value,webHook:m.value},null,8,["webHook"]))]),_:1})):k("",!0)])])):k("",!0)]))])]))}}),Us=N(Ds,[["__scopeId","data-v-892cc8ec"]]);export{Us as default};
|