bfg-common 1.4.866 → 1.4.868

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.
Files changed (18) hide show
  1. package/components/common/vm/actions/add/Add.vue +1 -0
  2. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -0
  3. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -0
  4. package/components/common/vm/actions/clone/toTemplate/lib/models/interfaces.ts +14 -0
  5. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +4 -0
  6. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +3 -0
  7. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +3 -0
  8. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +4 -0
  9. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +15 -10
  10. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +69 -19
  11. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +10 -8
  12. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +5 -1
  13. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +3 -0
  14. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +3 -0
  15. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +4 -0
  16. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +3 -0
  17. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +3 -0
  18. package/package.json +1 -1
@@ -0,0 +1,116 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
3
+ import type { I_DynamicSteps } from '~/components/common/vm/actions/clone/lib/models/interfaces'
4
+ import { UI_E_WIZARD_STATUS } from '~/components/atoms/wizard/lib/models/enums'
5
+
6
+ export const stepsFunc = (
7
+ localization: UI_I_Localization,
8
+ isScheduledTasks: boolean
9
+ ): UI_I_WizardStep[] => {
10
+ let result: UI_I_WizardStep[] = [
11
+ {
12
+ id: 0,
13
+ stepName: '',
14
+ title: localization.common.schedulingOptions,
15
+ subTitle: '',
16
+ status: UI_E_WIZARD_STATUS.SELECTED,
17
+ isValid: true,
18
+ fields: {},
19
+ testId: 'new-roles-scheduling-options',
20
+ },
21
+ {
22
+ id: 1,
23
+ stepName: '',
24
+ title: localization.common.selectName,
25
+ subTitle: localization.common.specifyUniqueName,
26
+ status: UI_E_WIZARD_STATUS.INACTIVE,
27
+ isValid: true,
28
+ testId: 'vm-wizard-select-name',
29
+ fields: {
30
+ name: {
31
+ field: '',
32
+ alert: '',
33
+ },
34
+ },
35
+ },
36
+ {
37
+ id: 2,
38
+ stepName: '',
39
+ title: localization.common.selectStorage,
40
+ subTitle: localization.common.selectStorageConfigurationDiskFiles,
41
+ status: UI_E_WIZARD_STATUS.INACTIVE,
42
+ isValid: true,
43
+ testId: 'vm-wizard-select-storage',
44
+ fields: {
45
+ storage: {
46
+ field: '',
47
+ alert: '',
48
+ },
49
+ },
50
+ },
51
+ {
52
+ id: 3,
53
+ stepName: '',
54
+ title: localization.common.customizeHardware,
55
+ subTitle: localization.common.configureVirtualMachineHardware,
56
+ status: UI_E_WIZARD_STATUS.INACTIVE,
57
+ isValid: true,
58
+ testId: 'vm-wizard-customize-hardware',
59
+ fields: {
60
+ customizeHardware: {
61
+ field: '',
62
+ alert: '',
63
+ },
64
+ },
65
+ },
66
+ {
67
+ id: 4,
68
+ stepName: '',
69
+ title: localization.common.readyComplete,
70
+ subTitle: localization.common.clickFinishStartCreation,
71
+ status: UI_E_WIZARD_STATUS.INACTIVE,
72
+ isValid: true,
73
+ testId: 'vm-wizard-ready-complete',
74
+ fields: {},
75
+ },
76
+ ]
77
+
78
+ if (!isScheduledTasks) {
79
+ result.shift()
80
+ result[0].status = UI_E_WIZARD_STATUS.SELECTED
81
+ result = result.map((item) => {
82
+ item.id--
83
+ return item
84
+ })
85
+ }
86
+
87
+ return result
88
+ }
89
+
90
+ export const stepsSchemeInitial = (isScheduledTasks: boolean): number[][] => {
91
+ const resultWithOutScheduledTasks = [0, 1, 2, 3]
92
+ const resultWithScheduledTasks = [0, 1, 2, 3, 4]
93
+
94
+ return isScheduledTasks
95
+ ? [resultWithScheduledTasks]
96
+ : [resultWithOutScheduledTasks]
97
+ }
98
+ export const getDynamicSteps = (isScheduledTasks: boolean): I_DynamicSteps => {
99
+ const resultWithOutScheduledTasks = {
100
+ selectName: 0,
101
+ selectStorage: 1,
102
+ customizeHardware: 2,
103
+ readyComplete: 3,
104
+ }
105
+ const resultWithScheduledTasks = {
106
+ scheduledTasks: 0,
107
+ selectName: 1,
108
+ selectStorage: 2,
109
+ customizeHardware: 3,
110
+ readyComplete: 4,
111
+ }
112
+
113
+ return isScheduledTasks
114
+ ? resultWithScheduledTasks
115
+ : resultWithOutScheduledTasks
116
+ }
@@ -0,0 +1,14 @@
1
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
2
+
3
+ export interface UI_I_VmForm {
4
+ name: string
5
+ storage: UI_I_DatastoreTableItem | null
6
+ }
7
+
8
+ export interface I_DynamicSteps {
9
+ selectName: number
10
+ selectStorage: number
11
+ customizeHardware: number
12
+ readyComplete: number
13
+ scheduledTasks?: number
14
+ }
@@ -39,6 +39,7 @@
39
39
  :project="props.project"
