bfg-common 1.4.623 → 1.4.624

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 (131) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/components/auth.scss +23 -2
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  8. package/components/atoms/stack/StackBlock.vue +185 -185
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1633 -1633
  10. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  11. package/components/common/browse/BrowseNew.vue +237 -237
  12. package/components/common/browse/BrowseOld.vue +217 -217
  13. package/components/common/browse/blocks/contents/Files.vue +37 -37
  14. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  15. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  16. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  17. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  18. package/components/common/browse/lib/models/interfaces.ts +5 -5
  19. package/components/common/context/lib/models/interfaces.ts +30 -30
  20. package/components/common/context/recursion/Recursion.vue +86 -86
  21. package/components/common/context/recursion/RecursionNew.vue +199 -199
  22. package/components/common/context/recursion/RecursionOld.vue +213 -213
  23. package/components/common/diagramMain/Header.vue +211 -211
  24. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  25. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  26. package/components/common/diagramMain/lib/models/types.ts +21 -21
  27. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  28. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  29. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  30. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  31. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  32. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  33. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  34. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  35. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  36. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +398 -398
  37. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  38. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  39. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  40. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  41. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  42. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  43. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +537 -537
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  52. package/components/common/diagramMain/port/Ports.vue +47 -47
  53. package/components/common/layout/theHeader/helpMenu/About.vue +85 -85
  54. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  55. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +152 -152
  56. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  57. package/components/common/spiceConsole/Drawer.vue +370 -370
  58. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  59. package/components/common/split/vertical/Vertical.vue +160 -160
  60. package/components/common/vm/actions/add/Add.vue +617 -617
  61. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  62. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  63. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +269 -269
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +55 -55
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +27 -27
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  117. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  118. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  119. package/components/common/vm/actions/editSettings/EditSettings.vue +232 -232
  120. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +183 -183
  121. package/components/common/vm/actions/editSettings/new/New.vue +177 -177
  122. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  123. package/components/common/wizards/network/add/lib/config/steps.ts +464 -464
  124. package/composables/productNameLocal.ts +30 -30
  125. package/package.json +2 -2
  126. package/plugins/date.ts +233 -233
  127. package/plugins/recursion.ts +311 -311
  128. package/public/spice-console/lib/images/bitmap.js +203 -203
  129. package/public/spice-console/network/spicechannel.js +383 -383
  130. package/store/main/mutations.ts +7 -7
  131. package/store/main/state.ts +7 -7
