bfg-common 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,9 +15,15 @@
15
15
  :compute-resource="props.computeResource"
16
16
  :compute-resource-tree="props.computeResourceTree"
17
17
  @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
18
- @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
19
- @select-compute-resource-tree="emits('select-compute-resource-tree', $event)"
20
- @clear-compute-resource-tree="emits('clear-compute-resource-tree', $event)"
18
+ @show-compute-resource-tree="
19
+ emits('show-compute-resource-tree', $event)
20
+ "
21
+ @select-compute-resource-tree="
22
+ emits('select-compute-resource-tree', $event)
23
+ "
24
+ @clear-compute-resource-tree="
25
+ emits('clear-compute-resource-tree', $event)
26
+ "
21
27
  />
22
28
  </div>
23
29
 
@@ -55,7 +61,10 @@ const props = defineProps<{
55
61
  const emits = defineEmits<{
56
62
  (event: 'submit', value: UI_I_TreeNode): void
57
63
  (event: 'update:model-value', value: UI_I_TreeNode | null): void
58
- (event: 'get-compute-resource-tree', value: { id: string | number, cb: () => void }): void
64
+ (
65
+ event: 'get-compute-resource-tree',
66
+ value: { id: string | number; cb: () => void }
67
+ ): void
59
68
  (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
60
69
  (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
61
70
  (event: 'clear-compute-resource-tree'): void
@@ -69,12 +78,20 @@ watch(
69
78
  submit()
70
79
  }
71
80
  )
81
+ const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
82
+ if (!node) return false
83
+
84
+ if (node.parent?.type === 'datacenter') return true
85
+ if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
86
+ return false
87
+ }
72
88
  const submit = (): void => {
89
+ const isDatacenterFolder = isParentDatacenter(selectedNode.value)
73
90
  if (
74
91
  !selectedNode.value ||
75
92
  !compatibilityText.value[1] ||
76
93
  selectedNode.value.type === 'datacenter' ||
77
- selectedNode.value.type === 'folder' ||
94
+ selectedNode.value.type === 'folder' && !isDatacenterFolder ||
78
95
  (selectedNode.value.type === 'cluster' && !selectedNode.value.nodes.length)
79
96
  ) {
80
97
  showValidationErrors(
@@ -112,7 +129,10 @@ const compatibilityText = computed<[boolean, string]>(() => {
112
129
  localization.value.compatibilityChecksSucceeded,
113
130
  ]
114
131
 
115
- if (selectedNode.value.type === 'datacenter' || selectedNode.value.type === 'folder') {
132
+ if (
133
+ selectedNode.value.type === 'datacenter' ||
134
+ selectedNode.value.type === 'folder'
135
+ ) {
116
136
  res = [false, localization.value.selectValidClusterOrHostDestination]
117
137
  }
118
138
  if (selectedNode.value.type === 'cluster') {
@@ -61,6 +61,14 @@ watch(
61
61
  submit()
62
62
  }
63
63
  )
64
+
65
+ const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
66
+ if (!node) return false
67
+
68
+ if (node.parent?.type === 'datacenter') return true
69
+ if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
70
+ return false
71
+ }
64
72
  const submit = async (): Promise<void> => {
65
73
  const name = vmName.value
66
74
 
@@ -70,7 +78,9 @@ const submit = async (): Promise<void> => {
70
78
  }
71
79
 
72
80
  if (props.project === 'sphere') {
73
- if (selectedNode.value?.type !== 'datacenter') {
81
+ const isDatacenterFolder = isParentDatacenter(selectedNode.value)
82
+
83
+ if (selectedNode.value?.type !== 'datacenter' && selectedNode.value?.type === 'folder' && !isDatacenterFolder) {
74
84
  showValidationErrors([
75
85
  localization.value.enterValidLocationVirtualMachine,
76
86
  ])
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.0.6",
4
+ "version": "1.0.7",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",