40
40
  :nav-items="navItems"
41
41
  :errors="errors"
42
+ :compute-resource="props.computeResource"
42
43
  @change-boot-order="emits('change-boot-order', $event)"
43
44
  @send-data="emits('send-data', $event)"
44
45
  @next="emits('next')"
@@ -93,6 +94,7 @@
93
94
  :project="props.project"
94
95
  :nav-items="navItems"
95
96
  :errors="errors"
97
+ :compute-resource="props.computeResource"
96
98
  @change-boot-order="emits('change-boot-order', $event)"
97
99
  @send-data="emits('send-data', $event)"
98
100
  @next="emits('next')"
@@ -137,6 +139,7 @@ import type {
137
139
  UI_I_MediatedDevice,
138
140
  UI_I_PciDevice,
139
141
  } from '~/lib/models/store/vm/interfaces'
142
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
140
143
  import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
141
144
 
142
145
  const vmName = defineModel<string>('vmName', { required: true })
@@ -178,6 +181,7 @@ const props = defineProps<{
178
181
  passthroughDevices?: UI_I_PciDevice[]
179
182
  mediatedDevices?: UI_I_MediatedDevice[]
180
183
  project?: UI_T_Project
184
+ computeResource?: UI_I_TreeNode | null
181
185
  }>()