@@ -1,232 +1,232 @@
1
- <template>
2
- <common-vm-actions-edit-settings-new
3
- v-if="isNewView"
4
- v-model:vm-name="vmName"
5
- v-model:vm-settings="vmSettingsLocal"
6
- :nodes="props.nodes"
7
- :files="props.files"
8
- :project="props.project"
9
- :loading="loadingLocal"
10
- :datastore="props.datastore"
11
- :networks-table="props.networksTable"
12
- :selected-nav-item="selectedNavItem"
13
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
14
- :error-validation-fields="props.errorValidationFields"
15
- :virtual-hardware-networks="virtualHardwareNetworksLocal"
16
- :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
17
- :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
18
- :state="props.state"
19
- :vm-name-old="props.vmSettings?.name"
20
- :passthrough-devices="props.passthroughDevices"
21
- :get-datastore-table-func="props.getDatastoreTableFunc"
22
- :customize-hardware-submit="customizeHardwareSubmit"
23
- @hide="emits('hide')"
24
- @validate="validateSendData"
25
- @update-vm="emits('update-vm')"
26
- @get-storage="emits('get-storage', $event)"
27
- @get-pci-devices="emits('get-pci-devices')"
28
- @change-boot-order="onChangeBootOrder"
29
- @get-networks-table="emits('get-networks-table', $event)"
30
- @get-folders-or-files="emits('get-folders-or-files', $event)"
31
- @show-datastore-child="emits('show-datastore-child', $event)"
32
- @get-active-device-child="emits('get-active-device-child', $event)"
33
- @change-customize-hardware="onChangeCustomizeHardware"
34
- />
35
- <common-vm-actions-edit-settings-old
36
- v-else
37
- v-model:vm-name="vmName"
38
- v-model:vm-settings="vmSettingsLocal"
39
- :nodes="props.nodes"
40
- :files="props.files"
41
- :project="props.project"
42
- :loading="loadingLocal"
43
- :datastore="props.datastore"
44
- :networks-table="props.networksTable"
45
- :selected-nav-item="selectedNavItem"
46
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
47
- :error-validation-fields="props.errorValidationFields"
48
- :virtual-hardware-networks="virtualHardwareNetworksLocal"
49
- :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
50
- :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
51
- :state="props.state"
52
- :vm-name-old="props.vmSettings?.name"
53
- :passthrough-devices="props.passthroughDevices"
54
- :get-datastore-table-func="props.getDatastoreTableFunc"
55
- :customize-hardware-submit="customizeHardwareSubmit"
56
- @hide="emits('hide')"
57
- @validate="validateSendData"
58
- @update-vm="emits('update-vm')"
59
- @get-storage="emits('get-storage', $event)"
60
- @get-pci-devices="emits('get-pci-devices')"
61
- @change-boot-order="onChangeBootOrder"
62
- @get-networks-table="emits('get-networks-table', $event)"
63
- @get-folders-or-files="emits('get-folders-or-files', $event)"
64
- @show-datastore-child="emits('show-datastore-child', $event)"
65
- @get-active-device-child="emits('get-active-device-child', $event)"
66
- @change-customize-hardware="onChangeCustomizeHardware"
67
- />
68
- </template>
69
-
70
- <script setup lang="ts">
71
- import type { UI_T_Project } from '~/lib/models/types'
72
- import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
73
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
74
- import type {
75
- UI_I_PciDevice,
76
- UI_I_VmSettings,
77
- } from '~/lib/models/store/vm/interfaces'
78
- import type { UI_I_Localization } from '~/lib/models/interfaces'
79
- import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
80
- import type {
81
- UI_I_SendDataNewCdDvdDrive,
82
- UI_I_SendDataNewHardDisk,
83
- UI_I_SendDataNewNetwork,
84
- UI_I_SendDataCpu,
85
- UI_I_SendDataMemory,
86
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
87
- import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
88
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
89
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
90
- import type {
91
- UI_I_DatastoreTableItem,
92
- UI_I_FolderOrFileTreePayload,
93
- } from '~/lib/models/store/storage/interfaces'
94
- import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
95
- import type { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
96
- import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
97
- import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
98
-
99
- const props = defineProps<{
100
- project: UI_T_Project
101
- loading: boolean
102
- vmSettings: UI_I_VmSettings | null
103
- nodes: UI_I_FileTreeNode[]
104
- files: UI_I_FileTreeNode[]
105
- networksTable: UI_I_NetworkTableItem[]
106
- errorValidationFields: UI_I_ErrorValidationField<string>[]
107
- vmCpuHelpTextSecond: string
108
- vmId: string
109
- datastore: UI_I_DatastoreTableItem[]
110
- validateSendDataFunc: UI_T_EditVmFinishFunc
111
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
112
- state?: string | number
113
- passthroughDevices?: UI_I_PciDevice[]
114
- capabilities?: UI_I_Capabilities
115
- }>()
116
-
117
- const emits = defineEmits<{
118
- (event: 'hide'): void
119
- (event: 'update-vm'): void
120
- (event: 'get-storage', value: UI_I_TablePayload): void
121
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
122
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
123
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
124
- (event: 'get-networks-table', value: UI_I_TablePayload): void
125
- (event: 'get-pci-devices'): void
126
- }>()
127
-
128
- const { $store }: any = useNuxtApp()
129
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
130
-
131
- const localization = computed<UI_I_Localization>(() => useLocal())
132
-
133
- watch(
134
- () => props.capabilities,
135
- () => {
136
- if (props.capabilities) mapCapabilities(props.capabilities)
137
- },
138
- { deep: true, immediate: true }
139
- )
140
-
141
- const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
142
-
143
- const loadingLocal = ref<boolean>(false)
144
- watch(
145
- () => props.loading,
146
- (newValue: boolean) => {
147
- loadingLocal.value = newValue
148
- },
149
- { immediate: true }
150
- )
151
-
152
- const vmSettingsLocal = computed<UI_I_VmSettings | null>(() => props.vmSettings)
153
-
154
- const vmName = ref<string>(vmSettingsLocal.value?.name || '')
155
- watch(vmSettingsLocal, (newValue) => {
156
- vmName.value = newValue?.name || ''
157
- })
158
-
159
- const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
160
- const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
161
- null
162
- )
163
- const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
164
- const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
165
- virtualHardwareHardDisks.value = data[0]
166
- virtualHardwareCdDvdDrives.value = data[1]
167
- virtualHardwareNetworks.value = data[2]
168
- }
169
-
170
- const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
171
- const onChangeCustomizeHardware = (
172
- data: UI_I_SendDataCustomizeHardware
173
- ): void => {
174
- customizeHardware.value = data
175
- }
176
- const virtualHardwareHardDisksLocal = computed<
177
- UI_I_SendDataNewHardDisk[] | null
178
- >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
179
- const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
180
- () => customizeHardware.value?.virtualHardware?.networks || null
181
- )
182
- const virtualHardwareCdDvdDrivesLocal = computed<
183
- UI_I_SendDataNewCdDvdDrive[] | null
184
- >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
185
-
186
- const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
187
- () => customizeHardware.value?.virtualHardware?.cpu || null
188
- )
189
- const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
190
- () => customizeHardware.value?.virtualHardware?.memory || null
191
- )
192
-
193
- const customizeHardwareSubmit = ref<null | Function>(null)
194
- const checkCustomizeHardware = async (): Promise<boolean> => {
195
- return new Promise((resolve) => {
196
- customizeHardwareSubmit.value = (data: boolean) => {
197
- customizeHardwareSubmit.value = null
198
-
199
- resolve(data)
200
- }
201
- })
202
- }
203
-
204
- const validateSendData = async (): Promise<void> => {
205
- const isValid = await checkCustomizeHardware()
206
- if (!isValid) {
207
- return
208
- }
209
-
210
- loadingLocal.value = true
211
- props
212
- .validateSendDataFunc(
213
- vmSettingsLocal.value,
214
- virtualHardwareCpu.value,
215
- virtualHardwareMemory.value,
216
- customizeHardware.value,
217
- virtualHardwareNetworks.value,
218
- virtualHardwareHardDisks.value,
219
- virtualHardwareCdDvdDrives.value,
220
- vmName.value,
221
- localization.value,
222
- props.vmId
223
- )
224
- .then((data) => {
225
- loadingLocal.value = false
226
-
227
- !data && emits('update-vm')
228
- })
229
- }
230
- </script>
231
-
232
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-edit-settings-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:vm-settings="vmSettingsLocal"
6
+ :nodes="props.nodes"
7
+ :files="props.files"
8
+ :project="props.project"
9
+ :loading="loadingLocal"
10
+ :datastore="props.datastore"
11
+ :networks-table="props.networksTable"
12
+ :selected-nav-item="selectedNavItem"
13
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
14
+ :error-validation-fields="props.errorValidationFields"
15
+ :virtual-hardware-networks="virtualHardwareNetworksLocal"
16
+ :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
17
+ :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
18
+ :state="props.state"
19
+ :vm-name-old="props.vmSettings?.name"
20
+ :passthrough-devices="props.passthroughDevices"
21
+ :get-datastore-table-func="props.getDatastoreTableFunc"
22
+ :customize-hardware-submit="customizeHardwareSubmit"
23
+ @hide="emits('hide')"
24
+ @validate="validateSendData"
25
+ @update-vm="emits('update-vm')"
26
+ @get-storage="emits('get-storage', $event)"
27
+ @get-pci-devices="emits('get-pci-devices')"
28
+ @change-boot-order="onChangeBootOrder"
29
+ @get-networks-table="emits('get-networks-table', $event)"
30
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
31
+ @show-datastore-child="emits('show-datastore-child', $event)"
32
+ @get-active-device-child="emits('get-active-device-child', $event)"
33
+ @change-customize-hardware="onChangeCustomizeHardware"
34
+ />
35
+ <common-vm-actions-edit-settings-old
36
+ v-else
37
+ v-model:vm-name="vmName"
38
+ v-model:vm-settings="vmSettingsLocal"
39
+ :nodes="props.nodes"
40
+ :files="props.files"
41
+ :project="props.project"
42
+ :loading="loadingLocal"
43
+ :datastore="props.datastore"
44
+ :networks-table="props.networksTable"
45
+ :selected-nav-item="selectedNavItem"
46
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
47
+ :error-validation-fields="props.errorValidationFields"
48
+ :virtual-hardware-networks="virtualHardwareNetworksLocal"
49
+ :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
50
+ :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
51
+ :state="props.state"
52
+ :vm-name-old="props.vmSettings?.name"
53
+ :passthrough-devices="props.passthroughDevices"
54
+ :get-datastore-table-func="props.getDatastoreTableFunc"
55
+ :customize-hardware-submit="customizeHardwareSubmit"
56
+ @hide="emits('hide')"
57
+ @validate="validateSendData"
58
+ @update-vm="emits('update-vm')"
59
+ @get-storage="emits('get-storage', $event)"
60
+ @get-pci-devices="emits('get-pci-devices')"
61
+ @change-boot-order="onChangeBootOrder"
62
+ @get-networks-table="emits('get-networks-table', $event)"
63
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
64
+ @show-datastore-child="emits('show-datastore-child', $event)"
65
+ @get-active-device-child="emits('get-active-device-child', $event)"
66
+ @change-customize-hardware="onChangeCustomizeHardware"
67
+ />
68
+ </template>
69
+
70
+ <script setup lang="ts">
71
+ import type { UI_T_Project } from '~/lib/models/types'
72
+ import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
73
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
74
+ import type {
75
+ UI_I_PciDevice,
76
+ UI_I_VmSettings,
77
+ } from '~/lib/models/store/vm/interfaces'
78
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
79
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
80
+ import type {
81
+ UI_I_SendDataNewCdDvdDrive,
82
+ UI_I_SendDataNewHardDisk,
83
+ UI_I_SendDataNewNetwork,
84
+ UI_I_SendDataCpu,
85
+ UI_I_SendDataMemory,
86
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
87
+ import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
88
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
89
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
90
+ import type {
91
+ UI_I_DatastoreTableItem,
92
+ UI_I_FolderOrFileTreePayload,
93
+ } from '~/lib/models/store/storage/interfaces'
94
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
95
+ import type { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
96
+ import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
97
+ import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
98
+
99
+ const props = defineProps<{
100
+ project: UI_T_Project
101
+ loading: boolean
102
+ vmSettings: UI_I_VmSettings | null
103
+ nodes: UI_I_FileTreeNode[]
104
+ files: UI_I_FileTreeNode[]
105
+ networksTable: UI_I_NetworkTableItem[]
106
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
107
+ vmCpuHelpTextSecond: string
108
+ vmId: string
109
+ datastore: UI_I_DatastoreTableItem[]
110
+ validateSendDataFunc: UI_T_EditVmFinishFunc
111
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
112
+ state?: string | number
113
+ passthroughDevices?: UI_I_PciDevice[]
114
+ capabilities?: UI_I_Capabilities
115
+ }>()
116
+
117
+ const emits = defineEmits<{
118
+ (event: 'hide'): void
119
+ (event: 'update-vm'): void
120
+ (event: 'get-storage', value: UI_I_TablePayload): void
121
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
122
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
123
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
124
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
125
+ (event: 'get-pci-devices'): void
126
+ }>()
127
+
128
+ const { $store }: any = useNuxtApp()
129
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
130
+
131
+ const localization = computed<UI_I_Localization>(() => useLocal())
132
+
133
+ watch(
134
+ () => props.capabilities,
135
+ () => {
136
+ if (props.capabilities) mapCapabilities(props.capabilities)
137
+ },
138
+ { deep: true, immediate: true }
139
+ )
140
+
141
+ const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
142
+
143
+ const loadingLocal = ref<boolean>(false)
144
+ watch(
145
+ () => props.loading,
146
+ (newValue: boolean) => {
147
+ loadingLocal.value = newValue
148
+ },
149
+ { immediate: true }
150
+ )
151
+
152
+ const vmSettingsLocal = computed<UI_I_VmSettings | null>(() => props.vmSettings)
153
+
154
+ const vmName = ref<string>(vmSettingsLocal.value?.name || '')
155
+ watch(vmSettingsLocal, (newValue) => {
156
+ vmName.value = newValue?.name || ''
157
+ })
158
+
159
+ const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
160
+ const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
161
+ null
162
+ )
163
+ const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
164
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
165
+ virtualHardwareHardDisks.value = data[0]
166
+ virtualHardwareCdDvdDrives.value = data[1]
167
+ virtualHardwareNetworks.value = data[2]
168
+ }
169
+
170
+ const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
171
+ const onChangeCustomizeHardware = (
172
+ data: UI_I_SendDataCustomizeHardware
173
+ ): void => {
174
+ customizeHardware.value = data
175
+ }
176
+ const virtualHardwareHardDisksLocal = computed<
177
+ UI_I_SendDataNewHardDisk[] | null
178
+ >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
179
+ const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
180
+ () => customizeHardware.value?.virtualHardware?.networks || null
181
+ )
182
+ const virtualHardwareCdDvdDrivesLocal = computed<
183
+ UI_I_SendDataNewCdDvdDrive[] | null
184
+ >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
185
+
186
+ const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
187
+ () => customizeHardware.value?.virtualHardware?.cpu || null
188
+ )
189
+ const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
190
+ () => customizeHardware.value?.virtualHardware?.memory || null
191
+ )
192
+
193
+ const customizeHardwareSubmit = ref<null | Function>(null)
194
+ const checkCustomizeHardware = async (): Promise<boolean> => {
195
+ return new Promise((resolve) => {
196
+ customizeHardwareSubmit.value = (data: boolean) => {
197
+ customizeHardwareSubmit.value = null
198
+
199
+ resolve(data)
200
+ }
201
+ })
202
+ }
203
+
204
+ const validateSendData = async (): Promise<void> => {
205
+ const isValid = await checkCustomizeHardware()
206
+ if (!isValid) {
207
+ return
208
+ }
209
+
210
+ loadingLocal.value = true
211
+ props
212
+ .validateSendDataFunc(
213
+ vmSettingsLocal.value,
214
+ virtualHardwareCpu.value,
215
+ virtualHardwareMemory.value,
216
+ customizeHardware.value,
217
+ virtualHardwareNetworks.value,
218
+ virtualHardwareHardDisks.value,
219
+ virtualHardwareCdDvdDrives.value,
220
+ vmName.value,
221
+ localization.value,
222
+ props.vmId
223
+ )
224
+ .then((data) => {
225
+ loadingLocal.value = false
226
+
227
+ !data && emits('update-vm')
228
+ })
229
+ }
230
+ </script>
231
+
232
+ <style scoped lang="scss"></style>