bfg-common 1.4.860 → 1.4.862

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 (143) hide show
  1. package/assets/scss/common/normalize.scss +361 -361
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  4. package/components/atoms/collapse/CollapseNav.vue +164 -164
  5. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  6. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  7. package/components/atoms/stack/StackBlock.vue +185 -185
  8. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  9. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  10. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  11. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  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/Context.vue +111 -111
  19. package/components/common/context/lib/models/interfaces.ts +30 -30
  20. package/components/common/context/recursion/Recursion.vue +87 -87
  21. package/components/common/context/recursion/RecursionOld.vue +227 -227
  22. package/components/common/details/DetailsItem.vue +109 -109
  23. package/components/common/graph/Graph.vue +104 -104
  24. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  25. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  26. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  27. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  28. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  29. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  30. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  31. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  32. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  33. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  34. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  35. package/components/common/pages/home/StatusContent.vue +49 -49
  36. package/components/common/pages/home/headline/Headline.vue +45 -45
  37. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  38. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  39. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  40. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  41. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  42. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  43. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  44. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  45. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  46. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  47. package/components/common/pages/packages/Packages.vue +208 -208
  48. package/components/common/recursionTree/RecursionTree.vue +223 -223
  49. package/components/common/select/button/ButtonDropdown.vue +108 -108
  50. package/components/common/spiceConsole/Drawer.vue +370 -370
  51. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  52. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  53. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  54. package/components/common/split/vertical/Vertical.vue +160 -160
  55. package/components/common/vm/actions/add/Add.vue +621 -621
  56. package/components/common/vm/actions/clone/Clone.vue +639 -639
  57. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  58. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +271 -271
  59. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +271 -271
  60. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +174 -174
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +694 -694
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +364 -364
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +229 -229
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +247 -247
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +283 -283
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  124. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  125. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  126. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  127. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  128. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  129. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  130. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  131. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  132. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  133. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  134. package/composables/productNameLocal.ts +30 -30
  135. package/composables/useAppVersion.ts +21 -21
  136. package/package.json +1 -1
  137. package/plugins/date.ts +233 -233
  138. package/plugins/recursion.ts +311 -311
  139. package/public/spice-console/lib/images/bitmap.js +203 -203
  140. package/public/spice-console/network/spicechannel.js +383 -383
  141. package/store/main/mutations.ts +7 -7
  142. package/store/main/state.ts +7 -7
  143. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,271 +1,271 @@
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
- :mediated-devices="props.mediatedDevices"
39
- :project="props.project"
40
- :nav-items="navItems"
41
- :errors="errors"
42
- @change-boot-order="emits('change-boot-order', $event)"
43
- @send-data="emits('send-data', $event)"
44
- @next="emits('next')"
45
- @get-storage="emits('get-storage', $event)"
46
- @get-folders-or-files="emits('get-folders-or-files', $event)"
47
- @get-active-device-child="emits('get-active-device-child', $event)"
48
- @show-datastore-child="emits('show-datastore-child', $event)"
49
- @remove-error-by-title="emits('remove-error-by-title', $event)"
50
- @get-networks-table="emits('get-networks-table', $event)"
51
- @get-pci-devices="emits('get-pci-devices')"
52
- @remove-validation-errors="onRemoveValidationErrors"
53
- @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
54
- @send-data-vm-options-method="onSendDataVmOptionsMethod"
55
- />
56
- <common-vm-actions-common-customize-hardware-old
57
- v-else
58
- v-model:vm-name="vmName"
59
- v-model:guest-machine-type="guestMachineType"
60
- v-model:guest-os-family="guestOsFamily"
61
- v-model:guest-os-version="guestOsVersion"
62
- v-model:selected-nav-item="selectedNavItemLocal"
63
- v-model:virtual-hardware-invalid="virtualHardwareInvalid"
64
- v-model:vm-options-invalid="vmOptionsInvalid"
65
- :error-validation-fields="props.errorValidationFields"
66
- :storage="props.storage"
67
- :cpu-models="props.cpuModels"
68
- :hard-disks-for-boot-options="props.hardDisksForBootOptions"
69
- :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
70
- :networks-for-boot-options="props.networksForBootOptions"
71
- :max-cpus="props.maxCpus"
72
- :max-memory="props.maxMemory"
73
- :nodes="props.nodes"
74
- :files="props.files"
75
- :networks-table="props.networksTable"
76
- :cpu="props.cpu"
77
- :memory="props.memory"
78
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
79
- :get-datastore-table-func="props.getDatastoreTableFunc"
80
- :datastore="props.datastore"
81
- :hard-disks="props.hardDisks"
82
- :cd-dvd-drives="props.cdDvdDrives"
83
- :networks="props.networks"
84
- :video-card="props.videoCard"
85
- :pci-devices="props.pciDevices"
86
- :usb-controller="props.usbController"
87
- :options="props.options"
88
- :is-edit="props.isEdit"
89
- :is-clone="props.isClone"
90
- :state="props.state"
91
- :passthrough-devices="props.passthroughDevices"
92
- :mediated-devices="props.mediatedDevices"
93
- :project="props.project"
94
- :nav-items="navItems"
95
- :errors="errors"
96
- @change-boot-order="emits('change-boot-order', $event)"
97
- @send-data="emits('send-data', $event)"
98
- @next="emits('next')"
99
- @get-storage="emits('get-storage', $event)"
100
- @get-folders-or-files="emits('get-folders-or-files', $event)"
101
- @get-active-device-child="emits('get-active-device-child', $event)"
102
- @show-datastore-child="emits('show-datastore-child', $event)"
103
- @remove-error-by-title="emits('remove-error-by-title', $event)"
104
- @get-networks-table="emits('get-networks-table', $event)"
105
- @get-pci-devices="emits('get-pci-devices')"
106
- @remove-validation-errors="onRemoveValidationErrors"
107
- @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
108
- @send-data-vm-options-method="onSendDataVmOptionsMethod"
109
- />
110
- </template>
111
-
112
- <script setup lang="ts">
113
- import type { UI_T_Project } from '~/lib/models/types'
114
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
115
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
116
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
117
- import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
118
- import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
119
- import type {
120
- UI_I_SendDataNewPciDevice,
121
- UI_I_SendDataNewCdDvdDrive,
122
- UI_I_SendDataNewHardDisk,
123
- UI_I_SendDataNewNetwork,
124
- UI_I_SendDataVideoCard,
125
- UI_I_SendDataVirtualHardware,
126
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
127
- import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
128
- import type { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
129
- import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
130
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
131
- import type { UI_I_Localization } from '~/lib/models/interfaces'
132
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
133
- import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
134
- import type {
135
- API_UI_I_VmEditCpu,
136
- API_UI_I_VmEditMemory,
137
- UI_I_MediatedDevice,
138
- UI_I_PciDevice,
139
- } from '~/lib/models/store/vm/interfaces'
140
- import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
141
-
142
- const vmName = defineModel<string>('vmName', { required: true })
143
- const guestMachineType = defineModel<UI_I_OptionItem | null>(
144
- 'guest-machine-type'
145
- )
146
- const guestOsFamily = defineModel<UI_I_OptionItem | null>('guestOsFamily')
147
- const guestOsVersion = defineModel<UI_I_OptionItem | null>('guestOsVersion')
148
-
149
- const props = defineProps<{
150
- errorValidationFields: UI_I_ErrorValidationField[]
151
- storage: UI_I_DatastoreTableItem | null
152
- cpuModels: UI_I_OptionItem[]
153
- hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
154
- cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
155
- networksForBootOptions: UI_I_SendDataNewNetwork[] | null
156
- customizeHardwareSubmit: null | Function
157
- maxCpus: number
158
- maxMemory: number
159
- selectedNavItem: UI_T_SelectedNavItem
160
- nodes: UI_I_FileTreeNode[]
161
- files: UI_I_FileTreeNode[]
162
- networksTable: UI_I_NetworkTableItem[]
163
- cpu?: API_UI_I_VmEditCpu
164
- memory?: API_UI_I_VmEditMemory
165
- vmCpuHelpTextSecond?: string
166
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
167
- datastore: UI_I_DatastoreTableItem[]
168
- hardDisks?: UI_I_SendDataNewHardDisk[] | null
169
- cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
170
- networks?: UI_I_SendDataNewNetwork[] | null
171
- videoCard?: UI_I_SendDataVideoCard
172
- pciDevices?: UI_I_SendDataNewPciDevice[]
173
- usbController?: string
174
- options?: UI_I_SendDataVmoptions
175
- isEdit?: boolean
176
- isClone?: boolean
177
- state?: string | number
178
- passthroughDevices?: UI_I_PciDevice[]
179
- mediatedDevices?: UI_I_MediatedDevice[]
180
- project?: UI_T_Project
181
- }>()
182
- const emits = defineEmits<{
183
- (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
184
- (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
185
- (event: 'next'): void
186
- (event: 'get-storage', value: UI_I_TablePayload): void
187
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
188
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
189
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
190
- (event: 'remove-error-by-title', value: string): void
191
- (event: 'get-networks-table', value: UI_I_TablePayload): void
192
- (event: 'get-pci-devices'): void
193
- }>()
194
-
195
- const { $store }: any = useNuxtApp()
196
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
197
-
198
- const localization = computed<UI_I_Localization>(() => useLocal())
199
-
200
- const navItems = computed<UI_I_TabItem[]>(() =>
201
- navItemsFunc(localization.value)
202
- )
203
- const selectedNavItemLocal = ref<number>(0)
204
- watch(
205
- () => props.selectedNavItem,
206
- (newValue) => {
207
- selectedNavItemLocal.value = newValue
208
- }
209
- )
210
-
211
- const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
212
- const onSendDataVirtualHardwareMethod = (
213
- data: UI_I_SendDataVirtualHardware
214
- ): void => {
215
- sendDataVirtualHardware.value = data
216
- sendData()
217
- }
218
- const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
219
- const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
220
- sendDataVmOptions.value = data
221
- sendData()
222
- }
223
- const sendData = (): void => {
224
- emits('send-data', {
225
- virtualHardware: sendDataVirtualHardware.value,
226
- vmOptions: sendDataVmOptions.value,
227
- })
228
- }
229
-
230
- watch(
231
- () => props.customizeHardwareSubmit,
232
- (newValue) => {
233
- newValue && submit(newValue)
234
- }
235
- )
236
- const virtualHardwareInvalid = ref<string[]>([])
237
- const vmOptionsInvalid = ref<string[]>([])
238
- const submit = (cb: Function): void => {
239
- const invalidDevices = [
240
- ...virtualHardwareInvalid.value,
241
- ...vmOptionsInvalid.value,
242
- ]
243
- .filter((item: string) => !!item)
244
- .join(', ')
245
-
246
- if (invalidDevices) {
247
- showValidationErrors([
248
- localization.value.common.thereErrorsFollowingFields.replace(
249
- '{0}',
250
- invalidDevices
251
- ),
252
- ])
253
- cb(false)
254
- return
255
- }
256
- onRemoveValidationErrors()
257
-
258
- // emits('next')
259
- cb(true)
260
- }
261
-
262
- const errors = ref<string[]>([])
263
- const showValidationErrors = (arr: string[]): void => {
264
- errors.value = arr
265
- }
266
- const onRemoveValidationErrors = (): void => {
267
- errors.value = []
268
- }
269
- </script>
270
-
271
- <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
+ :mediated-devices="props.mediatedDevices"
39
+ :project="props.project"
40
+ :nav-items="navItems"
41
+ :errors="errors"
42
+ @change-boot-order="emits('change-boot-order', $event)"
43
+ @send-data="emits('send-data', $event)"
44
+ @next="emits('next')"
45
+ @get-storage="emits('get-storage', $event)"
46
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
47
+ @get-active-device-child="emits('get-active-device-child', $event)"
48
+ @show-datastore-child="emits('show-datastore-child', $event)"
49
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
50
+ @get-networks-table="emits('get-networks-table', $event)"
51
+ @get-pci-devices="emits('get-pci-devices')"
52
+ @remove-validation-errors="onRemoveValidationErrors"
53
+ @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
54
+ @send-data-vm-options-method="onSendDataVmOptionsMethod"
55
+ />
56
+ <common-vm-actions-common-customize-hardware-old
57
+ v-else
58
+ v-model:vm-name="vmName"
59
+ v-model:guest-machine-type="guestMachineType"
60
+ v-model:guest-os-family="guestOsFamily"
61
+ v-model:guest-os-version="guestOsVersion"
62
+ v-model:selected-nav-item="selectedNavItemLocal"
63
+ v-model:virtual-hardware-invalid="virtualHardwareInvalid"
64
+ v-model:vm-options-invalid="vmOptionsInvalid"
65
+ :error-validation-fields="props.errorValidationFields"
66
+ :storage="props.storage"
67
+ :cpu-models="props.cpuModels"
68
+ :hard-disks-for-boot-options="props.hardDisksForBootOptions"
69
+ :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
70
+ :networks-for-boot-options="props.networksForBootOptions"
71
+ :max-cpus="props.maxCpus"
72
+ :max-memory="props.maxMemory"
73
+ :nodes="props.nodes"
74
+ :files="props.files"
75
+ :networks-table="props.networksTable"
76
+ :cpu="props.cpu"
77
+ :memory="props.memory"
78
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
79
+ :get-datastore-table-func="props.getDatastoreTableFunc"
80
+ :datastore="props.datastore"
81
+ :hard-disks="props.hardDisks"
82
+ :cd-dvd-drives="props.cdDvdDrives"
83
+ :networks="props.networks"
84
+ :video-card="props.videoCard"
85
+ :pci-devices="props.pciDevices"
86
+ :usb-controller="props.usbController"
87
+ :options="props.options"
88
+ :is-edit="props.isEdit"
89
+ :is-clone="props.isClone"
90
+ :state="props.state"
91
+ :passthrough-devices="props.passthroughDevices"
92
+ :mediated-devices="props.mediatedDevices"
93
+ :project="props.project"
94
+ :nav-items="navItems"
95
+ :errors="errors"
96
+ @change-boot-order="emits('change-boot-order', $event)"
97
+ @send-data="emits('send-data', $event)"
98
+ @next="emits('next')"
99
+ @get-storage="emits('get-storage', $event)"
100
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
101
+ @get-active-device-child="emits('get-active-device-child', $event)"
102
+ @show-datastore-child="emits('show-datastore-child', $event)"
103
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
104
+ @get-networks-table="emits('get-networks-table', $event)"
105
+ @get-pci-devices="emits('get-pci-devices')"
106
+ @remove-validation-errors="onRemoveValidationErrors"
107
+ @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
108
+ @send-data-vm-options-method="onSendDataVmOptionsMethod"
109
+ />
110
+ </template>
111
+
112
+ <script setup lang="ts">
113
+ import type { UI_T_Project } from '~/lib/models/types'
114
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
115
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
116
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
117
+ import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
118
+ import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
119
+ import type {
120
+ UI_I_SendDataNewPciDevice,
121
+ UI_I_SendDataNewCdDvdDrive,
122
+ UI_I_SendDataNewHardDisk,
123
+ UI_I_SendDataNewNetwork,
124
+ UI_I_SendDataVideoCard,
125
+ UI_I_SendDataVirtualHardware,
126
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
127
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
128
+ import type { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
129
+ import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
130
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
131
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
132
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
133
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
134
+ import type {
135
+ API_UI_I_VmEditCpu,
136
+ API_UI_I_VmEditMemory,
137
+ UI_I_MediatedDevice,
138
+ UI_I_PciDevice,
139
+ } from '~/lib/models/store/vm/interfaces'
140
+ import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
141
+
142
+ const vmName = defineModel<string>('vmName', { required: true })
143
+ const guestMachineType = defineModel<UI_I_OptionItem | null>(
144
+ 'guest-machine-type'
145
+ )
146
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guestOsFamily')
147
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guestOsVersion')
148
+
149
+ const props = defineProps<{
150
+ errorValidationFields: UI_I_ErrorValidationField[]
151
+ storage: UI_I_DatastoreTableItem | null
152
+ cpuModels: UI_I_OptionItem[]
153
+ hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
154
+ cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
155
+ networksForBootOptions: UI_I_SendDataNewNetwork[] | null
156
+ customizeHardwareSubmit: null | Function
157
+ maxCpus: number
158
+ maxMemory: number
159
+ selectedNavItem: UI_T_SelectedNavItem
160
+ nodes: UI_I_FileTreeNode[]
161
+ files: UI_I_FileTreeNode[]
162
+ networksTable: UI_I_NetworkTableItem[]
163
+ cpu?: API_UI_I_VmEditCpu
164
+ memory?: API_UI_I_VmEditMemory
165
+ vmCpuHelpTextSecond?: string
166
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
167
+ datastore: UI_I_DatastoreTableItem[]
168
+ hardDisks?: UI_I_SendDataNewHardDisk[] | null
169
+ cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
170
+ networks?: UI_I_SendDataNewNetwork[] | null
171
+ videoCard?: UI_I_SendDataVideoCard
172
+ pciDevices?: UI_I_SendDataNewPciDevice[]
173
+ usbController?: string
174
+ options?: UI_I_SendDataVmoptions
175
+ isEdit?: boolean
176
+ isClone?: boolean
177
+ state?: string | number
178
+ passthroughDevices?: UI_I_PciDevice[]
179
+ mediatedDevices?: UI_I_MediatedDevice[]
180
+ project?: UI_T_Project
181
+ }>()
182
+ const emits = defineEmits<{
183
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
184
+ (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
185
+ (event: 'next'): void
186
+ (event: 'get-storage', value: UI_I_TablePayload): void
187
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
188
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
189
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
190
+ (event: 'remove-error-by-title', value: string): void
191
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
192
+ (event: 'get-pci-devices'): void
193
+ }>()
194
+
195
+ const { $store }: any = useNuxtApp()
196
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
197
+
198
+ const localization = computed<UI_I_Localization>(() => useLocal())
199
+
200
+ const navItems = computed<UI_I_TabItem[]>(() =>
201
+ navItemsFunc(localization.value)
202
+ )
203
+ const selectedNavItemLocal = ref<number>(0)
204
+ watch(
205
+ () => props.selectedNavItem,
206
+ (newValue) => {
207
+ selectedNavItemLocal.value = newValue
208
+ }
209
+ )
210
+
211
+ const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
212
+ const onSendDataVirtualHardwareMethod = (
213
+ data: UI_I_SendDataVirtualHardware
214
+ ): void => {
215
+ sendDataVirtualHardware.value = data
216
+ sendData()
217
+ }
218
+ const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
219
+ const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
220
+ sendDataVmOptions.value = data
221
+ sendData()
222
+ }
223
+ const sendData = (): void => {
224
+ emits('send-data', {
225
+ virtualHardware: sendDataVirtualHardware.value,
226
+ vmOptions: sendDataVmOptions.value,
227
+ })
228
+ }
229
+
230
+ watch(
231
+ () => props.customizeHardwareSubmit,
232
+ (newValue) => {
233
+ newValue && submit(newValue)
234
+ }
235
+ )
236
+ const virtualHardwareInvalid = ref<string[]>([])
237
+ const vmOptionsInvalid = ref<string[]>([])
238
+ const submit = (cb: Function): void => {
239
+ const invalidDevices = [
240
+ ...virtualHardwareInvalid.value,
241
+ ...vmOptionsInvalid.value,
242
+ ]
243
+ .filter((item: string) => !!item)
244
+ .join(', ')
245
+
246
+ if (invalidDevices) {
247
+ showValidationErrors([
248
+ localization.value.common.thereErrorsFollowingFields.replace(
249
+ '{0}',
250
+ invalidDevices
251
+ ),
252
+ ])
253
+ cb(false)
254
+ return
255
+ }
256
+ onRemoveValidationErrors()
257
+
258
+ // emits('next')
259
+ cb(true)
260
+ }
261
+
262
+ const errors = ref<string[]>([])
263
+ const showValidationErrors = (arr: string[]): void => {
264
+ errors.value = arr
265
+ }
266
+ const onRemoveValidationErrors = (): void => {
267
+ errors.value = []
268
+ }
269
+ </script>
270
+
271
+ <style scoped lang="scss"></style>