bfg-common 1.4.655 → 1.4.656

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 (116) hide show
  1. package/assets/localization/local_be.json +13 -1
  2. package/assets/localization/local_en.json +13 -1
  3. package/assets/localization/local_hy.json +13 -1
  4. package/assets/localization/local_kk.json +13 -1
  5. package/assets/localization/local_ru.json +14 -2
  6. package/assets/localization/local_zh.json +13 -1
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  9. package/components/atoms/stack/StackBlock.vue +185 -185
  10. package/components/atoms/table/dataGrid/DataGrid.vue +1633 -1633
  11. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  12. package/components/common/browse/BrowseNew.vue +237 -237
  13. package/components/common/browse/BrowseOld.vue +217 -217
  14. package/components/common/browse/blocks/contents/Files.vue +37 -37
  15. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  16. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  17. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  18. package/components/common/context/lib/models/interfaces.ts +30 -30
  19. package/components/common/context/recursion/Recursion.vue +86 -86
  20. package/components/common/context/recursion/RecursionNew.vue +199 -199
  21. package/components/common/context/recursion/RecursionOld.vue +213 -213
  22. package/components/common/layout/theHeader/helpMenu/About.vue +85 -85
  23. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +105 -105
  24. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +152 -152
  25. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  26. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  27. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +143 -2
  28. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces.ts +1 -0
  29. package/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types.ts +1 -1
  30. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/lib/config/optionsMetrics.ts +5 -5
  31. package/components/common/monitor/overview/filters/Filters.vue +1 -3
  32. package/components/common/monitor/overview/filters/lib/config/filterOptions.ts +27 -9
  33. package/components/common/monitor/overview/filters/lib/models/interfaces.ts +1 -0
  34. package/components/common/monitor/overview/filters/lib/models/types.ts +2 -0
  35. package/components/common/monitor/resourceAllocation/lib/models/interfaces.ts +13 -0
  36. package/components/common/monitor/resourceAllocation/resourceAllocation.vue +196 -0
  37. package/components/common/spiceConsole/Drawer.vue +370 -370
  38. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  39. package/components/common/split/vertical/Vertical.vue +160 -160
  40. package/components/common/vm/actions/add/Add.vue +617 -617
  41. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  42. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  43. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +269 -269
  44. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +55 -55
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +107 -107
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +115 -115
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  100. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  101. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  102. package/components/common/vm/actions/editSettings/EditSettings.vue +232 -232
  103. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +183 -183
  104. package/components/common/vm/actions/editSettings/new/New.vue +177 -177
  105. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  106. package/components/common/wizards/datastore/add/Add.vue +1 -1
  107. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +1 -2
  108. package/composables/productNameLocal.ts +30 -30
  109. package/package.json +1 -1
  110. package/plugins/date.ts +233 -233
  111. package/plugins/recursion.ts +311 -311
  112. package/public/spice-console/lib/images/bitmap.js +203 -203
  113. package/public/spice-console/network/spicechannel.js +383 -383
  114. package/store/main/mutations.ts +7 -7
  115. package/store/main/state.ts +7 -7
  116. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -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>