Your IP : 216.73.216.189


Current Path : /proc/thread-self/root/snap/lxd/current/share/lxd-ui/assets/
Upload File :
Current File : //proc/thread-self/root/snap/lxd/current/share/lxd-ui/assets/CreateProfile-D20Mn-Wb.js

import{c as E,d as s,I as g,t as O,r as m,j as e,f as R,h as b,E as v,k as T,R as y,w as j,p as k,a2 as _}from"./index-BFGypnt-.js";import{y as w,c as Y,d as A,o as M}from"./YamlSwitch-BQqYYI1i.js";import{D as B,N as L,G as U,c as V,O as G,R as K,d as $,I as q,M as H,B as Q,e as z,h as J,a as W,f as X}from"./NetworkDevicePanel-DHptDuuK.js";import{c as Z}from"./useProfiles-CErbukD2.js";import{M as P,Y as n,P as ee,a as oe,D as ae,N as ie,G as te,b as se,O as re,R as me,S as ne,c as ce,d as le,B as pe,C as de}from"./ProfileDetailsForm-DfcZ9aQr.js";import{B as fe}from"./BaseLayout-ft99KK4_.js";import{F as ue}from"./FormFooterLayout-CMGxv4XX.js";import{Y as ye}from"./NetworkDefaultACLSelector-C5Ak_9zq.js";import{P as je}from"./ProfileRichChip-XiLIeCE5.js";import{s as Pe,c as xe,b as he,m as Se,a as Ne,d as Ce,e as Fe,p as Ie,f as De,g as Ee}from"./instanceAndProfilePayloads-DSYCnS-r.js";import{u as ge,p as x}from"./usePanelParams-CV5ZHNeu.js";import"./FormMenuItem-fhYfVpHc.js";import"./usePlacementGroups-C9iFT3T3.js";import"./AutoExpandingTextArea-WEdimI5c.js";import"./scroll-Dc7Cgzms.js";import"./ConfigurationTable-CmO6jSmV.js";import"./ConfigFieldDescription-CY0sdTp6.js";import"./useStoragePools-qBtKr1j9.js";import"./useClusterMembers-B29_ixY7.js";import"./cluster-members-CG6XHzn4.js";import"./ScrollableConfigurationTable-Cdfv_OdM.js";import"./StorageVolumeForm-CW2hs3vZ.js";import"./DiskSizeSelector-C_YZZUSe.js";import"./StoragePoolSelector-CIzPJc24.js";import"./StoragePoolSize-ChYxPd_8.js";import"./Meter-VGEmUMfL.js";import"./ScrollableForm-D-7nf2YI.js";import"./ProjectRichChip-CtiU36yR.js";import"./snapshots-DETOqD-5.js";import"./useResources-D4gdq2PK.js";import"./formChangeCount-Dw7v2KcL.js";import"./StoragePoolRichChip-CxRTjvv2.js";import"./projects-DAlFlfjH.js";import"./useVolumes-CXLHz-Wc.js";import"./images-C6WqBeZG.js";import"./storage-volumes-CNe_c3nC.js";import"./FormLink-DYjWMIpw.js";import"./UploadCustomIso-CFeOJaFW.js";import"./ProgressBar-BgH9rTvH.js";import"./useNetworks-B1lu5MbM.js";import"./ExpandableList-DK5_MQFC.js";import"./NetworkRichChip-D2iomVd3.js";import"./NetworkSelector-BaEsMhep.js";import"./useNetworkAcls-DNeSgtR0.js";import"./network-acls-DPo6Eh5Y.js";import"./ProfileResourceLimits-DkY60ueM.js";const No=()=>{const c=E(),l=s.useNotify(),h=s.useToastNotification(),{project:t}=g(),p=O(),S=m.useState(null),[i,N]=m.useState(P),d=ge();if(!t)return e.jsx(e.Fragment,{children:"Missing project"});const C=R().shape({name:b().test("deduplicate","A profile with this name already exists",async a=>v(a,t,S,"profiles")).required()}),f=()=>{_("form-contents","p-bottom-controls")};m.useEffect(f,[l.notification?.message,i]),s.useListener(window,f,"resize",!0);const o=T({initialValues:{name:"",devices:[],cloud_init_ssh_keys:[],readOnly:!1,entityType:"profile"},validationSchema:C,onSubmit:a=>{const I=a.yaml?w(a.yaml):u(a);Z(JSON.stringify(I),t).then(()=>{c(`${y}/ui/project/${encodeURIComponent(t)}/profiles`),h.success(e.jsxs(e.Fragment,{children:["Profile"," ",e.jsx(je,{profileName:a.name,projectName:t})," ","created."]}))}).catch(D=>{o.setSubmitting(!1),l.failure("Profile creation failed",D)}).finally(()=>{p.invalidateQueries({queryKey:[j.profiles]}),p.invalidateQueries({queryKey:[j.projects,t]})})}}),u=a=>({...Ee(a),devices:De(a.devices),config:{...Ie(a),...Fe(a),...Ce(a),...Ne(a),...Se(a),...he(a),...xe(a),...Pe(a)}}),r=a=>{o.values.yaml&&a!==n&&o.setFieldValue("yaml",void 0),N(a)};function F(){const a=u(o.values);return M(a)}return e.jsxs(fe,{title:"Create a profile",contentClassName:"create-profile",children:[e.jsxs(s.Form,{onSubmit:o.handleSubmit,className:"form",children:[i!==n&&e.jsx(ee,{active:i,setActive:r,isDisabled:!o.values.name,formik:o}),e.jsx(s.Row,{className:"form-contents",children:e.jsxs(s.Col,{size:12,children:[e.jsx(k,{}),i===P&&e.jsx(oe,{formik:o,isEdit:!1,project:t}),i===ae&&e.jsx(B,{formik:o,project:t}),i===ie&&e.jsx(L,{formik:o,project:t}),i===te&&e.jsx(U,{formik:o,project:t}),i===se&&e.jsx(V,{formik:o,project:t}),i===re&&e.jsx(G,{formik:o,project:t}),i===me&&e.jsx(K,{formik:o}),i===ne&&e.jsx($,{formik:o,setSection:r}),i===ce&&e.jsx(q,{formik:o}),i===le&&e.jsx(H,{formik:o}),i===pe&&e.jsx(Q,{formik:o}),i===de&&e.jsx(z,{formik:o,project:t}),i===n&&e.jsx(Y,{yaml:F(),setYaml:a=>{o.setFieldValue("yaml",a)},children:e.jsx(ye,{entity:"profile",docPath:"/profiles"})})]})},i)]}),e.jsxs(ue,{children:[e.jsx("div",{className:"yaml-switch",children:e.jsx(A,{formik:o,section:i,setSection:r,disableReason:o.values.name?void 0:"Please enter a profile name before adding custom configuration"})}),e.jsx(s.Button,{appearance:"base",onClick:async()=>c(`${y}/ui/project/${encodeURIComponent(t)}/profiles`),children:"Cancel"}),e.jsx(s.ActionButton,{appearance:"positive",loading:o.isSubmitting,disabled:!o.isValid||o.isSubmitting||!o.values.name||J(o)||W(o),onClick:()=>{o.submitForm()},children:"Create"})]}),(d.panel===x.editNetworkDevice||d.panel===x.createNetworkDevice)&&e.jsx(X,{project:t,formik:o})]})};export{No as default};