bfg-common 1.5.63 → 1.5.65

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 (193) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/localization/local_be.json +7 -1
  3. package/assets/localization/local_en.json +7 -1
  4. package/assets/localization/local_hy.json +7 -1
  5. package/assets/localization/local_kk.json +7 -1
  6. package/assets/localization/local_ru.json +7 -1
  7. package/assets/localization/local_zh.json +7 -1
  8. package/assets/scss/common/normalize.scss +339 -339
  9. package/components/atoms/TheIcon3.vue +50 -50
  10. package/components/atoms/collapse/CollapseNav.vue +165 -165
  11. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  12. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  14. package/components/atoms/stack/StackBlock.vue +185 -185
  15. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  19. package/components/atoms/tooltip/Signpost.vue +227 -227
  20. package/components/common/browse/BrowseNew.vue +237 -237
  21. package/components/common/browse/BrowseOld.vue +217 -217
  22. package/components/common/browse/blocks/contents/Files.vue +37 -37
  23. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  24. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  25. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  26. package/components/common/context/Context.vue +111 -111
  27. package/components/common/context/lib/models/interfaces.ts +31 -31
  28. package/components/common/context/recursion/Recursion.vue +87 -87
  29. package/components/common/context/recursion/RecursionNew.vue +238 -238
  30. package/components/common/context/recursion/RecursionOld.vue +228 -228
  31. package/components/common/details/DetailsItem.vue +109 -109
  32. package/components/common/diagramMain/DiagramMain.vue +897 -897
  33. package/components/common/diagramMain/Header.vue +214 -214
  34. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  35. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  37. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +311 -311
  38. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  39. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/lib/utils/optionsActions.ts +32 -32
  40. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  41. package/components/common/monitor/advanced/tools/lib/config/advancedToolbar.ts +146 -146
  42. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  43. package/components/common/pages/home/headline/Headline.vue +45 -45
  44. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  45. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  46. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  47. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  48. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  49. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  50. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  51. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  52. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  53. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  54. package/components/common/pages/packages/Packages.vue +208 -208
  55. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  56. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  57. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  58. package/components/common/portlets/tag/Portlet.vue +433 -433
  59. package/components/common/recursionTree/RecursionTree.vue +223 -223
  60. package/components/common/select/button/ButtonDropdown.vue +108 -108
  61. package/components/common/spiceConsole/Drawer.vue +370 -370
  62. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  63. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  64. package/components/common/split/vertical/Vertical.vue +160 -160
  65. package/components/common/tools/Actions.vue +202 -202
  66. package/components/common/vm/actions/add/Add.vue +785 -785
  67. package/components/common/vm/actions/add/New.vue +485 -429
  68. package/components/common/vm/actions/add/Old.vue +371 -371
  69. package/components/common/vm/actions/add/{FolderTreeView.vue → folderTreeView/FolderTreeView.vue} +72 -83
  70. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -0
  71. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -0
  72. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  73. package/components/common/vm/actions/clone/Clone.vue +798 -798
  74. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  75. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  76. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  77. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  78. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  79. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  149. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  150. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +100 -162
  151. package/components/common/vm/actions/common/select/compatibility/New.vue +165 -0
  152. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -0
  153. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -164
  154. package/components/common/vm/actions/common/select/computeResource/New.vue +141 -0
  155. package/components/common/vm/actions/common/select/computeResource/Old.vue +99 -0
  156. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -0
  157. package/components/common/vm/actions/common/select/computeResource/treeView/Old.vue +48 -0
  158. package/components/common/vm/actions/common/select/computeResource/{TreeView.vue → treeView/TreeView.vue} +118 -124
  159. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  160. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  161. package/components/common/vm/actions/common/select/createType/Old.vue +70 -70
  162. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  163. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  164. package/components/common/vm/actions/common/select/name/New.vue +246 -143
  165. package/components/common/vm/actions/common/select/name/Old.vue +119 -119
  166. package/components/common/vm/actions/common/select/storage/{StorageOld.vue → Old.vue} +129 -129
  167. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  168. package/components/common/vm/actions/common/select/storage/new/New.vue +189 -159
  169. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -173
  170. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +6 -0
  171. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -0
  172. package/components/common/vm/actions/common/select/template/Template.vue +64 -64
  173. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  174. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  175. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  176. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  177. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  178. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  179. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  180. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  181. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  182. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  183. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  184. package/composables/productNameLocal.ts +30 -30
  185. package/composables/useAppVersion.ts +21 -21
  186. package/package.json +1 -1
  187. package/plugins/date.ts +233 -233
  188. package/plugins/directives.ts +24 -24
  189. package/public/spice-console/lib/images/bitmap.js +203 -203
  190. package/public/spice-console/network/spicechannel.js +383 -383
  191. package/store/main/mutations.ts +7 -7
  192. package/store/main/state.ts +7 -7
  193. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,52 +1,52 @@
