bfg-common 1.5.442 → 1.5.444

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 (212) 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 +9 -2
  7. package/assets/localization/local_en.json +19 -12
  8. package/assets/localization/local_hy.json +9 -2
  9. package/assets/localization/local_kk.json +9 -2
  10. package/assets/localization/local_ru.json +9 -2
  11. package/assets/localization/local_zh.json +9 -2
  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 +1694 -1694
  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/atoms/wizard/Wizard.vue +2 -2
  20. package/components/atoms/wizard/step/Step.vue +1 -1
  21. package/components/common/backup/storage/actions/add/Add.vue +5 -5
  22. package/components/common/backup/storage/actions/add/Old.vue +1 -1
  23. package/components/common/backup/storage/actions/add/lib/config/steps.ts +2 -2
  24. package/components/common/backup/storage/actions/add/lib/validations.ts +4 -4
  25. package/components/common/backup/storage/actions/add/steps/name/Name.vue +1 -1
  26. package/components/common/backup/storage/actions/add/steps/name/New.vue +1 -1
  27. package/components/common/backup/storage/actions/add/steps/name/Old.vue +1 -1
  28. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -1
  29. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  30. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  31. package/components/common/browse/blocks/Container.vue +235 -235
  32. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  33. package/components/common/context/lib/models/interfaces.ts +33 -33
  34. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  35. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  36. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +5 -5
  38. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +2 -2
  39. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +2 -2
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +5 -5
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +2 -2
  42. package/components/common/diagramMain/port/Port.vue +580 -580
  43. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  44. package/components/common/pages/backups/Backups.vue +102 -102
  45. package/components/common/pages/backups/DetailView.vue +52 -52
  46. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  47. package/components/common/pages/backups/modals/Modals.vue +1 -1
  48. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +5 -2
  49. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  50. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  51. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  52. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  53. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  54. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  55. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  56. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  57. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  58. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +2 -2
  59. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  60. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  61. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  62. package/components/common/pages/backups/modals/restore/Restore.vue +3 -3
  63. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  64. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  65. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  66. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +2 -2
  67. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  68. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  69. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  70. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  71. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  72. package/components/common/pages/backups/tools/Tools.vue +75 -75
  73. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  74. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  75. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  76. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  77. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  78. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  79. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  80. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  81. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  82. package/components/common/select/radio/RadioGroup.vue +137 -137
  83. package/components/common/spiceConsole/Drawer.vue +381 -381
  84. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  85. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  86. package/components/common/tools/Actions.vue +207 -207
  87. package/components/common/treeView/TreeView.vue +52 -52
  88. package/components/common/vm/actions/add/Add.vue +5 -5
  89. package/components/common/vm/actions/add/New.vue +2 -2
  90. package/components/common/vm/actions/add/Old.vue +2 -2
  91. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  92. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  93. package/components/common/vm/actions/add/lib/config/steps.ts +2 -2
  94. package/components/common/vm/actions/clone/Clone.vue +5 -5
  95. package/components/common/vm/actions/clone/lib/config/steps.ts +2 -2
  96. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +5 -5
  97. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +2 -2
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +2 -0
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  127. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  128. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  129. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  130. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  131. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  132. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  133. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  134. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  135. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  136. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  137. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  138. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  139. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  140. package/components/common/vmt/actions/add/Add.vue +5 -5
  141. package/components/common/vmt/actions/add/New.vue +2 -3
  142. package/components/common/vmt/actions/add/Old.vue +2 -2
  143. package/components/common/vmt/actions/add/lib/config/steps.ts +2 -2
  144. package/components/common/wizards/datastore/add/Add.vue +2 -2
  145. package/components/common/wizards/datastore/add/Old.vue +2 -2
  146. package/components/common/wizards/datastore/add/lib/config/steps.ts +2 -2
  147. package/components/common/wizards/datastore/add/lib/utils.ts +1 -1
  148. package/components/common/wizards/datastore/add/lib/validations.ts +3 -3
  149. package/components/common/wizards/datastore/add/steps/_local/Local.vue +1 -1
  150. package/components/common/wizards/datastore/add/steps/_local/createName/CreateName.vue +1 -1
  151. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigure.vue +2 -1
  152. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  153. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  154. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDevice.vue +1 -1
  155. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  156. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +1 -1
  157. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  158. package/components/common/wizards/network/add/Add.vue +109 -333
  159. package/components/common/wizards/network/add/AddNew.vue +514 -0
  160. package/components/common/wizards/network/add/AddOld.vue +457 -0
  161. package/components/common/wizards/network/add/lib/config/config.ts +11 -1
  162. package/components/common/wizards/network/add/lib/config/selectConnectionTypeStep.ts +31 -0
  163. package/components/common/wizards/network/add/lib/config/selectSwitch.ts +217 -0
  164. package/components/common/wizards/network/add/lib/config/steps.ts +5 -5
  165. package/components/common/wizards/network/add/lib/models/interfaces.ts +9 -0
  166. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +2 -2
  167. package/components/common/wizards/network/add/steps/IpFourSettings.vue +2 -2
  168. package/components/common/wizards/network/add/steps/PortProperties.vue +2 -2
  169. package/components/common/wizards/network/add/steps/selectConnectionType/SelectConnectionType.vue +35 -0
  170. package/components/common/wizards/network/add/steps/selectConnectionType/SelectConnectionTypeNew.vue +104 -0
  171. package/components/common/wizards/network/add/steps/selectConnectionType/SelectConnectionTypeOld.vue +80 -0
  172. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDevice.vue +183 -0
  173. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +393 -0
  174. package/components/common/wizards/network/add/steps/{SelectedTargetDevice.vue → selectTargetDevice/SelectTargetDeviceOld.vue} +42 -139
  175. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/Modals.vue +55 -0
  176. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/SelectNetwork.vue +64 -0
  177. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/SelectStandardSwitch.vue +64 -0
  178. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/SelectSwitch.vue +64 -0
  179. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +163 -0
  180. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectStandardSwitch.vue +163 -0
  181. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectSwitch.vue +163 -0
  182. package/components/common/wizards/network/add/{modals → steps/selectTargetDevice/modals/old}/SelectNetwork.vue +53 -56
  183. package/components/common/wizards/network/add/{modals → steps/selectTargetDevice/modals/old}/SelectStandardSwitch.vue +37 -52
  184. package/components/common/wizards/network/add/{modals → steps/selectTargetDevice/modals/old}/SelectSwitch.vue +38 -42
  185. package/components/common/wizards/network/add/validations/connectionSettings.ts +5 -5
  186. package/components/common/wizards/network/add/validations/createStandardSwitch.ts +4 -4
  187. package/components/common/wizards/network/add/validations/ipFourSettings.ts +5 -5
  188. package/components/common/wizards/network/add/validations/networkValidation.ts +4 -4
  189. package/components/common/wizards/network/add/validations/physicalAdapter.ts +4 -4
  190. package/components/common/wizards/network/add/validations/portProperties.ts +2 -2
  191. package/components/common/wizards/network/add/validations/targetDevice.ts +11 -10
  192. package/components/common/wizards/vm/migrate/Migrate.vue +2 -2
  193. package/components/common/wizards/vm/migrate/lib/config/steps.ts +2 -2
  194. package/components/common/wizards/vm/migrate/lib/validations.ts +3 -3
  195. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  196. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +1 -1
  197. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +1 -1
  198. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  199. package/composables/productNameLocal.ts +30 -30
  200. package/composables/useAppVersion.ts +21 -21
  201. package/package.json +2 -2
  202. package/plugins/date.ts +233 -233
  203. package/plugins/panelStates.ts +70 -70
  204. package/plugins/text.ts +59 -59
  205. package/public/spice-console/lib/images/bitmap.js +203 -203
  206. package/public/spice-console/network/spicechannel.js +390 -390
  207. package/store/main/mutations.ts +7 -7
  208. package/store/main/state.ts +7 -7
  209. package/components/atoms/wizard/lib/models/enums.ts +0 -8
  210. package/components/atoms/wizard/lib/models/interfaces.ts +0 -59
  211. package/components/atoms/wizard/lib/utils/utils.ts +0 -954
  212. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +0 -112
