bfg-common 1.5.550 → 1.5.551

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 (169) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +18 -3
  7. package/assets/localization/local_en.json +18 -3
  8. package/assets/localization/local_hy.json +18 -3
  9. package/assets/localization/local_kk.json +18 -3
  10. package/assets/localization/local_ru.json +18 -3
  11. package/assets/localization/local_zh.json +18 -3
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/Add.vue +251 -251
  20. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  23. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  24. package/components/common/diagramMain/port/Port.vue +580 -580
  25. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  26. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  27. package/components/common/modals/confirmByInput/ConfirmByInput.vue +9 -1
  28. package/components/common/modals/confirmByInput/ConfirmByInputNew.vue +7 -2
  29. package/components/common/pages/backups/DetailView.vue +52 -52
  30. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  31. package/components/common/pages/backups/modals/Modals.vue +243 -243
  32. package/components/common/pages/backups/modals/createBackup/New.vue +8 -2
  33. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +29 -29
  34. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +69 -69
  35. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +38 -38
  36. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  37. package/components/common/pages/backups/modals/createBackup/lib/models/interfaces.ts +8 -8
  38. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  39. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  40. package/components/common/pages/backups/modals/restore/Restore.vue +9 -5
  41. package/components/common/pages/backups/modals/restore/RestoreNew.vue +13 -3
  42. package/components/common/pages/backups/modals/restore/RestoreOld.vue +6 -18
  43. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  44. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  45. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  46. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  47. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  48. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  49. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  50. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  51. package/components/common/select/radio/RadioGroup.vue +137 -137
  52. package/components/common/spiceConsole/Drawer.vue +420 -420
  53. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  54. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  55. package/components/common/tools/Actions.vue +207 -207
  56. package/components/common/treeView/TreeView.vue +52 -52
  57. package/components/common/vm/actions/add/Add.vue +950 -877
  58. package/components/common/vm/actions/add/New.vue +690 -652
  59. package/components/common/vm/actions/add/Old.vue +402 -363
  60. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  61. package/components/common/vm/actions/clone/Clone.vue +809 -809
  62. package/components/common/vm/actions/clone/new/New.vue +457 -457
  63. package/components/common/vm/actions/clone/old/Old.vue +378 -378
  64. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +308 -243
  65. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +373 -328
  66. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +205 -161
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +728 -694
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +523 -512
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +339 -328
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -348
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +248 -241
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +189 -184
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +313 -300
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -158
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryOld.vue +155 -155
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +427 -427
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +58 -47
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +65 -68
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +61 -64
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +162 -140
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -6
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +5 -6
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/lib/config/options.ts +4 -4
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +163 -76
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +138 -87
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +120 -71
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +110 -46
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +85 -65
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +91 -70
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -156
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +74 -109
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +66 -104
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +101 -86
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +173 -163
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +170 -162
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +148 -142
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +141 -135
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +178 -74
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{New.vue → KeymapNew.vue} +45 -45
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{Old.vue → KeymapOld.vue} +47 -47
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -102
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +49 -26
  114. package/components/common/vm/actions/common/lib/models/interfaces.ts +157 -189
  115. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  116. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  117. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  118. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  119. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  120. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  121. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -178
  122. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  123. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  124. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  125. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  126. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  127. package/components/common/vm/actions/lib/models/interfaces.ts +40 -15
  128. package/components/common/vm/actions/lib/utils.ts +239 -244
  129. package/components/common/vm/actions/register/Register.vue +352 -352
  130. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  131. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  132. package/components/common/wizards/common/compatibility/New.vue +99 -99
  133. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  134. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  135. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  136. package/components/common/wizards/common/steps/computeResource/Old.vue +103 -103
  137. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  138. package/components/common/wizards/common/steps/name/New.vue +221 -221
  139. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  140. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  141. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  142. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  143. package/components/common/wizards/datastore/add/Add.vue +228 -228
  144. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  145. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  146. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  147. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  148. package/composables/useAppVersion.ts +21 -21
  149. package/composables/useLocal.ts +6 -6
  150. package/composables/useLocalCommon.ts +39 -39
  151. package/package.json +3 -1
  152. package/plugins/console.ts +21 -21
  153. package/plugins/date.ts +233 -233
  154. package/plugins/mouse.ts +21 -21
  155. package/plugins/panelStates.ts +70 -70
  156. package/plugins/text.ts +59 -59
  157. package/public/spice-console/application/clientgui.js +854 -854
  158. package/public/spice-console/application/packetfactory.js +211 -211
  159. package/public/spice-console/application/virtualmouse.js +147 -147
  160. package/public/spice-console/lib/images/bitmap.js +203 -203
  161. package/public/spice-console/network/spicechannel.js +440 -440
  162. package/public/spice-console/process/cursorprocess.js +121 -121
  163. package/public/spice-console/process/inputprocess.js +227 -227
  164. package/public/spice-console/process/mainprocess.js +210 -210
  165. package/public/spice-console/run.js +210 -210
  166. package/store/main/mutations.ts +7 -7
  167. package/store/main/state.ts +7 -7
  168. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{New.vue → PasswordNew.vue} +0 -0
  169. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{Old.vue → PasswordOld.vue} +0 -0