1
- import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
2
- import { capabilities } from '~/components/common/vm/actions/common/lib/config/capabilities'
3
-
4
- export const mapCapabilities = (
5
- capabilitiesFromApi: UI_I_Capabilities
6
- ): void => {
7
- if (!capabilitiesFromApi) return
8
- const { $binary } = useNuxtApp()
9
-
10
- // Machine Types
11
- capabilities.machineTypes = Object.keys(
12
- capabilitiesFromApi.machine_types
13
- ).map((key) => {
14
- return {
15
- text: capabilitiesFromApi.machine_types[key],
16
- value: key,
17
- }
18
- })
19
- // CPU Models
20
- capabilities.cpuModels = Object.keys(capabilitiesFromApi.cpu_models).map(
21
- (key) => {
22
- return {
23
- text: capabilitiesFromApi.cpu_models[key],
24
- value: key,
25
- }
26
- }
27
- )
28
-
29
- Object.keys(capabilitiesFromApi.bus_types).forEach((key) => {
30
- capabilities.bus[key] = Object.keys(capabilitiesFromApi.bus_types[key]).map(
31
- (key2) => {
32
- return {
33
- text: capabilitiesFromApi.bus_types[key][key2],
34
- value: key2,
35
- }
36
- }
37
- )
38
- })
39
- Object.keys(capabilitiesFromApi.cdrom_bus_type).forEach((key) => {
40
- capabilities.cdromBus[key] = Object.keys(
41
- capabilitiesFromApi.cdrom_bus_type[key]
42
- ).map((key2) => {
43
- return {
44
- text: capabilitiesFromApi.cdrom_bus_type[key][key2],
45
- value: key2,
46
- }
47
- })
48
- })
49
-
50
- capabilities.maxCpus = capabilitiesFromApi.max_vcpus
51
- capabilities.maxMemory = $binary.kbToMb(capabilitiesFromApi.max_mem_kib)
52
- }
1
+ import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
2
+ import { capabilities } from '~/components/common/vm/actions/common/lib/config/capabilities'
3
+
4
+ export const mapCapabilities = (
5
+ capabilitiesFromApi: UI_I_Capabilities
6
+ ): void => {
7
+ if (!capabilitiesFromApi) return
8
+ const { $binary } = useNuxtApp()
9
+
10
+ // Machine Types
11
+ capabilities.machineTypes = Object.keys(
12
+ capabilitiesFromApi.machine_types
13
+ ).map((key) => {
14
+ return {
15
+ text: capabilitiesFromApi.machine_types[key],
16
+ value: key,
17
+ }
18
+ })
19
+ // CPU Models
20
+ capabilities.cpuModels = Object.keys(capabilitiesFromApi.cpu_models).map(
21
+ (key) => {
22
+ return {
23
+ text: capabilitiesFromApi.cpu_models[key],
24
+ value: key,
25
+ }
26
+ }
27
+ )
28
+
29
+ Object.keys(capabilitiesFromApi.bus_types).forEach((key) => {
30
+ capabilities.bus[key] = Object.keys(capabilitiesFromApi.bus_types[key]).map(
31
+ (key2) => {
32
+ return {
33
+ text: capabilitiesFromApi.bus_types[key][key2],
34
+ value: key2,
35
+ }
36
+ }
37
+ )
38
+ })
39
+ Object.keys(capabilitiesFromApi.cdrom_bus_type).forEach((key) => {
40
+ capabilities.cdromBus[key] = Object.keys(
41
+ capabilitiesFromApi.cdrom_bus_type[key]
42
+ ).map((key2) => {
43
+ return {
44
+ text: capabilitiesFromApi.cdrom_bus_type[key][key2],
45
+ value: key2,
46
+ }
47
+ })
48
+ })
49
+
50
+ capabilities.maxCpus = capabilitiesFromApi.max_vcpus
51
+ capabilities.maxMemory = $binary.kbToMb(capabilitiesFromApi.max_mem_kib)
52
+ }
@@ -1,162 +1,100 @@
1
- <template>
2
- <div class="select-compatibility">
3
- <p class="select-compatibility-block">
4
- {{ description }}
5
- </p>
6
- <div class="select-compatibility-block version-select-wrap">
7
- <label for="version-select"
8
- >{{ localization.common.compatibleWith }}:</label
9
- >
10
-
11
- <atoms-tooltip-error
12
- :has-error="!!apiError"
13
- selector="#vm-wizard-version-select"
14
- @remove="onRemoveValidationError"
15
- >
16
- <template #elem>
17
- <select
18
- id="vm-wizard-version-select"
19
- v-model="selectedVersion"
20
- data-id="vm-wizard-version-select"
21
- >
22
- <option v-for="(item, key) in versions" :key="key" :value="item">
23
- {{ item.text }}
24
- </option>
25
- </select>
26
- </template>
27
- <template #content>{{ apiError }}</template>
28
- </atoms-tooltip-error>
29
- <!-- <div id="version-select-help-icon" class="flex-align-center relative">-->
30
- <!-- <atoms-the-icon-->
31
- <!-- fill="#0072a3"-->
32
- <!-- width="24px"-->
33
- <!-- height="24px"-->
34
- <!-- name="info-circle"-->
35
- <!-- @click="isShowHelp = !isShowHelp"-->
36
- <!-- />-->
37
- <!-- <atoms-tooltip-signpost-->
38
- <!-- v-if="isShowHelp"-->
39
- <!-- elem-id="version-select-help-icon"-->
40
- <!-- @hide="isShowHelp = false"-->
41
- <!-- >-->
42
- <!-- <h3 class="help-title">{{ localization.common.help }}</h3>-->
43
-
44
- <!-- <p>-->
45
- <!-- {{-->
46
- <!-- localization.common.eachVirtualMachineCompatibilitySettingIncludesHardwareAvailableVirtualMachine-->
47
- <!-- }}-->
48
- <!-- </p>-->
49
-
50
- <!-- <a id="more-information-link" class="pointer">{{-->
51
- <!-- localization.common.moreInformation-->
52
- <!-- }}</a>-->
53
- <!-- </atoms-tooltip-signpost>-->
54
- <!-- </div>-->
55
- </div>
56
- <p class="select-compatibility-block">
57
- {{ versionDescription }}
58
- </p>
59
- </div>
60
- </template>
61
-
62
- <script setup lang="ts">
63
- import type { UI_I_Localization } from '~/lib/models/interfaces'
64
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
65
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
66
-
67
- const props = defineProps<{
68
- options: UI_I_OptionItem[]
69
- errorValidationFields: UI_I_ErrorValidationField<string>[]
70
- }>()
71
- const emits = defineEmits<{
72
- (event: 'change', value: UI_I_OptionItem): void
73
- (event: 'remove-error-by-title', value: string): void
74
- }>()
75
-
76
- const localization = computed<UI_I_Localization>(() => useLocal())
77
-
78
- const versions = ref<UI_I_OptionItem[]>(props.options)
79
- const selectedVersion = ref<UI_I_OptionItem | null>(null)
80
- watch(
81
- () => props.options,
82
- (newValue) => {
83
- versions.value = [...newValue]
84
- selectedVersion.value = newValue[0]
85
- },
86
- { immediate: true }
87
- )
88
-
89
- const config = useRuntimeConfig()
90
- const description = computed<string>(() => {
91
- return localization.value.common.hostSupportsMoreVirtualMachineVersionSelectCompatibilityVirtualMachine.replaceAll(
92
- '{trademark}',
93
- config.public[`TRADEMARK_${useEnvLanguage()}`]
94
- )
95
- })
96
- const versionDescription = computed<string>(() => {
97
- if (!selectedVersion.value) return ''
98
-
99
- const version = selectedVersion.value.value.split('-')[1]
100
- const text = selectedVersion.value.text
101
-
102
- if (selectedVersion.value === versions.value.at(-1)) {
103
- return localization.value.common.virtualMachineUsesHardwareVersionAvailable
104
- .replace('{0}', version)
105
- .replace('{1}', text)
106
- }
107
-
108
- return localization.value.common.virtualMachineUsesHardwareVersionUnavailable
109
- .replace('{0}', version)
110
- .replace('{1}', text)
111
- })
112
-
113
- watch(
114
- selectedVersion,
115
- (newValue) => {
116
- if (!newValue) return
117
- emits('change', newValue)
118
- },
119
- { immediate: true }
120
- )
121
-
122
- // const isShowHelp = ref(false)
123
-
124
- const apiError = computed<string>(() => {
125
- return (
126
- props.errorValidationFields?.find(
127
- (message) => message.field === 'compatibility'
128
- )?.error_message || ''
129
- )
130
- })
131
-
132
- const onRemoveValidationError = (): void => {
133
- emits('remove-error-by-title', 'compatibility')
134
- }
135
- </script>
136
-
137
- <style scoped lang="scss">
138
- .select-compatibility-block {
139
- margin-top: 12px;
140
- font-size: 13px;
141
-
142
- &.version-select-wrap {
143
- display: flex;
144
- align-items: center;
145
- gap: 6px;
146
-
147
- //#version-select-help-icon {
148
- // .help-title {
149
- // font-size: 22px;
150
- // }
151
- //
152
- // p {
153
- // width: 200px;
154
- // }
155
- //
156
- // a {
157
- // color: #0072a3;
158
- // }
159
- //}
160
- }
161
- }
162
- </style>
1
+ <template>
2
+ <common-vm-actions-common-select-compatibility-new
3
+ v-if="isNewView"
4
+ v-model:selected-version="selectedVersion"
5
+ :versions="versions"
6
+ :description="description"
7
+ :api-error="apiError"
8
+ @remove-validation-error="onRemoveValidationError"
9
+ />
10
+ <common-vm-actions-common-select-compatibility-old
11
+ v-else
12
+ v-model:selected-version="selectedVersion"
13
+ :versions="versions"
14
+ :description="description"
15
+ :version-description="versionDescription"
16
+ :api-error="apiError"
17
+ @remove-validation-error="onRemoveValidationError"
18
+ />
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
23
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
24
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
25
+
26
+ const props = defineProps<{
27
+ options: UI_I_OptionItem[]
28
+ errorValidationFields: UI_I_ErrorValidationField[]
29
+ }>()
30
+ const emits = defineEmits<{
31
+ (event: 'change', value: UI_I_OptionItem): void
32
+ (event: 'remove-error-by-title', value: string): void
33
+ }>()
34
+
35
+ const { $store }: any = useNuxtApp()
36
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
37
+
38
+ const localization = computed<UI_I_Localization>(() => useLocal())
39
+
40
+ const versions = ref<UI_I_OptionItem[]>(props.options)
41
+ const selectedVersion = ref<UI_I_OptionItem | null>(null)
42
+ watch(
43
+ () => props.options,
44
+ (newValue) => {
45
+ versions.value = [...newValue]
46
+ selectedVersion.value = newValue[0]
47
+ },
48
+ { immediate: true }
49
+ )
50
+
51
+ const config = useRuntimeConfig()
52
+ const description = computed<string>(() => {
53
+ return localization.value.common.hostSupportsMoreVirtualMachineVersionSelectCompatibilityVirtualMachine.replaceAll(
54
+ '{trademark}',
55
+ config.public[`TRADEMARK_${useEnvLanguage()}`]
56
+ )
57
+ })
58
+ const versionDescription = computed<string>(() => {
59
+ if (!selectedVersion.value) return ''
60
+
61
+ const version = selectedVersion.value.value.split('-')[1]
62
+ const text = selectedVersion.value.text
63
+
64
+ if (selectedVersion.value === versions.value.at(-1)) {
65
+ return localization.value.common.virtualMachineUsesHardwareVersionAvailable
66
+ .replace('{0}', version)
67
+ .replace('{1}', text)
68
+ }
69
+
70
+ return localization.value.common.virtualMachineUsesHardwareVersionUnavailable
71
+ .replace('{0}', version)
72
+ .replace('{1}', text)
73
+ })
74
+
75
+ watch(
76
+ selectedVersion,
77
+ (newValue) => {
78
+ if (!newValue) return
79
+ emits('change', newValue)
80
+ },
81
+ { immediate: true }
82
+ )
83
+
84
+ // const isShowHelp = ref(false)
85
+
86
+ const apiError = computed<string>(() => {
87
+ return (
88
+ props.errorValidationFields?.find(
89
+ (message) => message.field === 'compatibility'
90
+ )?.error_message || ''
91
+ )
92
+ })
93
+
94
+ const onRemoveValidationError = (): void => {
95
+ emits('remove-error-by-title', 'compatibility')
96
+ }
97
+ </script>
98
+
99
+ <style scoped lang="scss">
100
+ </style>
@@ -0,0 +1,165 @@
1
+ <template>
2
+ <div class="select-compatibility pt-4">
3
+ <Teleport to="#compatibility-alert-wrapper">
4
+ <ui-alert
5
+ v-show="props.apiError.length"
6
+ status="alert-danger"
7
+ :messages="[props.apiError]"
8
+ test-id="storage-alert"
9
+ :items="[props.apiError]"
10
+ @remove="emits('remove-validation-error')"
11
+ />
12
+ </Teleport>
13
+ <h3 class="select-compatibility-description pb-4">
14
+ {{ props.description }}
15
+ </h3>
16
+ <div class="version-select-wrap flex">
17
+ <div
18
+ v-for="item in versionsLocal"
19
+ :key="item.value"
20
+ :class="[
21
+ 'version-select',
22
+ {
23
+ selected: item.value === selectedVersionLocal,
24
+ disabled: item.disabled,
25
+ },
26
+ ]"
27
+ @click="selectedVersionLocal = item.value"
28
+ >
29
+ <ui-radio
30
+ v-model="selectedVersionLocal"
31
+ :label="item.text"
32
+ :value="item.value"
33
+ :test-id="item.testId"
34
+ :disabled="item.disabled"
35
+ size="md"
36
+ />
37
+
38
+ <p class="description">
39
+ {{ item.description }}
40
+ </p>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup lang="ts">
47
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
48
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
49
+
50
+ const selectedVersion = defineModel<UI_I_OptionItem | null>('selectedVersion', {
51
+ required: true,
52
+ })
53
+
54
+ const props = defineProps<{
55
+ versions: UI_I_OptionItem[]
56
+ description: string
57
+ apiError: string
58
+ }>()
59
+ const emits = defineEmits<{
60
+ (event: 'remove-validation-error'): void
61
+ }>()
62
+
63
+ const selectedVersionLocal = computed<string>({
64
+ get() {
65
+ return selectedVersion.value?.value
66
+ },
67
+ set(newValue) {
68
+ selectedVersion.value =
69
+ props.versions.find((version) => version.value === newValue) || null
70
+ },
71
+ })
72
+
73
+ const localization = computed<UI_I_Localization>(() => useLocal())
74
+
75
+ const getDescription = (version: any) => {
76
+ const versionValue = version.value.split('-')[1]
77
+ const text = version.text
78
+
79
+ if (version === props.versions.at(-1)) {
80
+ return localization.value.common.virtualMachineUsesHardwareVersionAvailable
81
+ .replace('{0}', versionValue)
82
+ .replace('{1}', text)
83
+ }
84
+
85
+ return localization.value.common.virtualMachineUsesHardwareVersionUnavailable
86
+ .replace('{0}', versionValue)
87
+ .replace('{1}', text)
88
+ }
89
+ const versionsLocal = computed(() => {
90
+ return props.versions.map((version) => {
91
+ return {
92
+ ...version,
93
+ description: getDescription(version),
94
+ }
95
+ })
96
+ })
97
+ </script>
98
+
99
+ <style>
100
+ :root {
101
+ --select-compatibility-bg-color: #ffffff;
102
+ --select-compatibility-border-color: #e9ebed;
103
+ --select-compatibility-border-hover-color: #d3d6da;
104
+ --select-compatibility-selected-bg-color: #f0f8fd;
105
+ --select-compatibility-selected-border-color: #008fd6;
106
+ --select-compatibility-description-color: #4d5d69;
107
+ }
108
+ :root.dark-theme {
109
+ --select-compatibility-bg-color: transparent;
110
+ --select-compatibility-border-color: #e9ebed1f;
111
+ --select-compatibility-border-hover-color: #e9ebed3d;
112
+ --select-compatibility-selected-bg-color: #2ba2de14;
113
+ --select-compatibility-selected-border-color: #2ba2de;
114
+ --select-compatibility-description-color: #e9eaec;
115
+ }
116
+ </style>
117
+ <style scoped lang="scss">
118
+ .select-compatibility {
119
+ container-type: inline-size;
120
+
121
+ .select-compatibility-description {
122
+ font-size: 13px;
123
+ color: var(--select-compatibility-description-color);
124
+ }
125
+
126
+ .version-select-wrap {
127
+ gap: 12px;
128
+
129
+ .version-select {
130
+ background-color: var(--select-compatibility-bg-color);
131
+ border: 1px solid var(--select-compatibility-border-color);
132
+ padding: 12px;
133
+ border-radius: 8px;
134
+
135
+ &:not(.selected):not(.disabled) {
136
+ cursor: pointer;
137
+ &:hover {
138
+ border-color: var(--select-compatibility-border-hover-color);
139
+ }
140
+ }
141
+
142
+ &.selected {
143
+ background-color: var(--select-compatibility-selected-bg-color);
144
+ border: 1.5px solid var(--select-compatibility-selected-border-color);
145
+ }
146
+
147
+ .description {
148
+ font-size: 13px;
149
+ color: #9da6ad;
150
+ margin: 8px 0 0 28px;
151
+ }
152
+
153
+ :deep(.radio-label) {
154
+ align-items: flex-start;
155
+ }
156
+ }
157
+ }
158
+
159
+ @container (max-width: 600px) {
160
+ .version-select-wrap {
161
+ flex-direction: column;
162
+ }
163
+ }
164
+ }
165
+ </style>
@@ -0,0 +1,107 @@
1
+ <template>
2
+ <div class="select-compatibility">
3
+ <p class="select-compatibility-block">
4
+ {{ props.description }}
5
+ </p>
6
+ <div class="select-compatibility-block version-select-wrap">
7
+ <label for="version-select"
8
+ >{{ localization.common.compatibleWith }}:</label
9
+ >
10
+
11
+ <atoms-tooltip-error
12
+ :has-error="!!props.apiError"
13
+ selector="#vm-wizard-version-select"
14
+ @remove="emits('remove-validation-error')"
15
+ >
16
+ <template #elem>
17
+ <select
18
+ id="vm-wizard-version-select"
19
+ v-model="selectedVersion"
20
+ data-id="vm-wizard-version-select"
21
+ >
22
+ <option v-for="(item, key) in props.versions" :key="key" :value="item">
23
+ {{ item.text }}
24
+ </option>
25
+ </select>
26
+ </template>
27
+ <template #content>{{ props.apiError }}</template>
28
+ </atoms-tooltip-error>
29
+ <!-- <div id="version-select-help-icon" class="flex-align-center relative">-->
30
+ <!-- <atoms-the-icon-->
31
+ <!-- fill="#0072a3"-->
32
+ <!-- width="24px"-->
33
+ <!-- height="24px"-->
34
+ <!-- name="info-circle"-->
35
+ <!-- @click="isShowHelp = !isShowHelp"-->
36
+ <!-- />-->
37
+ <!-- <atoms-tooltip-signpost-->
38
+ <!-- v-if="isShowHelp"-->
39
+ <!-- elem-id="version-select-help-icon"-->
40
+ <!-- @hide="isShowHelp = false"-->
41
+ <!-- >-->
42
+ <!-- <h3 class="help-title">{{ localization.common.help }}</h3>-->
43
+
44
+ <!-- <p>-->
45
+ <!-- {{-->
46
+ <!-- localization.common.eachVirtualMachineCompatibilitySettingIncludesHardwareAvailableVirtualMachine-->
47
+ <!-- }}-->
48
+ <!-- </p>-->
49
+
50
+ <!-- <a id="more-information-link" class="pointer">{{-->
51
+ <!-- localization.common.moreInformation-->
52
+ <!-- }}</a>-->
53
+ <!-- </atoms-tooltip-signpost>-->
54
+ <!-- </div>-->
55
+ </div>
56
+ <p class="select-compatibility-block">
57
+ {{ props.versionDescription }}
58
+ </p>
59
+ </div>
60
+ </template>
61
+
62
+ <script setup lang="ts">
63
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
64
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
65
+
66
+ const selectedVersion = defineModel<UI_I_OptionItem | null>('selectedVersion', {required: true})
67
+
68
+ const props = defineProps<{
69
+ versions: UI_I_OptionItem[]
70
+ description: string
71
+ versionDescription: string
72
+ apiError: string
73
+ }>()
74
+ const emits = defineEmits<{
75
+ (event: 'remove-validation-error'): void
76
+ }>()
77
+
78
+ const localization = computed<UI_I_Localization>(() => useLocal())
79
+
80
+ </script>
81
+
82
+ <style scoped lang="scss">
83
+ .select-compatibility-block {
84
+ margin-top: 12px;
85
+ font-size: 13px;
86
+
87
+ &.version-select-wrap {
88
+ display: flex;
89
+ align-items: center;
90
+ gap: 6px;
91
+
92
+ //#version-select-help-icon {
93
+ // .help-title {
94
+ // font-size: 22px;
95
+ // }
96
+ //
97
+ // p {
98
+ // width: 200px;
99
+ // }
100
+ //
101
+ // a {
102
+ // color: #0072a3;
103
+ // }
104
+ //}
105
+ }
106
+ }
107
+ </style>