WGDashboard/src/static/app/dist/assets/newConfiguration-BEkajTWZ.js

2 lines
8.9 KiB
JavaScript
Raw Normal View History

2024-11-07 10:37:11 +08:00
import{p as b}from"./index-L60y6kc9.js";import{_ as y,W as _,q as w,c as d,b as s,d as o,w as C,m as l,s as u,t as c,f as g,j as m,a as r}from"./index-4ShQxWfe.js";import{L as P}from"./localeText-OuI4aqO1.js";const x={name:"newConfiguration",components:{LocaleText:P},setup(){return{store:_()}},data(){return{newConfiguration:{ConfigurationName:"",Address:"",ListenPort:"",PrivateKey:"",PublicKey:"",PresharedKey:"",PreUp:"",PreDown:"",PostUp:"",PostDown:""},numberOfAvailableIPs:"0",error:!1,errorMessage:"",success:!1,loading:!1}},created(){this.wireguardGenerateKeypair()},methods:{wireguardGenerateKeypair(){const t=window.wireguard.generateKeypair();this.newConfiguration.PrivateKey=t.privateKey,this.newConfiguration.PublicKey=t.publicKey,this.newConfiguration.PresharedKey=t.presharedKey},async saveNewConfiguration(){this.goodToSubmit&&(this.loading=!0,await w("/api/addWireguardConfiguration",this.newConfiguration,async t=>{t.status?(this.success=!0,await this.store.getConfigurations(),this.$router.push(`/configuration/${this.newConfiguration.ConfigurationName}/peers`)):(this.error=!0,this.errorMessage=t.message,document.querySelector(`#${t.data}`).classList.remove("is-valid"),document.querySelector(`#${t.data}`).classList.add("is-invalid"),this.loading=!1)}))}},computed:{goodToSubmit(){let t=["ConfigurationName","Address","ListenPort","PrivateKey"],e=[...document.querySelectorAll("input[required]")];return t.find(a=>this.newConfiguration[a].length===0)===void 0&&e.find(a=>a.classList.contains("is-invalid"))===void 0}},watch:{"newConfiguration.Address"(t){let e=document.querySelector("#Address");e.classList.remove("is-invalid","is-valid");try{if(t.trim().split("/").filter(f=>f.length>0).length!==2)throw Error();let a=b(t),p=a.end-a.start;this.numberOfAvailableIPs=p.toLocaleString(),e.classList.add("is-valid")}catch{this.numberOfAvailableIPs="0",e.classList.add("is-invalid")}},"newConfiguration.ListenPort"(t){let e=document.querySelector("#ListenPort");e.classList.remove("is-invalid","is-valid"),t<0||t>65353||!Number.isInteger(t)?e.classList.add("is-invalid"):e.classList.add("is-valid")},"newConfiguration.ConfigurationName"(t){let e=document.querySelector("#ConfigurationName");e.classList.remove("is-invalid","is-valid"),!/^[a-zA-Z0-9_=+.-]{1,15}$/.test(t)||t.length===0||this.store.Configurations.find(a=>a.Name===t)?e.classList.add("is-invalid"):e.classList.add("is-valid")},"newConfiguration.PrivateKey"(t){let e=document.querySelector("#PrivateKey");e.classList.remove("is-invalid","is-valid");try{wireguard.generatePublicKey(t),e.classList.add("is-valid")}catch{e.classList.add("is-invalid")}}}},L={class:"mt-5 text-body"},K={class:"container mb-4"},k={class:"mb-4 d-flex align-items-center gap-4"},A={class:"mb-0"},U={class:"card rounded-3 shadow"},S={class:"card-header"},N={class:"card-body"},q=["disabled"],D={class:"invalid-feedback"},I={key:0},O={key:1},T={class:"mb-0"},$={class:"card rounded-3 shadow"},V={class:"card-header"},M={class:"card-body",style:{"font-family":"var(--bs-font-monospace)"}},R={class:"mb-2"},B={class:"text-muted fw-bold mb-1"},E={class:"input-group"},G=["disabled"],W={class:"text-muted fw-bold mb-1"},j={class:"card rounded-3 shadow"},z={class:"card-header"},Z={class:"card-body"},F=["disabled"],H={class:"invalid-feedback"},J={key:0},Q={key:1},X={class:"card rounded-3 shadow"},Y={class:"card-header d-flex align-items-center"},ss={class:"badge rounded-pill text-bg-success ms-auto"},es={class:"card-body"},ts=["disabled"],is={class:"invalid-feedback"},os={key:0},ns={key:1},as={class:"accordion",id:"newConfigurationOptionalAccordion"},ds={class:"accordion-item"},rs={class:"accordion-header"},ls={class:"accordion-button collapsed",type:"button","data-bs-toggle":"collapse","data-bs-target":"#newConfigurationOptionalAccordionCollapse"},us={id:"newConfigurationOptionalAccordionCollapse",class:"accordion-collapse collapse","data-bs-parent":"#newConfigurationOptionalAccordion"},cs={class:"accordion-body d-flex flex-column gap-3"},fs={class:"card rounded-3"},ps={class:"card-body"},gs={class:"card rounded-3"},ms={class