@@ -1,243 +1,308 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-new
3
- v-if="isNewView"
4
- v-model="model"
5
- v-model:selected-nav-item="selectedNavItemLocal"
6
- v-model:virtual-hardware-invalid="virtualHardwareInvalid"
7
- v-model:vm-options-invalid="vmOptionsInvalid"
8
- :error-validation-fields="props.errorValidationFields"
9
- :storage="props.storage"
10
- :cpu-models="props.cpuModels"
11
- :max-memory="props.maxMemory"
12
- :nodes="props.nodes"
13
- :files="props.files"
14
- :networks-table="props.networksTable"
15
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
16
- :get-datastore-table-func="props.getDatastoreTableFunc"
17
- :datastore="props.datastore"
18
- :is-datastore-loading="props.isDatastoreLoading"
19
- :hard-disks="props.hardDisks"
20
- :cd-dvd-drives="props.cdDvdDrives"
21
- :networks="props.networks"
22
- :video-card="props.videoCard"
23
- :pci-devices="props.pciDevices"
24
- :is-edit="props.isEdit"
25
- :is-clone="props.isClone"
26
- :state="props.state"
27
- :passthrough-devices="props.passthroughDevices"
28
- :mediated-devices="props.mediatedDevices"
29
- :project="props.project"
30
- :nav-items="navItems"
31
- :errors="errors"
32
- :compute-resource="props.computeResource"
33
- :compatibility-info="props.compatibilityInfo"
34
- :is-vmt="props.isVmt"
35
- @next="emits('next')"
36
- @get-storage="emits('get-storage', $event)"
37
- @get-folders-or-files="emits('get-folders-or-files', $event)"
38
- @get-active-device-child="emits('get-active-device-child', $event)"
39
- @show-datastore-child="emits('show-datastore-child', $event)"
40
- @remove-error-by-title="emits('remove-error-by-title', $event)"
41
- @get-networks-table="emits('get-networks-table', $event)"
42
- @get-pci-devices="emits('get-pci-devices')"
43
- @remove-validation-errors="onRemoveValidationErrors"
44
- />
45
- <common-vm-actions-common-customize-hardware-old
46
- v-else
47
- v-model="model"
48
- v-model:selected-nav-item="selectedNavItemLocal"
49
- v-model:virtual-hardware-invalid="virtualHardwareInvalid"
50
- v-model:vm-options-invalid="vmOptionsInvalid"
51
- :error-validation-fields="props.errorValidationFields"
52
- :storage="props.storage"
53
- :cpu-models="props.cpuModels"
54
- :max-memory="props.maxMemory"
55
- :nodes="props.nodes"
56
- :files="props.files"
57
- :networks-table="props.networksTable"
58
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
59
- :get-datastore-table-func="props.getDatastoreTableFunc"
60
- :datastore="props.datastore"
61
- :is-datastore-loading="props.isDatastoreLoading"
62
- :hard-disks="props.hardDisks"
63
- :cd-dvd-drives="props.cdDvdDrives"
64
- :networks="props.networks"
65
- :video-card="props.videoCard"
66
- :pci-devices="props.pciDevices"
67
- :is-edit="props.isEdit"
68
- :is-clone="props.isClone"
69
- :state="props.state"
70
- :passthrough-devices="props.passthroughDevices"
71
- :mediated-devices="props.mediatedDevices"
72
- :project="props.project"
73
- :nav-items="navItems"
74
- :errors="errors"
75
- :compute-resource="props.computeResource"
76
- :is-vmt="props.isVmt"
77
- @next="emits('next')"
78
- @get-storage="emits('get-storage', $event)"
79
- @get-folders-or-files="emits('get-folders-or-files', $event)"
80
- @get-active-device-child="emits('get-active-device-child', $event)"
81
- @show-datastore-child="emits('show-datastore-child', $event)"
82
- @remove-error-by-title="emits('remove-error-by-title', $event)"
83
- @get-networks-table="emits('get-networks-table', $event)"
84
- @get-pci-devices="emits('get-pci-devices')"
85
- @remove-validation-errors="onRemoveValidationErrors"
86
- />
87
- </template>
88
-
89
- <script setup lang="ts">
90
- import type { UI_T_Project } from '~/lib/models/types'
91
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
92
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
93
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
94
- import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
95
- import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
96
- import type {
97
- UI_I_SendDataNewPciDevice,
98
- UI_I_SendDataNewCdDvdDrive,
99
- UI_I_SendDataNewHardDisk,
100
- UI_I_SendDataNewNetwork,
101
- UI_I_SendDataVideoCard,
102
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
103
- import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
104
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
105
- import type { UI_I_Localization } from '~/lib/models/interfaces'
106
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
107
- import type {
108
- UI_I_MediatedDevice,
109
- UI_I_PciDevice,
110
- } from '~/lib/models/store/vm/interfaces'
111
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
112
- import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
113
- import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
114
- import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
115
-
116
- const model = defineModel<UI_I_CreateVmData>({ required: true })
117
- const props = withDefaults(
118
- defineProps<{
119
- errorValidationFields: UI_I_ErrorValidationField[]
120
- storage: UI_I_DatastoreTableItem | null
121
- cpuModels: UI_I_OptionItem[]
122
- // hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null // TODO remove everywhere
123
- // cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null // TODO remove everywhere
124
- // networksForBootOptions: UI_I_SendDataNewNetwork[] | null // TODO remove everywhere
125
- customizeHardwareSubmit: null | Function
126
- maxMemory: number
127
- selectedNavItem: UI_T_SelectedNavItem
128
- nodes: UI_I_FileTreeNode[]
129
- files: UI_I_FileTreeNode[]
130
- networksTable: UI_I_NetworkTableItem[]
131
- datastore: UI_I_DatastoreTableItem[]
132
- isDatastoreLoading: boolean
133
- // cpu?: API_UI_I_VmEditCpu // TODO remove everywhere
134
- // memory?: API_UI_I_VmEditMemory // TODO remove everywhere
135
- vmCpuHelpTextSecond?: string
136
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
137
- hardDisks?: UI_I_SendDataNewHardDisk[] | null
138
- cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
139
- networks?: UI_I_SendDataNewNetwork[] | null
140
- videoCard?: UI_I_SendDataVideoCard
141
- pciDevices?: UI_I_SendDataNewPciDevice[]
142
- // usbController?: string // TODO remove everywhere
143
- // options?: UI_I_SendDataVmoptions // TODO remove everywhere
144
- isEdit?: boolean
145
- isClone?: boolean
146
- state?: string | number
147
- passthroughDevices?: UI_I_PciDevice[]
148
- mediatedDevices?: UI_I_MediatedDevice[]
149
- project?: UI_T_Project
150
- computeResource?: UI_I_TreeNode | null
151
- compatibilityInfo?: string
152
- isVmt?: boolean
153
- }>(),
154
- {
155
- vmCpuHelpTextSecond: undefined,
156
- getDatastoreTableFunc: undefined,
157
- hardDisks: undefined,
158
- cdDvdDrives: undefined,
159
- networks: undefined,
160
- videoCard: undefined,
161
- pciDevices: undefined,
162
- isEdit: false,
163
- isClone: false,
164
- state: undefined,
165
- passthroughDevices: undefined,
166
- mediatedDevices: undefined,
167
- project: undefined,
168
- computeResource: undefined,
169
- compatibilityInfo: undefined,
170
- isVmt: undefined,
171
- }
172
- )
173
- const emits = defineEmits<{
174
- // (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void // TODO remove everywhere
175
- // (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void // TODO remove everywhere
176
- (event: 'next'): void
177
- (event: 'get-storage', value: UI_I_TablePayload): void
178
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
179
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
180
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
181
- (event: 'remove-error-by-title', value: string): void
182
- (event: 'get-networks-table', value: UI_I_TablePayload): void
183
- (event: 'get-pci-devices'): void
184
- }>()
185
-
186
- const { $store }: any = useNuxtApp()
187
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
188
-
189
- const localization = computed<UI_I_Localization>(() => useLocal())
190
-
191
- const navItems = computed<UI_I_CollapseNavItem[]>(() =>
192
- navItemsFunc(localization.value)
193
- )
194
- const selectedNavItemLocal = ref<number>(0)
195
- watch(
196
- () => props.selectedNavItem,
197
- (newValue) => {
198
- selectedNavItemLocal.value = newValue
199
- }
200
- )
201
-
202
- watch(
203
- () => props.customizeHardwareSubmit,
204
- (newValue) => {
205
- newValue && submit(newValue)
206
- }
207
- )
208
- const virtualHardwareInvalid = ref<string[]>([])
209
- const vmOptionsInvalid = ref<string[]>([])
210
- const submit = (cb: Function): void => {
211
- const invalidDevices = [
212
- ...virtualHardwareInvalid.value,
213
- ...vmOptionsInvalid.value,
214
- ]
215
- .filter((item: string) => !!item)
216
- .join(', ')
217
-
218
- if (invalidDevices) {
219
- showValidationErrors([
220
- localization.value.common.thereErrorsFollowingFields.replace(
221
- '{0}',
222
- invalidDevices
223
- ),
224
- ])
225
- cb(false)
226
- return
227
- }
228
- onRemoveValidationErrors()
229
-
230
- // emits('next')
231
- cb(true)
232
- }
233
-
234
- const errors = ref<string[]>([])
235
- const showValidationErrors = (arr: string[]): void => {
236
- errors.value = arr
237
- }
238
- const onRemoveValidationErrors = (): void => {
239
- errors.value = []
240
- }
241
- </script>
242
-
243
- <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
+ :is-datastore-loading="props.isDatastoreLoading"
28
+ :hard-disks="props.hardDisks"
29
+ :cd-dvd-drives="props.cdDvdDrives"
30
+ :networks="props.networks"
31
+ :video-card="props.videoCard"
32
+ :pci-devices="props.pciDevices"
33
+ :usb-controller="props.usbController"
34
+ :options="props.options"
35
+ :is-edit="props.isEdit"
36
+ :is-clone="props.isClone"
37
+ :state="props.state"
38
+ :passthrough-devices="props.passthroughDevices"
39
+ :mediated-devices="props.mediatedDevices"
40
+ :project="props.project"
41
+ :nav-items="navItems"
42
+ :errors="errors"
43
+ :compute-resource="props.computeResource"
44
+ :compatibility-info="props.compatibilityInfo"
45
+ :is-vmt="props.isVmt"
46
+ @change-boot-order="emits('change-boot-order', $event)"
47
+ @send-data="emits('send-data', $event)"
48
+ @next="emits('next')"
49
+ @get-storage="emits('get-storage', $event)"
50
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
51
+ @get-active-device-child="emits('get-active-device-child', $event)"
52
+ @show-datastore-child="emits('show-datastore-child', $event)"
53
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
54
+ @get-networks-table="emits('get-networks-table', $event)"
55
+ @get-pci-devices="emits('get-pci-devices')"
56
+ @remove-validation-errors="onRemoveValidationErrors"
57
+ @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
58
+ @send-data-vm-options-method="onSendDataVmOptionsMethod"
59
+ />
60
+ <common-vm-actions-common-customize-hardware-old
61
+ v-else
62
+ v-model:vm-name="vmName"
63
+ v-model:guest-machine-type="guestMachineType"
64
+ v-model:guest-os-family="guestOsFamily"
65
+ v-model:guest-os-version="guestOsVersion"
66
+ v-model:selected-nav-item="selectedNavItemLocal"
67
+ v-model:virtual-hardware-invalid="virtualHardwareInvalid"
68
+ v-model:vm-options-invalid="vmOptionsInvalid"
69
+ :error-validation-fields="props.errorValidationFields"
70
+ :storage="props.storage"
71
+ :cpu-models="props.cpuModels"
72
+ :hard-disks-for-boot-options="props.hardDisksForBootOptions"
73
+ :cd-dvd-drives-for-boot-options="props.cdDvdDrivesForBootOptions"
74
+ :networks-for-boot-options="props.networksForBootOptions"
75
+ :max-cpus="props.maxCpus"
76
+ :max-memory="props.maxMemory"
77
+ :nodes="props.nodes"
78
+ :files="props.files"
79
+ :networks-table="props.networksTable"
80
+ :cpu="props.cpu"
81
+ :memory="props.memory"
82
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
83
+ :get-datastore-table-func="props.getDatastoreTableFunc"
84
+ :datastore="props.datastore"
85
+ :is-datastore-loading="props.isDatastoreLoading"
86
+ :hard-disks="props.hardDisks"
87
+ :cd-dvd-drives="props.cdDvdDrives"
88
+ :networks="props.networks"
89
+ :video-card="props.videoCard"
90
+ :pci-devices="props.pciDevices"
91
+ :usb-controller="props.usbController"
92
+ :options="props.options"
93
+ :is-edit="props.isEdit"
94
+ :is-clone="props.isClone"
95
+ :state="props.state"
96
+ :passthrough-devices="props.passthroughDevices"
97
+ :mediated-devices="props.mediatedDevices"
98
+ :project="props.project"
99
+ :nav-items="navItems"
100
+ :errors="errors"
101
+ :compute-resource="props.computeResource"
102
+ :is-vmt="props.isVmt"
103
+ @change-boot-order="emits('change-boot-order', $event)"
104
+ @send-data="emits('send-data', $event)"
105
+ @next="emits('next')"
106
+ @get-storage="emits('get-storage', $event)"
107
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
108
+ @get-active-device-child="emits('get-active-device-child', $event)"
109
+ @show-datastore-child="emits('show-datastore-child', $event)"
110
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
111
+ @get-networks-table="emits('get-networks-table', $event)"
112
+ @get-pci-devices="emits('get-pci-devices')"
113
+ @remove-validation-errors="onRemoveValidationErrors"
114
+ @send-data-virtual-hardware-method="onSendDataVirtualHardwareMethod"
115
+ @send-data-vm-options-method="onSendDataVmOptionsMethod"
116
+ />
117
+ </template>
118
+
119
+ <script setup lang="ts">
120
+ import type { UI_T_Project } from '~/lib/models/types'
121
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
122
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
123
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
124
+ import type { UI_I_FolderOrFileTreePayload } from '~/lib/models/store/storage/interfaces'
125
+ import type { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
126
+ import type {
127
+ UI_I_SendDataNewPciDevice,
128
+ UI_I_SendDataNewCdDvdDrive,
129
+ UI_I_SendDataNewHardDisk,
130
+ UI_I_SendDataNewNetwork,
131
+ UI_I_SendDataVideoCard,
132
+ UI_I_SendDataVirtualHardware,
133
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
134
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
135
+ import type { UI_I_SendDataVmoptions } from '~/components/common/vm/actions/common/customizeHardware/vmoptions/lib/models/interfaces'
136
+ import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
137
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
138
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
139
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
140
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
141
+ import type {
142
+ API_UI_I_VmEditCpu,
143
+ API_UI_I_VmEditMemory,
144
+ UI_I_MediatedDevice,
145
+ UI_I_PciDevice,
146
+ } from '~/lib/models/store/vm/interfaces'
147
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
148
+ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
149
+ import { navItemsFunc } from '~/components/common/vm/actions/common/customizeHardware/lib/config/navItems'
150
+
151
+ const vmName = defineModel<string>('vmName', { required: true })
152
+ const guestMachineType = defineModel<UI_I_OptionItem | null>(
153
+ 'guest-machine-type'
154
+ )
155
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guestOsFamily')
156
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guestOsVersion')
157
+
158
+ const props = withDefaults(
159
+ defineProps<{
160
+ errorValidationFields: UI_I_ErrorValidationField[]
161
+ storage: UI_I_DatastoreTableItem | null
162
+ cpuModels: UI_I_OptionItem[]
163
+ hardDisksForBootOptions: UI_I_SendDataNewHardDisk[] | null
164
+ cdDvdDrivesForBootOptions: UI_I_SendDataNewCdDvdDrive[] | null
165
+ networksForBootOptions: UI_I_SendDataNewNetwork[] | null
166
+ customizeHardwareSubmit: null | Function
167
+ maxCpus: number
168
+ maxMemory: number
169
+ selectedNavItem: UI_T_SelectedNavItem
170
+ nodes: UI_I_FileTreeNode[]
171
+ files: UI_I_FileTreeNode[]
172
+ networksTable: UI_I_NetworkTableItem[]
173
+ datastore: UI_I_DatastoreTableItem[]
174
+ isDatastoreLoading: boolean
175
+ cpu?: API_UI_I_VmEditCpu
176
+ memory?: API_UI_I_VmEditMemory
177
+ vmCpuHelpTextSecond?: string
178
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
179
+ hardDisks?: UI_I_SendDataNewHardDisk[] | null
180
+ cdDvdDrives?: UI_I_SendDataNewCdDvdDrive[] | null
181
+ networks?: UI_I_SendDataNewNetwork[] | null
182
+ videoCard?: UI_I_SendDataVideoCard
183
+ pciDevices?: UI_I_SendDataNewPciDevice[]
184
+ usbController?: string
185
+ options?: UI_I_SendDataVmoptions
186
+ isEdit?: boolean
187
+ isClone?: boolean
188
+ state?: string | number
189
+ passthroughDevices?: UI_I_PciDevice[]
190
+ mediatedDevices?: UI_I_MediatedDevice[]
191
+ project?: UI_T_Project
192
+ computeResource?: UI_I_TreeNode | null
193
+ compatibilityInfo?: string
194
+ isVmt?: boolean
195
+ }>(),
196
+ {
197
+ cpu: undefined,
198
+ memory: undefined,
199
+ vmCpuHelpTextSecond: undefined,
200
+ getDatastoreTableFunc: undefined,
201
+ hardDisks: undefined,
202
+ cdDvdDrives: undefined,
203
+ networks: undefined,
204
+ videoCard: undefined,
205
+ pciDevices: undefined,
206
+ usbController: undefined,
207
+ options: undefined,
208
+ isEdit: false,
209
+ isClone: false,
210
+ state: undefined,
211
+ passthroughDevices: undefined,
212
+ mediatedDevices: undefined,
213
+ project: undefined,
214
+ computeResource: undefined,
215
+ compatibilityInfo: undefined,
216
+ isVmt: undefined,
217
+ }
218
+ )
219
+ const emits = defineEmits<{
220
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
221
+ (event: 'send-data', value: UI_I_SendDataCustomizeHardware): void
222
+ (event: 'next'): void
223
+ (event: 'get-storage', value: UI_I_TablePayload): void
224
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
225
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
226
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
227
+ (event: 'remove-error-by-title', value: string): void
228
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
229
+ (event: 'get-pci-devices'): void
230
+ }>()
231
+
232
+ const { $store }: any = useNuxtApp()
233
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
234
+
235
+ const localization = computed<UI_I_Localization>(() => useLocal())
236
+
237
+ const navItems = computed<UI_I_CollapseNavItem[]>(() =>
238
+ navItemsFunc(localization.value)
239
+ )
240
+ const selectedNavItemLocal = ref<number>(0)
241
+ watch(
242
+ () => props.selectedNavItem,
243
+ (newValue) => {
244
+ selectedNavItemLocal.value = newValue
245
+ }
246
+ )
247
+
248
+ const sendDataVirtualHardware = ref<UI_I_SendDataVirtualHardware | null>(null)
249
+ const onSendDataVirtualHardwareMethod = (
250
+ data: UI_I_SendDataVirtualHardware
251
+ ): void => {
252
+ sendDataVirtualHardware.value = data
253
+ sendData()
254
+ }
255
+ const sendDataVmOptions = ref<UI_I_SendDataVmoptions | null>(null)
256
+ const onSendDataVmOptionsMethod = (data: UI_I_SendDataVmoptions): void => {
257
+ sendDataVmOptions.value = data
258
+ sendData()
259
+ }
260
+ const sendData = (): void => {
261
+ emits('send-data', {
262
+ virtualHardware: sendDataVirtualHardware.value,
263
+ vmOptions: sendDataVmOptions.value,
264
+ })
265
+ }
266
+
267
+ watch(
268
+ () => props.customizeHardwareSubmit,
269
+ (newValue) => {
270
+ newValue && submit(newValue)
271
+ }
272
+ )
273
+ const virtualHardwareInvalid = ref<string[]>([])
274
+ const vmOptionsInvalid = ref<string[]>([])
275
+ const submit = (cb: Function): void => {
276
+ const invalidDevices = [
277
+ ...virtualHardwareInvalid.value,
278
+ ...vmOptionsInvalid.value,
279
+ ]
280
+ .filter((item: string) => !!item)
281
+ .join(', ')
282
+
283
+ if (invalidDevices) {
284
+ showValidationErrors([
285
+ localization.value.common.thereErrorsFollowingFields.replace(
286
+ '{0}',
287
+ invalidDevices
288
+ ),
289
+ ])
290
+ cb(false)
291
+ return
292
+ }
293
+ onRemoveValidationErrors()
294
+
295
+ // emits('next')
296
+ cb(true)
297
+ }
298
+
299
+ const errors = ref<string[]>([])
300
+ const showValidationErrors = (arr: string[]): void => {
301
+ errors.value = arr
302
+ }
303
+ const onRemoveValidationErrors = (): void => {
304
+ errors.value = []
305
+ }
306
+ </script>
307
+
308
+ <style scoped lang="scss"></style>