Submit
Path:
~
/
/
snap
/
lxd
/
current
/
share
/
lxd-ui
/
assets
/
File Content:
ClusterGroupForm-f258bb5e.js
import{e as v,d as r,m as j,i as N,r as h,f as y,z as S,q as n,A as g,j as t,B as q,b as B,p as E,R as F,T as k}from"./index-13b2882d.js";import{c as w,a as G,u as R}from"./index.esm-82c30f37.js";import{S as $,u as A}from"./updateMaxHeight-325b3cd4.js";import{b as z,g as H}from"./clusterGroups-3fc1789d.js";import{S as L}from"./SelectableMainTable-5a3f3fef.js";import{A as D}from"./AutoExpandingTextArea-3a779a81.js";const _=({group:s})=>{var d;const o=v(),i=r.useNotify(),{group:b}=j(),p=N(),f=h.useState(null),{data:m=[],error:c}=y({queryKey:[n.cluster,n.members],queryFn:E});c&&i.failure("Loading cluster members failed",c);const x=w().shape({name:G().test("deduplicate","A cluster group with this name already exists",a=>(s==null?void 0:s.name)===a||S(a,"",f,"cluster/groups")).required()}),e=R({initialValues:{description:(s==null?void 0:s.description)??"",members:(s==null?void 0:s.members)??[],name:(s==null?void 0:s.name)??""},validationSchema:x,onSubmit:a=>{(s?F:k)({name:a.name,description:a.description,members:a.members}).then(()=>{const l=s?"saved":"created";o(`/ui/cluster/groups/detail/${a.name}`,i.queue(i.success(`Cluster group ${a.name} ${l}.`)))}).catch(l=>{e.setSubmitting(!1);const C=s?"save":"creation";i.failure(`Cluster group ${C} failed`,l)}).finally(()=>{p.invalidateQueries({queryKey:[n.cluster,n.groups]})})}}),u=()=>{A("form-contents","p-bottom-controls")};return h.useEffect(u,[(d=i.notification)==null?void 0:d.message]),g("resize",u),t.jsxs(q,{title:s?"Edit cluster group":"Create cluster group",contentClassName:"cluster-group-form",children:[t.jsx(r.Form,{onSubmit:e.handleSubmit,stacked:!0,className:"form",children:t.jsx(r.Row,{className:"form-contents",children:t.jsxs(r.Col,{size:12,children:[t.jsx(B,{}),t.jsxs("div",{className:"cluster-group-metadata",children:[t.jsx(r.Input,{id:"name",type:"text",label:"Group name",placeholder:"Enter name",required:!0,disabled:!!s,onBlur:e.handleBlur,onChange:e.handleChange,value:e.values.name,error:e.touched.name?e.errors.name:null}),t.jsx(D,{id:"description",name:"description",label:"Description",placeholder:"Enter description",onBlur:e.handleBlur,onChange:e.handleChange,value:e.values.description,error:e.touched.description?e.errors.description:null,dynamicHeight:!0})]}),t.jsxs("div",{className:"choose-label",children:["Choose members from the list"," ",t.jsxs("span",{className:"u-text--muted",children:["(",e.values.members.length," selected)"]})," "]}),t.jsx(L,{headers:z(),rows:H(m,b),sortable:!0,className:"cluster-group-select-members",filteredNames:m.map(a=>a.server_name),itemName:"member",parentName:"cluster",selectedNames:e.values.members,setSelectedNames:a=>void e.setFieldValue("members",a),processingNames:[]})]})})}),t.jsxs("div",{className:"p-bottom-controls",id:"form-footer",children:[t.jsx("hr",{}),t.jsx(r.Row,{className:"u-align--right",children:t.jsxs(r.Col,{size:12,children:[t.jsx(r.Button,{appearance:"base",onClick:()=>o("/ui/cluster"),children:"Cancel"}),t.jsx($,{isSubmitting:e.isSubmitting,isDisabled:!e.isValid||!e.values.name,buttonLabel:s?"Save changes":"Create",onClick:()=>void e.submitForm()})]})})]})]})};export{_ as C};
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
data
---
0755
img
---
0755
AutoExpandingTextArea-3a779a81.js
352 bytes
0644
CancelOperationBtn-5e4a9f41.js
1454 bytes
0644
CertificateAdd-5762bbdd.js
2423 bytes
0644
CertificateGenerate-67a1d99d.js
9813 bytes
0644
ClusterGroupForm-f258bb5e.js
3146 bytes
0644
ClusterList-13b65a6c.js
4834 bytes
0644
ConfigFieldDescription-00c1a193.js
3588 bytes
0644
ConfigurationTable-1a9d4d6f.js
2213 bytes
0644
CreateClusterGroup-3b03283b.js
329 bytes
0644
CreateInstance-2dc2e316.js
15924 bytes
0644
CreateNetwork-9059effd.js
2293 bytes
0644
CreateProfile-fa64def5.js
3354 bytes
0644
CreateProject-3768bb7f.js
1942 bytes
0644
CreateStoragePool-e2d089cb.js
1809 bytes
0644
DiskSizeSelector-dd5e138a.js
1843 bytes
0644
EditClusterGroup-08d77b61.js
622 bytes
0644
FormMenuItem-c8a1a121.js
504 bytes
0644
Images-40cc8e59.js
4475 bytes
0644
InstanceDetail-ee6a9c3e.js
497285 bytes
0644
InstanceFormMenu-dff7cf6c.js
1710 bytes
0644
InstanceList-23508fa8.js
15982 bytes
0644
Login-a15594e3.js
1504 bytes
0644
NetworkDetail-c85f81d1.js
10357 bytes
0644
NetworkDevicesForm-bcf4be77.js
28882 bytes
0644
NetworkForm-ffe61c80.js
11091 bytes
0644
NetworkList-45862bf6.js
2938 bytes
0644
NetworkMap-30a0e19e.js
393598 bytes
0644
OperationList-b576a26c.js
3103 bytes
0644
ProfileDetail-1a7135fe.js
9972 bytes
0644
ProfileDetailsForm-809e7c02.js
856 bytes
0644
ProfileFormMenu-3458e77a.js
1542 bytes
0644
ProfileList-3777bd96.js
3396 bytes
0644
ProfileSelector-b579b8c7.js
1770 bytes
0644
ProjectConfiguration-e5324f11.js
7224 bytes
0644
ProjectForm-55619b78.js
14396 bytes
0644
ProtectedRoute-49eddddb.js
209 bytes
0644
RenameHeader-c74d9adb.js
1641 bytes
0644
SelectableMainTable-5a3f3fef.js
1514 bytes
0644
Settings-2fc8ab81.js
6119 bytes
0644
StoragePoolDetail-5cad7e82.js
5661 bytes
0644
StorageUsedBy-2e98cb1b.js
2208 bytes
0644
StorageVolumeCreate-76138e07.js
1794 bytes
0644
StorageVolumeDetail-513f1051.js
6918 bytes
0644
StorageVolumeForm-228515f8.js
9860 bytes
0644
StorageVolumeFormMenu-e90b9f5c.js
1378 bytes
0644
WarningList-74e9b259.js
1899 bytes
0644
certificate-3aff5cf1.js
283833 bytes
0644
clusterGroups-3fc1789d.js
3402 bytes
0644
formFields-fc140429.js
4724 bytes
0644
images-2ea813f2.js
702 bytes
0644
index-13b2882d.js
600882 bytes
0644
index-205b9caf.css
493180 bytes
0644
index.esm-82c30f37.js
70743 bytes
0644
instanceConfigInheritance-fbf987f8.js
1414 bytes
0644
instanceDelete-e714bd59.js
1559 bytes
0644
instanceEdit-cf20bafe.js
5416 bytes
0644
instanceValidation-26160179.css
52045 bytes
0644
instanceValidation-45cfba9a.js
2195634 bytes
0644
networks-5caac489.js
1747 bytes
0644
operations-beb03b33.js
433 bytes
0644
settings-c23f9009.js
183 bytes
0644
updateMaxHeight-325b3cd4.js
861 bytes
0644
useClusterMembers-dbf45674.js
3396 bytes
0644
N4ST4R_ID | Naxtarrr