bfg-common 1.0.6 → 1.0.8

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
  ])
@@ -9,7 +9,7 @@ import {
9
9
  } from '~/components/common/vm/actions/add/customizeHardware/virtualHardware/models/interfaces'
10
10
  import { UI_I_CreateVmData } from '~/components/common/vm/actions/add/models/interfaces'
11
11
 
12
- export interface API_UI_UI_I_VmEditCpu {
12
+ export interface API_UI_I_VmEditCpu {
13
13
  core_per_socket: number
14
14
  hotplug: boolean
15
15
  limit_mhz: number
@@ -19,13 +19,13 @@ export interface API_UI_UI_I_VmEditCpu {
19
19
  shares: number
20
20
  vcpus: number
21
21
  }
22
- export interface API_UI_UI_I_VmEditMemory {
22
+ export interface API_UI_I_VmEditMemory {
23
23
  hotplug: boolean
24
24
  limit_mb: number
25
25
  reservation_mb: number
26
26
  size_mb: number
27
27
  }
28
- export interface API_UI_UI_I_VmEditOptions {
28
+ export interface API_UI_I_VmEditOptions {
29
29
  boot_options: {
30
30
  boot_delay_ms: number
31
31
  boot_menu: boolean
@@ -71,9 +71,9 @@ export interface UI_I_VmSettings {
71
71
  maxMemory: number
72
72
  uuid: string
73
73
  compatibility: string
74
- options: API_UI_UI_I_VmEditOptions
75
- cpu: API_UI_UI_I_VmEditCpu
76
- memory: API_UI_UI_I_VmEditMemory
74
+ options: API_UI_I_VmEditOptions
75
+ cpu: API_UI_I_VmEditCpu
76
+ memory: API_UI_I_VmEditMemory
77
77
  }
78
78
 
79
79
  export interface UI_I_CreateVmPayload {
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.8",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",