182
186
  const emits = defineEmits<{
183
187
  (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
@@ -45,6 +45,7 @@
45
45
  :mediated-devices="props.mediatedDevices"
46
46
  :project="props.project"
47
47
  :guest-machine-type="guestMachineType"
48
+ :computeResource="props.computeResource"
48
49
  @send-data="emits('send-data-virtual-hardware-method', $event)"
49
50
  @get-storage="emits('get-storage', $event)"
50
51
  @get-folders-or-files="emits('get-folders-or-files', $event)"
@@ -107,6 +108,7 @@ import type {
107
108
  UI_I_PciDevice,
108
109
  } from '~/lib/models/store/vm/interfaces'
109
110
  import type { UI_I_Localization } from '~/lib/models/interfaces'
111
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
110
112
  import { navItemsNewViewFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
111
113
 
112
114
  const vmName = defineModel<string>('vmName', { required: true })
@@ -162,6 +164,7 @@ const props = defineProps<{
162
164
  mediatedDevices?: UI_I_MediatedDevice[]
163
165
  vmCpuHelpTextSecond?: string
164
166
  getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
167
+ computeResource?: UI_I_TreeNode | null
165
168
  }>()
166
169
  const emits = defineEmits<{
167
170
  (event: 'get-storage', value: UI_I_TablePayload): void
@@ -38,6 +38,7 @@
38
38
  :mediated-devices="props.mediatedDevices"
39
39
  :project="props.project"
40
40
  :guest-machine-type="guestMachineType"
41
+ :compute-resource="props.computeResource"
41
42
  @send-data="emits('send-data-virtual-hardware-method', $event)"
42
43
  @get-storage="emits('get-storage', $event)"
43
44
  @get-folders-or-files="emits('get-folders-or-files', $event)"
@@ -98,6 +99,7 @@ import type {
98
99
  UI_I_MediatedDevice,
99
100
  UI_I_PciDevice,
100
101
  } from '~/lib/models/store/vm/interfaces'
102
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
101
103
 
102
104
  const vmName = defineModel<string>('vmName', { required: true })
103
105
  const guestOsFamily = defineModel<UI_I_OptionItem | null>('guestOsFamily', {
@@ -152,6 +154,7 @@ const props = defineProps<{
152
154
  mediatedDevices?: UI_I_MediatedDevice[]
153
155
  vmCpuHelpTextSecond?: string
154
156
  getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
157
+ computeResource?: UI_I_TreeNode | null
155
158
  }>()
156
159
  const emits = defineEmits<{
157
160
  (event: 'get-storage', value: UI_I_TablePayload): void
@@ -39,6 +39,7 @@
39
39
  :passthrough-devices="passthroughDevices"
40
40
  :mediated-devices="mediatedDevices"
41
41
  :vm-cpu-help-text-second="vmCpuHelpTextSecond"
42
+ :compute-resource="props.computeResource"
42
43
  @add-device="onAddDevice"
43
44
  @get-storage="emits('get-storage', $event)"
44
45
  @remove-network="onRemoveNetwork"
@@ -106,6 +107,7 @@
106
107
  :passthrough-devices="passthroughDevices"
107
108
  :mediated-devices="mediatedDevices"
108
109
  :vm-cpu-help-text-second="vmCpuHelpTextSecond"
110
+ :compute-resource="props.computeResource"
109
111
  @add-device="onAddDevice"
110
112
  @get-storage="emits('get-storage', $event)"
111
113
  @remove-network="onRemoveNetwork"
@@ -173,6 +175,7 @@ import type {
173
175
  UI_I_PciDevice,
174
176
  } from '~/lib/models/store/vm/interfaces'
175
177
  import { dropdownItemsFunc } from './lib/config/dropdownItems'
178
+ import type {UI_I_TreeNode} from "~/components/common/recursionTree/lib/models/interfaces";
176
179
 
177
180
  const props = defineProps<{
178
181
  storage: UI_I_DatastoreTableItem | null
@@ -201,6 +204,7 @@ const props = defineProps<{
201
204
  mediatedDevices?: UI_I_MediatedDevice[]
202
205
  project: UI_T_Project
203
206
  guestMachineType?: UI_I_OptionItem | null
207
+ computeResource?: UI_I_TreeNode | null
204
208
  }>()
205
209
  const emits = defineEmits<{
206
210
  (event: 'send-data', value: UI_I_SendDataVirtualHardware): void
@@ -1,19 +1,19 @@
1
1
  <template>
2
2
  <div class="virtual-hardware">
3
3
  <div class="action-wrap">
4
- <span class="device-count">{{deviceCountText}}</span>
4
+ <span class="device-count">{{ deviceCountText }}</span>
5
5
 
6
6
  <div>
7
7
  <button
8
8
  id="add-device-dropdown"
9
- :class="['pointer', {active: isShowAddDeviceDropdown}]"
9
+ :class="['pointer', { active: isShowAddDeviceDropdown }]"
10
10
  data-id="add-device-dropdown"
11
11
  @click="isShowAddDeviceDropdown = !isShowAddDeviceDropdown"
12
12
  >
13
13
  <ui-icon name="plus" width="18" height="18" />
14
14
  <span>
15
- {{ addNewDeviceText }}
16
- </span>
15
+ {{ addNewDeviceText }}
16
+ </span>
17
17
  </button>
18
18
  <ui-dropdown
19
19
  :items="dropdownItems"
@@ -65,6 +65,7 @@
65
65
  :is-edit="props.isEdit"
66
66
  :state="props.state"
67
67
  :guest-machine-type="props.guestMachineType"
68
+ :compute-resource="props.computeResource"
68
69
  @remove="emits('remove-hard-disk', [props.hardDisksIndex[key], item])"
69
70
  @roll-back="emits('roll-back-hard-disk', props.hardDisksIndex[key])"
70
71
  @send-data="
@@ -115,6 +116,7 @@
115
116
  :is-edit="props.isEdit"
116
117
  :state="props.state"
117
118
  :guest-machine-type="props.guestMachineType"
119
+ :compute-resource="props.computeResource"
118
120
  @remove-error-by-title="emits('remove-error-by-title', $event)"
119
121
  @get-storage="emits('get-storage', $event)"
120
122
  @get-folders-or-files="emits('get-folders-or-files', $event)"
@@ -222,9 +224,11 @@ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
222
224
  import type { UI_I_Localization } from '~/lib/models/interfaces'
223
225
  import type {
224
226
  API_UI_I_VmEditCpu,
225
- API_UI_I_VmEditMemory, UI_I_MediatedDevice,
227
+ API_UI_I_VmEditMemory,
228
+ UI_I_MediatedDevice,
226
229
  UI_I_PciDevice,
227
230
  } from '~/lib/models/store/vm/interfaces'
231
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
228
232
  import { dropdownItemsNewFunc } from './lib/config/dropdownItems'
229
233
 
230
234
  const cpuInvalid = defineModel<boolean>('cpuInvalid', { required: true })
@@ -269,6 +273,7 @@ const props = defineProps<{
269
273
  passthroughDevices?: UI_I_PciDevice[]
270
274
  mediatedDevices?: UI_I_MediatedDevice[]
271
275
  vmCpuHelpTextSecond?: string
276
+ computeResource?: UI_I_TreeNode | null
272
277
  }>()
273
278
  const emits = defineEmits<{
274
279
  (event: 'add-device', value: { value: number }): void
@@ -353,10 +358,10 @@ const onAddDevice = (data: number): void => {
353
358
 
354
359
  <style>
355
360
  :root {
356
- --vm-wizard-block-view-bg-color: #fafafa
361
+ --vm-wizard-block-view-bg-color: #fafafa;
357
362
  }
358
363
  :root.dark-theme {
359
- --vm-wizard-block-view-bg-color: transparent
364
+ --vm-wizard-block-view-bg-color: transparent;
360
365
  }
361
366
  </style>
362
367
 
@@ -372,7 +377,7 @@ const onAddDevice = (data: number): void => {
372
377
  font-size: 13px;
373
378
  font-weight: 500;
374
379
  line-height: 15.73px;
375
- color: #9DA6AD;
380
+ color: #9da6ad;
376
381
  }
377
382
 
378
383
  #add-device-dropdown {
@@ -389,8 +394,8 @@ const onAddDevice = (data: number): void => {
389
394
  line-height: 15.73px;
390
395
 
391
396
  &.active {
392
- color: #008FD6;
393
- border-color: #008FD6;
397
+ color: #008fd6;
398
+ border-color: #008fd6;
394
399
  }
395
400
  }
396
401
  }
@@ -46,10 +46,18 @@
46
46
  :is-edit="props.isEdit"
47
47
  :state="props.state"
48
48
  :guest-machine-type="props.guestMachineType"
49
+ :compute-resource="props.computeResource"
49
50
  @remove="emits('remove-hard-disk', [props.hardDisksIndex[key], item])"
50
51
  @roll-back="emits('roll-back-hard-disk', props.hardDisksIndex[key])"
51
- @send-data="emits('send-data-new-hard-disk-method', [$event, props.hardDisksIndex[key]])"
52
- @invalid="emits('set-invalid-hard-disk', [$event, props.hardDisksIndex[key]])"
52
+ @send-data="
53
+ emits('send-data-new-hard-disk-method', [
54
+ $event,
55
+ props.hardDisksIndex[key],
56
+ ])
57
+ "
58
+ @invalid="
59
+ emits('set-invalid-hard-disk', [$event, props.hardDisksIndex[key]])
60
+ "
53
61
  @remove-error-by-title="emits('remove-error-by-title', $event)"
54
62
  />
55
63
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-network
@@ -64,8 +72,15 @@
64
72
  :state="props.state"
65
73
  :project="props.project"
66
74
  @remove="emits('remove-network', props.networksIndex[key])"
67
- @send-data="emits('send-data-new-network-method', [$event, props.networksIndex[key]])"
68
- @invalid="emits('set-invalid-network', [$event, props.networksIndex[key]])"
75
+ @send-data="
76
+ emits('send-data-new-network-method', [
77
+ $event,
78
+ props.networksIndex[key],
79
+ ])
80
+ "
81
+ @invalid="
82
+ emits('set-invalid-network', [$event, props.networksIndex[key]])
83
+ "
69
84
  @remove-error-by-title="emits('remove-error-by-title', $event)"
70
85
  @get-networks-table="emits('get-networks-table', $event)"
71
86
  />
@@ -82,15 +97,23 @@
82
97
  :is-edit="props.isEdit"
83
98
  :state="props.state"
84
99
  :guest-machine-type="props.guestMachineType"
100
+ :compute-resource="props.computeResource"
85
101
  @remove-error-by-title="emits('remove-error-by-title', $event)"
86
102
  @get-storage="emits('get-storage', $event)"
87
103
  @get-folders-or-files="emits('get-folders-or-files', $event)"
88
104
  @get-active-device-child="emits('get-active-device-child', $event)"
89
105
  @show-datastore-child="emits('show-datastore-child', $event)"
90
- @remove="emits('remove-cd-dvd-drive', [props.cdDvdDrivesIndex[key], item])"
91
- @roll-back="emits('roll-back-cd-dvd-drive', props.cdDvdDrivesIndex[key])"
106
+ @remove="
107
+ emits('remove-cd-dvd-drive', [props.cdDvdDrivesIndex[key], item])
108
+ "
109
+ @roll-back="
110
+ emits('roll-back-cd-dvd-drive', props.cdDvdDrivesIndex[key])
111
+ "
92
112
  @send-data="
93
- emits('send-data-new-cd-dvd-drive-method', [$event, props.cdDvdDrivesIndex[key]])
113
+ emits('send-data-new-cd-dvd-drive-method', [
114
+ $event,
115
+ props.cdDvdDrivesIndex[key],
116
+ ])
94
117
  "
95
118
  />
96
119
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-usb-controller
@@ -113,9 +136,17 @@
113
136
  :state="props.state"
114
137
  @remove="emits('remove-pci-device', props.pciDevicesIndex[key])"
115
138
  @send-data="
116
- emits('send-data-pci-devices-method', [$event, props.pciDevicesIndex[key]])
139
+ emits('send-data-pci-devices-method', [
140
+ $event,
141
+ props.pciDevicesIndex[key],
142
+ ])
143
+ "
144
+ @invalid="
145
+ emits('set-invalid-pci-device', [
146
+ $event,
147
+ props.pciDevicesIndex[key],
148
+ ])
117
149
  "
118
- @invalid="emits('set-invalid-pci-device', [$event, props.pciDevicesIndex[key]])"
119
150
  @remove-error-by-title="emits('remove-error-by-title', $event)"
120
151
  />
121
152
  </template>
@@ -179,13 +210,17 @@ import type {
179
210
  import type { UI_I_Localization } from '~/lib/models/interfaces'
180
211
  import type {
181
212
  API_UI_I_VmEditCpu,
182
- API_UI_I_VmEditMemory, UI_I_MediatedDevice,
213
+ API_UI_I_VmEditMemory,
214
+ UI_I_MediatedDevice,
183
215
  UI_I_PciDevice,
184
216
  } from '~/lib/models/store/vm/interfaces'
217
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
185
218
 
186
- const cpuInvalid = defineModel<boolean>('cpuInvalid', {required: true})
187
- const memoryInvalid = defineModel<boolean>('memoryInvalid', {required: true})
188
- const videoCardInvalid = defineModel<boolean>('videoCardInvalid', {required: true})
219
+ const cpuInvalid = defineModel<boolean>('cpuInvalid', { required: true })
220
+ const memoryInvalid = defineModel<boolean>('memoryInvalid', { required: true })
221
+ const videoCardInvalid = defineModel<boolean>('videoCardInvalid', {
222
+ required: true,
223
+ })
189
224
 
190
225
  const props = defineProps<{
191
226
  nodes: UI_I_FileTreeNode[]
@@ -223,6 +258,7 @@ const props = defineProps<{
223
258
  passthroughDevices?: UI_I_PciDevice[]
224
259
  mediatedDevices?: UI_I_MediatedDevice[]
225
260
  vmCpuHelpTextSecond?: string
261
+ computeResource?: UI_I_TreeNode | null
226
262
  }>()
227
263
  const emits = defineEmits<{
228
264
  (event: 'add-device', value: UI_I_DropdownTreeItemChild): void
@@ -235,7 +271,10 @@ const emits = defineEmits<{
235
271
  (event: 'add-exist-hard-disk', value: UI_I_FileTreeNode): void
236
272
  (event: 'roll-back-hard-disk', value: number): void
237
273
  (event: 'set-invalid-network', value: [boolean, number]): void
238
- (event: 'remove-cd-dvd-drive', value: [number, UI_I_SendDataNewCdDvdDrive]): void
274
+ (
275
+ event: 'remove-cd-dvd-drive',
276
+ value: [number, UI_I_SendDataNewCdDvdDrive]
277
+ ): void
239
278
  (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
240
279
  (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
241
280
  (event: 'send-data-cpu-method', value: UI_I_SendDataCpu): void
@@ -246,15 +285,26 @@ const emits = defineEmits<{
246
285
  (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
247
286
  (event: 'send-data-memory-method', value: UI_I_SendDataMemory): void
248
287
  (event: 'send-data-video-card-method', value: UI_I_SendDataVideoCard): void
249
- (event: 'send-data-new-network-method', value: [UI_I_SendDataNewNetwork, number]): void
250
- (event: 'send-data-pci-devices-method', value: [UI_I_SendDataNewPciDevice, number]): void
251
- (event: 'send-data-new-hard-disk-method', value: [UI_I_SendDataNewHardDisk, number]): void
252
- (event: 'send-data-new-cd-dvd-drive-method', value: [UI_I_SendDataNewCdDvdDrive, number]): void
288
+ (
289
+ event: 'send-data-new-network-method',
290
+ value: [UI_I_SendDataNewNetwork, number]
291
+ ): void
292
+ (
293
+ event: 'send-data-pci-devices-method',
294
+ value: [UI_I_SendDataNewPciDevice, number]
295
+ ): void
296
+ (
297
+ event: 'send-data-new-hard-disk-method',
298
+ value: [UI_I_SendDataNewHardDisk, number]
299
+ ): void
300
+ (
301
+ event: 'send-data-new-cd-dvd-drive-method',
302
+ value: [UI_I_SendDataNewCdDvdDrive, number]
303
+ ): void
253
304
  (event: 'send-data-new-usb-controller-method', value: string): void
254
305
  }>()
255
306
 
256
307
  const localization = computed<UI_I_Localization>(() => useLocal())
257
-
258
308
  </script>
259
309
 
260
310
  <style scoped lang="scss">
@@ -32,6 +32,7 @@
32
32
  <script setup lang="ts">
33
33
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
34
34
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
35
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
35
36
  import { capabilities } from '~/components/common/vm/actions/common/lib/config/capabilities'
36
37
 
37
38
  const bus = defineModel<string>('bus')
@@ -45,6 +46,7 @@ const props = defineProps<{
45
46
  shortOptions?: boolean
46
47
  helpText?: string
47
48
  guestMachineType?: UI_I_OptionItem | null
49
+ computeResource?: UI_I_TreeNode | null
48
50
  }>()
49
51
  const emits = defineEmits<{
50
52
  (event: 'remove-error-by-title', value: string): void
@@ -57,18 +59,19 @@ const helpId = ref<string>(`bus-field-help-icon${useUniqueId()}`)
57
59
 
58
60
  const busOptions = ref<UI_I_OptionItem[]>([])
59
61
  watch(
60
- () => props.guestMachineType,
62
+ [() => props.guestMachineType, () => props.computeResource],
61
63
  () => {
62
64
  if (props.guestMachineType) {
63
65
  busOptions.value = capabilities.bus[props.guestMachineType.value]
64
66
  if (props.shortOptions) {
65
67
  busOptions.value = capabilities.cdromBus[props.guestMachineType.value]
66
68
  }
67
-
68
- const hasSelected = busOptions.value.some(
69
- (option) => option.value === bus.value
70
- )
71
- if (!hasSelected) bus.value = busOptions.value[0].value
69
+ if (busOptions.value) {
70
+ const hasSelected = busOptions.value.some(
71
+ (option) => option.value === bus.value
72
+ )
73
+ if (!hasSelected) bus.value = busOptions.value[0].value
74
+ }
72
75
  }
73
76
  },
74
77
  { immediate: true, deep: true }
@@ -93,5 +96,4 @@ const onRemoveValidationError = (): void => {
93
96
  const isShowHelp = ref<boolean>(false)
94
97
  </script>
95
98
 
96
- <style scoped>
97
- </style>
99
+ <style scoped></style>
@@ -20,6 +20,7 @@
20
20
  :file-types="fileTypes"
21
21
  :is-running="isRunning"
22
22
  :guest-machine-type="guestMachineType"
23
+ :compute-resource="props.computeResource"
23
24
  @remove="emits('remove')"
24
25
  @roll-back="emits('roll-back')"
25
26
  @remove-error-by-title="emits('remove-error-by-title', $event)"
@@ -52,6 +53,7 @@
52
53
  :file-types="fileTypes"
53
54
  :is-running="isRunning"
54
55
  :guest-machine-type="guestMachineType"
56
+ :compute-resource="props.computeResource"
55
57
  @remove="emits('remove')"
56
58
  @roll-back="emits('roll-back')"
57
59
  @remove-error-by-title="emits('remove-error-by-title', $event)"
@@ -62,7 +64,7 @@
62
64
  @change-cd-dvd-drive="changeCdDvdDrive"
63
65
  @select-file="onSelectFile"
64
66
  @hide-file-modal="onHideFileModal"
65
- />
67
+ />
66
68
  </template>
67
69
 
68
70
  <script lang="ts" setup>
@@ -78,6 +80,7 @@ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
78
80
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
79
81
  import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
80
82
  import type { UI_T_CdDvdType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
83
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
81
84
  import { cdDvdDriveOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/lib/config/options'
82
85
  import { fileTypesFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/lib/config/fileTypes'
83
86
 
@@ -93,6 +96,7 @@ const props = defineProps<{
93
96
  disabled: boolean
94
97
  state?: string | number
95
98
  guestMachineType?: UI_I_OptionItem | null
99
+ computeResource?: UI_I_TreeNode | null
96
100
  }>()
97
101
 
98
102
  const emits = defineEmits<{
@@ -62,6 +62,7 @@
62
62
  short-options
63
63
  component-type="disk_devices"
64
64
  :guest-machine-type="props.guestMachineType"
65
+ :compute-resource="props.computeResource"
65
66
  @remove-error-by-title="emits('remove-error-by-title', $event)"
66
67
  />
67
68
  </template>
@@ -92,6 +93,7 @@ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
92
93
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
93
94
  import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
94
95
  import type { UI_T_CdDvdType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
96
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
95
97
 
96
98
  const deleteFilesFromDatastore = defineModel<boolean>(
97
99
  'deleteFilesFromDatastore',
@@ -121,6 +123,7 @@ const props = defineProps<{
121
123
  fileTypes: UI_I_OptionItem[]
122
124
  isRunning: boolean
123
125
  guestMachineType?: UI_I_OptionItem | null
126
+ computeResource?: UI_I_TreeNode | null
124
127
  }>()
125
128
 
126
129
  const emits = defineEmits<{
@@ -81,6 +81,7 @@
81
81
  short-options
82
82
  component-type="disk_devices"
83
83
  :guest-machine-type="props.guestMachineType"
84
+ :compute-resource="props.computeResource"
84
85
  @remove-error-by-title="emits('remove-error-by-title', $event)"
85
86
  />
86
87
  </template>
@@ -115,6 +116,7 @@ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
115
116
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
116
117
  import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
117
118
  import type { UI_T_CdDvdType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
119
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
118
120
 
119
121
  const deleteFilesFromDatastore = defineModel<boolean>(
120
122
  'deleteFilesFromDatastore',
@@ -144,6 +146,7 @@ const props = defineProps<{
144
146
  fileTypes: UI_I_OptionItem[]
145
147
  isRunning: boolean
146
148
  guestMachineType?: UI_I_OptionItem | null
149
+ computeResource?: UI_I_TreeNode | null
147
150
  }>()
148
151
 
149
152
  const emits = defineEmits<{
@@ -32,6 +32,7 @@
32
32
  :hard-disk="props.hardDisk"
33
33
  :guest-machine-type="props.guestMachineType"
34
34
  :is-new-type="isNewType"
35
+ :compute-resource="props.computeResource"
35
36
  @remove="emits('remove')"
36
37
  @roll-back="emits('roll-back')"
37
38
  @validate-size="onValidateSize"
@@ -71,6 +72,7 @@
71
72
  :hard-disk="props.hardDisk"
72
73
  :guest-machine-type="props.guestMachineType"
73
74
  :is-new-type="isNewType"
75
+ :compute-resource="props.computeResource"
74
76
  @remove="emits('remove')"
75
77
  @roll-back="emits('roll-back')"
76
78
  @validate-size="onValidateSize"
@@ -90,6 +92,7 @@ import type { UI_I_Localization } from '~/lib/models/interfaces'
90
92
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
91
93
  import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
92
94
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
95
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
93
96
  import { binaryOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/binaryOptions'
94
97
 
95
98
  const props = defineProps<{
@@ -103,6 +106,7 @@ const props = defineProps<{
103
106
  isEdit: boolean
104
107
  state?: string | number
105
108
  guestMachineType?: UI_I_OptionItem | null
109
+ computeResource?: UI_I_TreeNode | null
106
110
  }>()
107
111
  const emits = defineEmits<{
108
112
  (event: 'send-data', value: UI_I_SendDataNewHardDisk): void