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,267 +1,267 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-new
3
- v-if="isNewView"
4
- v-model:vm-name="vmName"
5
- v-model:guest-machine-type="guestMachineType"
6
- v-model:guest-os-family="guestOsFamily"
7
- v-model:guest-os-version="guestOsVersion"
8
- v-model:selected-nav-item="selectedNavItemLocal"
9
- v-model:virtual-hardware-invalid="virtualHardwareInvalid"
10
- v-model:vm-options-invalid="vmOptionsInvalid"
11
- :error-validation-fields="props.errorValidationFields"
12
- :storage="props.storage"
13
- :cpu-models="props.cpuModels"
14
- :hard-disks-for-boot-options="props.hardDisksForBootOptions"
15
- :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
16
- :networks-for-boot-options="props.networksForBootOptions"
17
- :max-cpus="props.maxCpus"
18
- :max-memory="props.maxMemory"
19
- :nodes="props.nodes"
20
- :files="props.files"
21
- :networks-table="props.networksTable"
22
- :cpu="props.cpu"
23
- :memory="props.memory"
24
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
25
- :get-datastore-table-func="props.getDatastoreTableFunc"
26
- :datastore="props.datastore"
27
- :hard-disks="props.hardDisks"
28
- :cd-dvd-drives="props.cdDvdDrives"
29
- :networks="props.networks"
30
- :video-card="props.videoCard"
31
- :pci-devices="props.pciDevices"
32
- :usb-controller="props.usbController"
33
- :options="props.options"
34
- :is-edit="props.isEdit"
35
- :is-clone="props.isClone"
36
- :state="props.state"
37
- :passthrough-devices="props.passthroughDevices"
38
- :project="props.project"
39
- :nav-items="navItems"
40
- :errors="errors"
41
- @change-boot-order="emits('change-boot-order', $event)"
42
- @send-data="emits('send-data', $event)"
43
- @next="emits('next')"
44
- @get-storage="emits('get-storage', $event)"
45
- @get-folders-or-files="emits('get-folders-or-files', $event)"
46
- @get-active-device-child="emits('get-active-device-child', $event)"
47
- @show-datastore-child="emits('show-datastore-child', $event)"
48
- @remove-error-by-title="emits('remove-error-by-title', $event)"
49
- @get-networks-table="emits('get-networks-table', $event)"
50
- @get-pci-devices="emits('get-pci-devices')"
51
- @remove-validation-errors="onRemoveValidationErrors"
52
- @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
53
- @send-data-vm-options-method="onSendDataVmOptionsMethod"
54
- />
55
- <common-vm-actions-common-customize-hardware-old
56
- v-else
57
- v-model:vm-name="vmName"
58
- v-model:guest-machine-type="guestMachineType"
59
- v-model:guest-os-family="guestOsFamily"
60
- v-model:guest-os-version="guestOsVersion"
61
- v-model:selected-nav-item="selectedNavItemLocal"
62
- v-model:virtual-hardware-invalid="virtualHardwareInvalid"
63
- v-model:vm-options-invalid="vmOptionsInvalid"
64
- :error-validation-fields="props.errorValidationFields"
65
- :storage="props.storage"
66
- :cpu-models="props.cpuModels"
67
- :hard-disks-for-boot-options="props.hardDisksForBootOptions"
68
- :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
69
- :networks-for-boot-options="props.networksForBootOptions"
70
- :max-cpus="props.maxCpus"
71
- :max-memory="props.maxMemory"
72
- :nodes="props.nodes"
73
- :files="props.files"
74
- :networks-table="props.networksTable"
75
- :cpu="props.cpu"
76
- :memory="props.memory"
77
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
78
- :get-datastore-table-func="props.getDatastoreTableFunc"
79
- :datastore="props.datastore"
80
- :hard-disks="props.hardDisks"
81
- :cd-dvd-drives="props.cdDvdDrives"
82
- :networks="props.networks"
83
- :video-card="props.videoCard"
84
- :pci-devices="props.pciDevices"
85
- :usb-controller="props.usbController"
86
- :options="props.options"
87
- :is-edit="props.isEdit"
88
- :is-clone="props.isClone"
89
- :state="props.state"
90
- :passthrough-devices="props.passthroughDevices"
91
- :project="props.project"
92
- :nav-items="navItems"
93
- :errors="errors"
94
- @change-boot-order="emits('change-boot-order', $event)"
95
- @send-data="emits('send-data', $event)"
96
- @next="emits('next')"
97
- @get-storage="emits('get-storage', $event)"
98
- @get-folders-or-files="emits('get-folders-or-files', $event)"
99
- @get-active-device-child="emits('get-active-device-child', $event)"
100
- @show-datastore-child="emits('show-datastore-child', $event)"
101
- @remove-error-by-title="emits('remove-error-by-title', $event)"
102
- @get-networks-table="emits('get-networks-table', $event)"
103
- @get-pci-devices="emits('get-pci-devices')"
104
- @remove-validation-errors="onRemoveValidationErrors"
105
- @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
106
- @send-data-vm-options-method="onSendDataVmOptionsMethod"
107
- />
108
- </template>
109
-
110
- <script setup lang="ts">
111
- import type { UI_T_Project } from '~/lib/models/types'
112
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
113
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
114
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
115
- import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
116
- import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
117
- import type {
118
- UI_I_SendDataNewPciDevice,
119
- UI_I_SendDataNewCdDvdDrive,
120
- UI_I_SendDataNewHardDisk,
121
- UI_I_SendDataNewNetwork,
122
- UI_I_SendDataVideoCard,
123
- UI_I_SendDataVirtualHardware,
124
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
125
- import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
126
- import type { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
127
- import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
128
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
129
- import type { UI_I_Localization } from '~/lib/models/interfaces'
130
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
131
- import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
132
- import type {
133
- API_UI_I_VmEditCpu,
134
- API_UI_I_VmEditMemory,
135
- UI_I_PciDevice,
136
- } from '~/lib/models/store/vm/interfaces'
137
- import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
138
-
139
- const vmName = defineModel<string>('vmName', { required: true })
140
- const guestMachineType = defineModel<UI_I_OptionItem | null>(
141
- 'guest-machine-type'
142
- )
143
- const guestOsFamily = defineModel<UI_I_OptionItem | null>('guestOsFamily')
144
- const guestOsVersion = defineModel<UI_I_OptionItem | null>('guestOsVersion')
145
-
146
- const props = defineProps<{
147
- errorValidationFields: UI_I_ErrorValidationField[]
148
- storage: UI_I_DatastoreTableItem | null
149
- cpuModels: UI_I_OptionItem[]
150
- hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
151
- cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
152
- networksForBootOptions: UI_I_SendDataNewNetwork[] | null
153
- customizeHardwareSubmit: null | Function
154
- maxCpus: number
155
- maxMemory: number
156
- selectedNavItem: UI_T_SelectedNavItem
157
- nodes: UI_I_FileTreeNode[]
158
- files: UI_I_FileTreeNode[]
159
- networksTable: UI_I_NetworkTableItem[]
160
- cpu?: API_UI_I_VmEditCpu
161
- memory?: API_UI_I_VmEditMemory
162
- vmCpuHelpTextSecond?: string
163
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
164
- datastore: UI_I_DatastoreTableItem[]
165
- hardDisks?: UI_I_SendDataNewHardDisk[] | null
166
- cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
167
- networks?: UI_I_SendDataNewNetwork[] | null
168
- videoCard?: UI_I_SendDataVideoCard
169
- pciDevices?: UI_I_SendDataNewPciDevice[]
170
- usbController?: string
171
- options?: UI_I_SendDataVmoptions
172
- isEdit?: boolean
173
- isClone?: boolean
174
- state?: string | number
175
- passthroughDevices?: UI_I_PciDevice[]
176
- project?: UI_T_Project
177
- }>()
178
- const emits = defineEmits<{
179
- (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
180
- (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
181
- (event: 'next'): void
182
- (event: 'get-storage', value: UI_I_TablePayload): void
183
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
184
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
185
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
186
- (event: 'remove-error-by-title', value: string): void
187
- (event: 'get-networks-table', value: UI_I_TablePayload): void
188
- (event: 'get-pci-devices'): void
189
- }>()
190
-
191
- const { $store }: any = useNuxtApp()
192
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
193
-
194
- const localization = computed<UI_I_Localization>(() => useLocal())
195
-
196
- const navItems = computed<UI_I_TabItem[]>(() =>
197
- navItemsFunc(localization.value)
198
- )
199
- const selectedNavItemLocal = ref<number>(0)
200
- watch(
201
- () => props.selectedNavItem,
202
- (newValue) => {
203
- selectedNavItemLocal.value = newValue
204
- }
205
- )
206
-
207
- const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
208
- const onSendDataVirtualHardwareMethod = (
209
- data: UI_I_SendDataVirtualHardware
210
- ): void => {
211
- sendDataVirtualHardware.value = data
212
- sendData()
213
- }
214
- const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
215
- const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
216
- sendDataVmOptions.value = data
217
- sendData()
218
- }
219
- const sendData = (): void => {
220
- emits('send-data', {
221
- virtualHardware: sendDataVirtualHardware.value,
222
- vmOptions: sendDataVmOptions.value,
223
- })
224
- }
225
-
226
- watch(
227
- () => props.customizeHardwareSubmit,
228
- (newValue) => {
229
- newValue && submit(newValue)
230
- }
231
- )
232
- const virtualHardwareInvalid = ref<string[]>([])
233
- const vmOptionsInvalid = ref<string[]>([])
234
- const submit = (cb: Function): void => {
235
- const invalidDevices = [
236
- ...virtualHardwareInvalid.value,
237
- ...vmOptionsInvalid.value,
238
- ]
239
- .filter((item: string) => !!item)
240
- .join(', ')
241
-
242
- if (invalidDevices) {
243
- showValidationErrors([
244
- localization.value.common.thereErrorsFollowingFields.replace(
245
- '{0}',
246
- invalidDevices
247
- ),
248
- ])
249
- cb(false)
250
- return
251
- }
252
- onRemoveValidationErrors()
253
-
254
- // emits('next')
255
- cb(true)
256
- }
257
-
258
- const errors = ref<string[]>([])
259
- const showValidationErrors = (arr: string[]): void => {
260
- errors.value = arr
261
- }
262
- const onRemoveValidationErrors = (): void => {
263
- errors.value = []
264
- }
265
- </script>
266
-
267
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:guest-machine-type="guestMachineType"
6
+ v-model:guest-os-family="guestOsFamily"
7
+ v-model:guest-os-version="guestOsVersion"
8
+ v-model:selected-nav-item="selectedNavItemLocal"
9
+ v-model:virtual-hardware-invalid="virtualHardwareInvalid"
10
+ v-model:vm-options-invalid="vmOptionsInvalid"
11
+ :error-validation-fields="props.errorValidationFields"
12
+ :storage="props.storage"
13
+ :cpu-models="props.cpuModels"
14
+ :hard-disks-for-boot-options="props.hardDisksForBootOptions"
15
+ :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
16
+ :networks-for-boot-options="props.networksForBootOptions"
17
+ :max-cpus="props.maxCpus"
18
+ :max-memory="props.maxMemory"
19
+ :nodes="props.nodes"
20
+ :files="props.files"
21
+ :networks-table="props.networksTable"
22
+ :cpu="props.cpu"
23
+ :memory="props.memory"
24
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
25
+ :get-datastore-table-func="props.getDatastoreTableFunc"
26
+ :datastore="props.datastore"
27
+ :hard-disks="props.hardDisks"
28
+ :cd-dvd-drives="props.cdDvdDrives"
29
+ :networks="props.networks"
30
+ :video-card="props.videoCard"
31
+ :pci-devices="props.pciDevices"
32
+ :usb-controller="props.usbController"
33
+ :options="props.options"
34
+ :is-edit="props.isEdit"
35
+ :is-clone="props.isClone"
36
+ :state="props.state"
37
+ :passthrough-devices="props.passthroughDevices"
38
+ :project="props.project"
39
+ :nav-items="navItems"
40
+ :errors="errors"
41
+ @change-boot-order="emits('change-boot-order', $event)"
42
+ @send-data="emits('send-data', $event)"
43
+ @next="emits('next')"
44
+ @get-storage="emits('get-storage', $event)"
45
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
46
+ @get-active-device-child="emits('get-active-device-child', $event)"
47
+ @show-datastore-child="emits('show-datastore-child', $event)"
48
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
49
+ @get-networks-table="emits('get-networks-table', $event)"
50
+ @get-pci-devices="emits('get-pci-devices')"
51
+ @remove-validation-errors="onRemoveValidationErrors"
52
+ @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
53
+ @send-data-vm-options-method="onSendDataVmOptionsMethod"
54
+ />
55
+ <common-vm-actions-common-customize-hardware-old
56
+ v-else
57
+ v-model:vm-name="vmName"
58
+ v-model:guest-machine-type="guestMachineType"
59
+ v-model:guest-os-family="guestOsFamily"
60
+ v-model:guest-os-version="guestOsVersion"
61
+ v-model:selected-nav-item="selectedNavItemLocal"
62
+ v-model:virtual-hardware-invalid="virtualHardwareInvalid"
63
+ v-model:vm-options-invalid="vmOptionsInvalid"
64
+ :error-validation-fields="props.errorValidationFields"
65
+ :storage="props.storage"
66
+ :cpu-models="props.cpuModels"
67
+ :hard-disks-for-boot-options="props.hardDisksForBootOptions"
68
+ :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
69
+ :networks-for-boot-options="props.networksForBootOptions"
70
+ :max-cpus="props.maxCpus"
71
+ :max-memory="props.maxMemory"
72
+ :nodes="props.nodes"
73
+ :files="props.files"
74
+ :networks-table="props.networksTable"
75
+ :cpu="props.cpu"
76
+ :memory="props.memory"
77
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
78
+ :get-datastore-table-func="props.getDatastoreTableFunc"
79
+ :datastore="props.datastore"
80
+ :hard-disks="props.hardDisks"
81
+ :cd-dvd-drives="props.cdDvdDrives"
82
+ :networks="props.networks"
83
+ :video-card="props.videoCard"
84
+ :pci-devices="props.pciDevices"
85
+ :usb-controller="props.usbController"
86
+ :options="props.options"
87
+ :is-edit="props.isEdit"
88
+ :is-clone="props.isClone"
89
+ :state="props.state"
90
+ :passthrough-devices="props.passthroughDevices"
91
+ :project="props.project"
92
+ :nav-items="navItems"
93
+ :errors="errors"
94
+ @change-boot-order="emits('change-boot-order', $event)"
95
+ @send-data="emits('send-data', $event)"
96
+ @next="emits('next')"
97
+ @get-storage="emits('get-storage', $event)"
98
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
99
+ @get-active-device-child="emits('get-active-device-child', $event)"
100
+ @show-datastore-child="emits('show-datastore-child', $event)"
101
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
102
+ @get-networks-table="emits('get-networks-table', $event)"
103
+ @get-pci-devices="emits('get-pci-devices')"
104
+ @remove-validation-errors="onRemoveValidationErrors"
105
+ @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
106
+ @send-data-vm-options-method="onSendDataVmOptionsMethod"
107
+ />
108
+ </template>
109
+
110
+ <script setup lang="ts">
111
+ import type { UI_T_Project } from '~/lib/models/types'
112
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
113
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
114
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
115
+ import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
116
+ import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
117
+ import type {
118
+ UI_I_SendDataNewPciDevice,
119
+ UI_I_SendDataNewCdDvdDrive,
120
+ UI_I_SendDataNewHardDisk,
121
+ UI_I_SendDataNewNetwork,
122
+ UI_I_SendDataVideoCard,
123
+ UI_I_SendDataVirtualHardware,
124
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
125
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
126
+ import type { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
127
+ import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
128
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
129
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
130
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
131
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
132
+ import type {
133
+ API_UI_I_VmEditCpu,
134
+ API_UI_I_VmEditMemory,
135
+ UI_I_PciDevice,
136
+ } from '~/lib/models/store/vm/interfaces'
137
+ import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
138
+
139
+ const vmName = defineModel<string>('vmName', { required: true })
140
+ const guestMachineType = defineModel<UI_I_OptionItem | null>(
141
+ 'guest-machine-type'
142
+ )
143
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guestOsFamily')
144
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guestOsVersion')
145
+
146
+ const props = defineProps<{
147
+ errorValidationFields: UI_I_ErrorValidationField[]
148
+ storage: UI_I_DatastoreTableItem | null
149
+ cpuModels: UI_I_OptionItem[]
150
+ hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
151
+ cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
152
+ networksForBootOptions: UI_I_SendDataNewNetwork[] | null
153
+ customizeHardwareSubmit: null | Function
154
+ maxCpus: number
155
+ maxMemory: number
156
+ selectedNavItem: UI_T_SelectedNavItem
157
+ nodes: UI_I_FileTreeNode[]
158
+ files: UI_I_FileTreeNode[]
159
+ networksTable: UI_I_NetworkTableItem[]
160
+ cpu?: API_UI_I_VmEditCpu
161
+ memory?: API_UI_I_VmEditMemory
162
+ vmCpuHelpTextSecond?: string
163
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
164
+ datastore: UI_I_DatastoreTableItem[]
165
+ hardDisks?: UI_I_SendDataNewHardDisk[] | null
166
+ cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
167
+ networks?: UI_I_SendDataNewNetwork[] | null
168
+ videoCard?: UI_I_SendDataVideoCard
169
+ pciDevices?: UI_I_SendDataNewPciDevice[]
170
+ usbController?: string
171
+ options?: UI_I_SendDataVmoptions
172
+ isEdit?: boolean
173
+ isClone?: boolean
174
+ state?: string | number
175
+ passthroughDevices?: UI_I_PciDevice[]
176
+ project?: UI_T_Project
177
+ }>()
178
+ const emits = defineEmits<{
179
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
180
+ (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
181
+ (event: 'next'): void
182
+ (event: 'get-storage', value: UI_I_TablePayload): void
183
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
184
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
185
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
186
+ (event: 'remove-error-by-title', value: string): void
187
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
188
+ (event: 'get-pci-devices'): void
189
+ }>()
190
+
191
+ const { $store }: any = useNuxtApp()
192
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
193
+
194
+ const localization = computed<UI_I_Localization>(() => useLocal())
195
+
196
+ const navItems = computed<UI_I_TabItem[]>(() =>
197
+ navItemsFunc(localization.value)
198
+ )
199
+ const selectedNavItemLocal = ref<number>(0)
200
+ watch(
201
+ () => props.selectedNavItem,
202
+ (newValue) => {
203
+ selectedNavItemLocal.value = newValue
204
+ }
205
+ )
206
+
207
+ const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
208
+ const onSendDataVirtualHardwareMethod = (
209
+ data: UI_I_SendDataVirtualHardware
210
+ ): void => {
211
+ sendDataVirtualHardware.value = data
212
+ sendData()
213
+ }
214
+ const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
215
+ const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
216
+ sendDataVmOptions.value = data
217
+ sendData()
218
+ }
219
+ const sendData = (): void => {
220
+ emits('send-data', {
221
+ virtualHardware: sendDataVirtualHardware.value,
222
+ vmOptions: sendDataVmOptions.value,
223
+ })
224
+ }
225
+
226
+ watch(
227
+ () => props.customizeHardwareSubmit,
228
+ (newValue) => {
229
+ newValue && submit(newValue)
230
+ }
231
+ )
232
+ const virtualHardwareInvalid = ref<string[]>([])
233
+ const vmOptionsInvalid = ref<string[]>([])
234
+ const submit = (cb: Function): void => {
235
+ const invalidDevices = [
236
+ ...virtualHardwareInvalid.value,
237
+ ...vmOptionsInvalid.value,
238
+ ]
239
+ .filter((item: string) => !!item)
240
+ .join(', ')
241
+
242
+ if (invalidDevices) {
243
+ showValidationErrors([
244
+ localization.value.common.thereErrorsFollowingFields.replace(
245
+ '{0}',
246
+ invalidDevices
247
+ ),
248
+ ])
249
+ cb(false)
250
+ return
251
+ }
252
+ onRemoveValidationErrors()
253
+
254
+ // emits('next')
255
+ cb(true)
256
+ }
257
+
258
+ const errors = ref<string[]>([])
259
+ const showValidationErrors = (arr: string[]): void => {
260
+ errors.value = arr
261
+ }
262
+ const onRemoveValidationErrors = (): void => {
263
+ errors.value = []
264
+ }
265
+ </script>
266
+
267
+ <style scoped lang="scss"></style>