1import{f as Y,b as E,p as Z,l as ee,o as te,s as se}from"./vendor-servebolt-BwnDPTSW.js";import{B as M,g as ae,u as ne,E as G}from"./index-Dx3_aswN.js";import{u as V}from"./vendor-i18n-BAJQGTf1.js";import{D as oe,_ as le}from"./DisconnectDatabaseModal.vue_vue_type_style_index_0_lang-IcCF3oEO.js";import{d as z,f as P,p as $,G as e,C as r,u as a,k as f,x as B,y as j,E as R,r as o,av as F,c as N,ar as q,m as l,F as T,B as K,L as H,aw as J,w as ie}from"./vendor-D7HY6vXs.js";import{_ as re}from"./NoDataBlock-Df1VQ7_D.js";import{_ as ce}from"./BreadcrumbWrapper.vue_vue_type_script_setup_true_lang-C_IMLSFP.js";import{_ as de}from"./DisabledEnvironmentMessage.vue_vue_type_script_setup_true_lang-UUSrilOj.js";import"./vendor-auth0-B88dyU-W.js";import"./vendor-toast-BA6wVAZy.js";import"./alert-triangle-oW83KVgr.js";const ue={class:"base-border p-[1rem] md:p-[1.5rem]"},me={class:"flex justify-between"},pe={class:"text-p font-bold mb-[1.875rem]"},be={class:"w-full md:w-[80%] pb-[1rem] md:pb-[1.5rem]"},ve={class:"mb-[17px]"},fe={class:"mt-[1.5rem]"},_e=z({__name:"AddDatabaseBlock",emits:["close","init"],setup(c,{emit:I}){const{t:n}=V({useScope:"global"}),m=I,t=o(null),p=o(null),_=o(!1),s=o([]),k=q(),C=F(),y=C.state.accessTokenObject?.isServeboltAdmin||C.state.accessTokenObject?.isServeboltStaff,x=N(()=>Number(k.params.boltId)),S=N(()=>Number(k.params.envId)),i=N(()=>s.value);P(g);async function g(){try{const u=(await new M().getDatabases(x.value,"",y)).getData();s.value=(u?.data??[]).map(b=>({value:b.id,label:b.attributes.dbName}))}catch(d){console.error("Error occurred during search:",d)}}async function D(){if(t.value==null)return;const d={databaseIds:[Number(t.value)],environmentIds:[S.value]};_.value=!0;try{await new oe().connect(d,y),ae(n("dbConnected")),m("close"),m("init")}catch(u){p.value=u.response.data.errors[0].detail}finally{_.value=!1}}return(d,u)=>(l(),$("div",ue,[e("div",me,[e("p",pe,r(d.$t("connectADatabase")),1),e("span",{class:"underline cursor-pointer text-[13px]",onClick:u[0]||(u[0]=b=>m("close"))},r(a(n)("close")),1)]),e("div",be,[e("div",ve,[f(a(Y),{modelValue:t.value,"onUpdate:modelValue":u[1]||(u[1]=b=>t.value=b),label:d.$t("selectBoxOfAllDatabases"),sid:"database",dataKey:"label",inputValue:"value",placeholder:d.$t("name"),searchable:"",options:i.value},null,8,["modelValue","label","placeholder","options"])])]),f(a(E),{text:a(n)("connectSelectedDatabase"),type:"primary",size:"lg",state:_.value?"loading":"",onClick:D},null,8,["text","state"]),e("div",fe,[p.value?(l(),B(a(Z),{key:0},{default:j(()=>[e("span",null,r(p.value),1)]),_:1})):R("",!0)])]))}}),xe={class:"flex flex-col"},ge={class:"grid lg:grid-cols-[1fr_1fr_1fr_1fr_2fr] grid-cols-2 gap-2 items-start lg:items-center min-h-[113px]"},$e={class:"flex flex-col"},ye={class:"text-[10px] mb-[6px]"},he={class:"text-14 mb-0"},Ie={class:"flex flex-col"},ke={class:"text-[10px] mb-[6px]"},De={class:"text-14 mb-0"},we={class:"flex flex-col"},Ne={class:"text-[10px] mb-[6px]"},Se={class:"text-14 mb-0"},Be={class:"flex flex-col"},Ce={class:"text-[10px] mb-[6px]"},Le={class:"flex gap-[10px]"},Ae=z({__name:"InformationBlock",props:{el:{type:Object,default:()=>({})},loading:{type:Boolean,default:!1}},emits:["init"],setup(c,{emit:I}){const n=o(!1),m=c,t=ne("tailwind"),p=J(),_=q(),s=o(),k=N(()=>Number(_.params.envId)),{t:C}=V({useScope:"global"}),y=N(()=>t.breakpoint==="md"||t.breakpoint==="lg"||t.breakpoint==="xl"||t.breakpoint==="2xl");function x(){p.push({name:"environment-databases.settings",params:{dbId:m.el.id}})}function S(i){s.value=i,n.value=!0}return(i,g)=>(l(),$(T,null,[e("div",xe,[f(a(ee),{class:"mb-[20px] cursor-pointer",onClick:x},{default:j(()=>[K(r(c.el.name),1)]),_:1}),e("div",ge,[e("div",$e,[e("p",ye,r(i.$t("databaseSize")),1),e("p",he,r(c.el.size)+" MiB",1)]),e("div",Ie,[e("p",ke,r(i.$t("databaseName")),1),e("p",De,r(c.el.dbName),1)]),e("div",we,[e("p",Ne,r(i.$t("username")),1),e("p",Se,r(c.el.username),1)]),e("div",Be,[e("p",Ce,r(i.$t("inUseOn")),1),(l(!0),$(T,null,H(c.el.inUse,(D,d)=>(l(),$("p",{class:"text-14 mb-0",key:d},r(D),1))),128))]),e("div",Le,[f(a(E),{text:i.$t("removeRelation"),size:y.value?"sm":"md",type:"outline",onClick:g[0]||(g[0]=D=>S(c.el.id))},null,8,["text","size"]),f(a(E),{text:i.$t("settings"),size:y.value?"sm":"md",type:"outline",onClick:x},null,8,["text","size"])])])]),n.value?(l(),B(le,{key:0,dbId:s.value,envId:k.value,onClose:g[1]||(g[1]=D=>n.value=!1)},null,8,["dbId","envId"])):R("",!0)],64))}}),Ee={key:0},ze={key:1},Oe=z({__name:"InformationList",props:{dataList:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1}},emits:["init"],setup(c,{emit:I}){const n=I;return(m,t)=>c.loading?(l(),$("div",ze,[f(a(te),{class:"mb-4 h-[250px] flex justify-center items-center text-gray-400"})])):(l(),$("div",Ee,[(l(!0),$(T,null,H(c.dataList,(p,_)=>(l(),$("div",{class:"border border-solid border-border rounded-base p-[1rem] md:px-[1.5rem] mb-[10px] py-[20px]",key:_},[f(Ae,{el:p,loading:c.loading,onInit:t[0]||(t[0]=s=>n("init"))},null,8,["el","loading"])]))),128))]))}}),Te={class:"mb-[50px] md:mb-[86px] flex flex-col"},Ve={class:"text-p"},je={class:"base-border p-[1rem] md:p-[1.5rem] min-w-[320px]"},Re={class:"flex-1 w-full flex flex-col mb-[1.5rem]"},qe={class:"mb-[1rem] md:mb-[1.5rem]"},Ye=z({__name:"DatabasesList",setup(c){const{t:I}=V({useScope:"global"});let n=o(!1);const m=o([]),t=o([]);let p=o([]);const _=J(),s=q(),k=o(!0);let C=o({});const y=o(s.query&&s.query.q?s.query.q:""),x=o(!1),S=o(),i=F(),g=N(()=>Number(s.params.envId)),D=N(()=>Number(s.params.boltId));let d=o();const u=i.state.accessTokenObject?.isServeboltAdmin||i.state.accessTokenObject?.isServeboltStaff;P(b),ie(y,()=>{y.value||(C.value={},b())});async function b(){n.value=!0;const w=[],h=Number(s.params.envId),v=new G().getDatabases(g.value,u),O=new G().get(h,u),X=new M().get(Number(s.params.boltId),u);w.push(v,O,X);try{const[L,A,U]=await Promise.allSettled(w);U.status==="fulfilled"&&(d.value=U.value.name()||""),A.status==="fulfilled"&&(i.dispatch("addEnvIformation",A?.value?.data),k.value=A?.value?.data?.attributes?.enabled||!1,S.value=A?.value.name()||"",p.value=[{name:I("bolts"),route:{name:"bolts"}},{name:d.value,route:{name:"specific-bolt",params:{boltId:String(s.params.boltId)}}},{name:S.value,route:{name:"environments.specific-wrapper",params:{boltId:String(s.params.boltId),envId:String(s.params.envId)}}}]),L.status==="fulfilled"?m.value=L?.value?.data:m.value=[],Q(m.value)}catch(L){console.log(L)}finally{n.value=!1}}function Q(w){const h=w.map(v=>({id:Number(v.id),name:v.attributes.name||"",size:v.attributes.size,dbName:v.attributes.dbName||"",username:v.attributes.dbUser||"",inUse:v.attributes.environments.map(O=>O.name)}));t.value=h}function W(){_.push({name:"environments.specific-wrapper",params:{boltId:D.value,envId:g.value}})}return(w,h)=>(l(),$("div",null,[f(de,{status:k.value},null,8,["status"]),f(ce,{loading:a(n),items:a(p),count:3},null,8,["loading","items"]),e("div",Te,[f(a(se),null,{default:j(()=>[K(r(a(I)("connectedDatabases")),1)]),_:1})]),e("p",Ve," Explore the list of databases available on this Bolt and unlock the potential for seamless usage across all "+r(w.$t("environments").toLowerCase())+" on a Bolt. ",1),e("div",je,[e("div",Re,[e("div",qe,[x.value?(l(),B(_e,{key:1,onClose:h[1]||(h[1]=v=>x.value=!1),onInit:b}
1)):(l(),B(a(E),{key:0,class:"self-start md:mr-[1.5rem]",text:w.$t("connectADatabase"),type:"outline",iconAnimated:"",iconPosition:"before",onClick:h[0]||(h[0]=v=>x.value=!0)},null,8,["text"]))]),a(n)||t.value.length?(l(),B(Oe,{key:0,dataList:t.value,loading:a(n),onGoToSpecific:W,onInit:b},null,8,["dataList","loading"])):!a(n)&&!t.value.length&&!x.value?(l(),B(re,{key:1,text:"No data. Connect a database"})):R("",!0)])])]))}});export{Ye as default}; 2//# sourceMappingURL=DatabasesList-BZJ2VaQX.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.