@@ -1,139 +1,139 @@
1
- <template>
2
- <common-vm-actions-common-select-os-new
3
- v-if="isNewView"
4
- v-model:machine-type="machineType"
5
- v-model:guest-os-family="guestOsFamily"
6
- v-model:guest-os-version="guestOsVersion"
7
- :api-error-machine-type="apiErrorMachineType"
8
- :machine-type-options="machineTypeOptions"
9
- :api-error-guest-os-family="apiErrorGuestOsFamily"
10
- :os-options="osOptions"
11
- :api-error-guest-os-version="apiErrorGuestOsVersion"
12
- :versions-options="versionsOptions"
13
- @change-os="onChangeOs"
14
- @remove-error-by-title="onRemoveValidationError"
15
- />
16
- <common-vm-actions-common-select-os-old
17
- v-else
18
- v-model:machine-type="machineType"
19
- v-model:guest-os-family="guestOsFamily"
20
- v-model:guest-os-version="guestOsVersion"
21
- :api-error-machine-type="apiErrorMachineType"
22
- :machine-type-options="machineTypeOptions"
23
- :api-error-guest-os-family="apiErrorGuestOsFamily"
24
- :os-options="osOptions"
25
- :api-error-guest-os-version="apiErrorGuestOsVersion"
26
- :versions-options="versionsOptions"
27
- @change-os="onChangeOs"
28
- @remove-error-by-title="onRemoveValidationError"
29
- />
30
- </template>
31
-
32
- <script setup lang="ts">
33
- import type {
34
- UI_I_ArbitraryObject,
35
- } from '~/lib/models/interfaces'
36
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
37
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
-
39
- const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
40
- required: true,
41
- })
42
- const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
43
- required: true,
44
- })
45
- const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
46
- required: true,
47
- })
48
-
49
- const props = defineProps<{
50
- familiesOptions: UI_I_OptionItem[]
51
- machineTypesOptions: UI_I_OptionItem[]
52
- versionsOptions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
53
- errorValidationFields: UI_I_ErrorValidationField[]
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'remove-error-by-title', value: string): void
57
- }>()
58
-
59
- const { $store }: any = useNuxtApp()
60
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
-
62
- const machineTypeOptions = ref<UI_I_OptionItem[]>(props.machineTypesOptions)
63
- watch(
64
- () => props.machineTypesOptions,
65
- (newValue) => {
66
- machineTypeOptions.value = [...newValue]
67
- if (machineType.value) return
68
-
69
- const q35MachineIndex = newValue.findIndex((item) =>
70
- item.value.toLowerCase().includes('q35')
71
- )
72
- if (q35MachineIndex === -1) {
73
- machineType.value = newValue[0]
74
- } else {
75
- machineType.value = newValue[q35MachineIndex]
76
- }
77
- },
78
- { immediate: true }
79
- )
80
-
81
- const osOptions = ref<UI_I_OptionItem[]>(props.familiesOptions)
82
- watch(
83
- () => props.familiesOptions,
84
- (newValue) => {
85
- osOptions.value = [...newValue]
86
- if (guestOsFamily.value) return
87
- guestOsFamily.value = newValue[0]
88
- },
89
- { immediate: true }
90
- )
91
- const onChangeOs = (): void => {
92
- guestOsVersion.value = versionsOptions.value[0]
93
- }
94
-
95
- const versionsOptions = computed<UI_I_OptionItem[]>(() => {
96
- if (!guestOsFamily.value) return []
97
-
98
- return props.versionsOptions[guestOsFamily.value.value] || []
99
- })
100
- watch(
101
- versionsOptions,
102
- () => {
103
- if (guestOsVersion.value) return
104
-
105
- guestOsVersion.value = versionsOptions.value[0]
106
- },
107
- { immediate: true }
108
- )
109
-
110
- const apiErrorMachineType = computed<string>(() => {
111
- return (
112
- props.errorValidationFields?.find(
113
- (message) => message.field === 'machine_type'
114
- )?.error_message || ''
115
- )
116
- })
117
-
118
- const apiErrorGuestOsFamily = computed<string>(() => {
119
- return (
120
- props.errorValidationFields?.find(
121
- (message) => message.field === 'guest_os_family'
122
- )?.error_message || ''
123
- )
124
- })
125
-
126
- const apiErrorGuestOsVersion = computed<string>(() => {
127
- return (
128
- props.errorValidationFields?.find(
129
- (message) => message.field === 'guest_os_version'
130
- )?.error_message || ''
131
- )
132
- })
133
-
134
- const onRemoveValidationError = (type: string): void => {
135
- emits('remove-error-by-title', type)
136
- }
137
- </script>
138
-
139
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-os-new
3
+ v-if="isNewView"
4
+ v-model:machine-type="machineType"
5
+ v-model:guest-os-family="guestOsFamily"
6
+ v-model:guest-os-version="guestOsVersion"
7
+ :api-error-machine-type="apiErrorMachineType"
8
+ :machine-type-options="machineTypeOptions"
9
+ :api-error-guest-os-family="apiErrorGuestOsFamily"
10
+ :os-options="osOptions"
11
+ :api-error-guest-os-version="apiErrorGuestOsVersion"
12
+ :versions-options="versionsOptions"
13
+ @change-os="onChangeOs"
14
+ @remove-error-by-title="onRemoveValidationError"
15
+ />
16
+ <common-vm-actions-common-select-os-old
17
+ v-else
18
+ v-model:machine-type="machineType"
19
+ v-model:guest-os-family="guestOsFamily"
20
+ v-model:guest-os-version="guestOsVersion"
21
+ :api-error-machine-type="apiErrorMachineType"
22
+ :machine-type-options="machineTypeOptions"
23
+ :api-error-guest-os-family="apiErrorGuestOsFamily"
24
+ :os-options="osOptions"
25
+ :api-error-guest-os-version="apiErrorGuestOsVersion"
26
+ :versions-options="versionsOptions"
27
+ @change-os="onChangeOs"
28
+ @remove-error-by-title="onRemoveValidationError"
29
+ />
30
+ </template>
31
+
32
+ <script setup lang="ts">
33
+ import type {
34
+ UI_I_ArbitraryObject,
35
+ } from '~/lib/models/interfaces'
36
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
37
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
+
39
+ const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
40
+ required: true,
41
+ })
42
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
43
+ required: true,
44
+ })
45
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
46
+ required: true,
47
+ })
48
+
49
+ const props = defineProps<{
50
+ familiesOptions: UI_I_OptionItem[]
51
+ machineTypesOptions: UI_I_OptionItem[]
52
+ versionsOptions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
53
+ errorValidationFields: UI_I_ErrorValidationField[]
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'remove-error-by-title', value: string): void
57
+ }>()
58
+
59
+ const { $store }: any = useNuxtApp()
60
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
+
62
+ const machineTypeOptions = ref<UI_I_OptionItem[]>(props.machineTypesOptions)
63
+ watch(
64
+ () => props.machineTypesOptions,
65
+ (newValue) => {
66
+ machineTypeOptions.value = [...newValue]
67
+ if (machineType.value) return
68
+
69
+ const q35MachineIndex = newValue.findIndex((item) =>
70
+ item.value.toLowerCase().includes('q35')
71
+ )
72
+ if (q35MachineIndex === -1) {
73
+ machineType.value = newValue[0]
74
+ } else {
75
+ machineType.value = newValue[q35MachineIndex]
76
+ }
77
+ },
78
+ { immediate: true }
79
+ )
80
+
81
+ const osOptions = ref<UI_I_OptionItem[]>(props.familiesOptions)
82
+ watch(
83
+ () => props.familiesOptions,
84
+ (newValue) => {
85
+ osOptions.value = [...newValue]
86
+ if (guestOsFamily.value) return
87
+ guestOsFamily.value = newValue[0]
88
+ },
89
+ { immediate: true }
90
+ )
91
+ const onChangeOs = (): void => {
92
+ guestOsVersion.value = versionsOptions.value[0]
93
+ }
94
+
95
+ const versionsOptions = computed<UI_I_OptionItem[]>(() => {
96
+ if (!guestOsFamily.value) return []
97
+
98
+ return props.versionsOptions[guestOsFamily.value.value] || []
99
+ })
100
+ watch(
101
+ versionsOptions,
102
+ () => {
103
+ if (guestOsVersion.value) return
104
+
105
+ guestOsVersion.value = versionsOptions.value[0]
106
+ },
107
+ { immediate: true }
108
+ )
109
+
110
+ const apiErrorMachineType = computed<string>(() => {
111
+ return (
112
+ props.errorValidationFields?.find(
113
+ (message) => message.field === 'machine_type'
114
+ )?.error_message || ''
115
+ )
116
+ })
117
+
118
+ const apiErrorGuestOsFamily = computed<string>(() => {
119
+ return (
120
+ props.errorValidationFields?.find(
121
+ (message) => message.field === 'guest_os_family'
122
+ )?.error_message || ''
123
+ )
124
+ })
125
+
126
+ const apiErrorGuestOsVersion = computed<string>(() => {
127
+ return (
128
+ props.errorValidationFields?.find(
129
+ (message) => message.field === 'guest_os_version'
130
+ )?.error_message || ''
131
+ )
132
+ })
133
+
134
+ const onRemoveValidationError = (type: string): void => {
135
+ emits('remove-error-by-title', type)
136
+ }
137
+ </script>
138
+
139
+ <style scoped lang="scss"></style>