bfg-common 1.4.695 → 1.4.696

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