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,220 +1,220 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_MigrateReadyBlockData } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
3
- import type { UI_I_MigrateFormLocal } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
4
- import {
5
- UI_E_VmMigrationStrategy,
6
- UI_E_VmMigrationType,
7
- } from '~/components/common/wizards/vm/migrate/lib/models/enums'
8
- import { UI_E_SelectStorageDiskFormat } from '~/components/common/wizards/vm/migrate/select/storage/lib/models/enums'
9
- import { virtualDiskFormatOptionsFunc } from '~/components/common/wizards/vm/migrate/select/storage/configure/batch/config/virtualDiskFormat'
10
- const migrateOnlyStorageDataView = (
11
- localization: UI_I_Localization,
12
- form: UI_I_MigrateFormLocal,
13
- vmName: string
14
- ): UI_I_MigrateReadyBlockData[] => {
15
- const { disk_format, configure, storage } = form
16
-
17
- const isActivePerDiskTab: boolean = configure.type === 'configure-disk'
18
-
19
- const diskFormat = virtualDiskFormatOptionsFunc().find(
20
- (file) => file.value === disk_format
21
- )!
22
-
23
- let storageResult: UI_I_MigrateReadyBlockData[] = [
24
- {
25
- label: localization.common.storage,
26
- value: storage?.name,
27
- permissions: ['batch-configure'],
28
- },
29
- {
30
- label: localization.common.diskFormat,
31
- value: diskFormat.label,
32
- permissions: ['batch-configure'],
33
- },
34
- {
35
- label: vmName,
36
- value: '',
37
- permissions: ['configure-disk'],
38
- },
39
- ]
40
-
41
- if (isActivePerDiskTab && configure.disks) {
42
- const perDiskItems: UI_I_MigrateReadyBlockData[] = configure.disks.map(
43
- (disk) => {
44
- const isConfigurationFile = disk.file === 'Configuration file'
45
- const diskFormat = UI_E_SelectStorageDiskFormat[disk.disk_format]
46
-
47
- const text = isConfigurationFile
48
- ? disk.storage
49
- : `${disk.storage} (${diskFormat})`
50
-
51
- return {
52
- label: disk.file,
53
- value: text,
54
- permissions: ['configure-disk'],
55
- isProperty: true,
56
- }
57
- }
58
- )
59
- storageResult = [...storageResult, ...perDiskItems]
60
- }
61
-
62
- return storageResult.filter(
63
- (option) =>
64
- !option.permissions.length || option.permissions.includes(configure.type)
65
- )
66
- }
67
-
68
- const setSelectNetworkDataView = (
69
- _localization: UI_I_Localization,
70
- from: UI_I_MigrateFormLocal
71
- ): string => {
72
- const result = []
73
- for (const key in from.network) {
74
- result.push(`${key}: ${from.network[key]}`)
75
- }
76
- return result.join(', ')
77
- // const {
78
- // noNetworkReassignments,
79
- // // networkAdapterReassignedNewDestination,
80
- // networkAdapterWillBeReassignedTo,
81
- // } = localization.common
82
- //
83
- // const { data } = from.network
84
- // const { sourceNetwork, value } = data
85
- //
86
- // if (sourceNetwork === value) {
87
- // return noNetworkReassignments
88
- // }
89
- //
90
- // type Replacements = {
91
- // lan: string
92
- // network: string
93
- // }
94
- //
95
- // const replacements: Replacements = {
96
- // lan: sourceNetwork,
97
- // network: value,
98
- // }
99
- // return networkAdapterWillBeReassignedTo.replace(
100
- // /{(\w+)}/g,
101
- // (_, key: keyof Replacements) => replacements[key]
102
- // )
103
-
104
- // return networkAdapterReassignedNewDestination.replace('{number}', '1')
105
- }
106
-
107
- const storageDetailsFunc = (
108
- localization: UI_I_Localization,
109
- name: string,
110
- form: UI_I_MigrateFormLocal
111
- ): UI_I_MigrateReadyBlockData[] => {
112
- const { migrate_type, vMotion_priority, resource } = form
113
-
114
- const migrationType = localization.common[UI_E_VmMigrationType[migrate_type]]
115
-
116
- let result: UI_I_MigrateReadyBlockData[] = [
117
- {
118
- label: localization.common.migrationType,
119
- value: migrationType,
120
- permissions: ['batch-configure', 'configure-disk'],
121
- },
122
- {
123
- label: localization.common.virtualMachine,
124
- value: name,
125
- permissions: ['batch-configure', 'configure-disk'],
126
- },
127
- ]
128
-
129
- if (migrate_type === 'resource') {
130
- const resourceResult = [
131
- {
132
- label: localization.common.networks,
133
- value: setSelectNetworkDataView(localization, form),
134
- permissions: [],
135
- },
136
- {
137
- label: localization.migrateVm.migrationStrategy,
138
- value:
139
- localization.migrateVm[UI_E_VmMigrationStrategy[vMotion_priority]],
140
- permissions: [],
141
- },
142
- ]
143
- Object.entries(resource).forEach(([key, value]) => {
144
- if (value !== null) {
145
- resourceResult.unshift({
146
- label: localization.common[key],
147
- value: value.name,
148
- permissions: [],
149
- })
150
- }
151
- })
152
- result = [...result, ...resourceResult]
153
- }
154
-
155
- if (migrate_type === 'storage') {
156
- const storageData = migrateOnlyStorageDataView(localization, form, name)
157
- result = [...result, ...storageData]
158
- }
159
-
160
- if (migrate_type === 'resource-storage') {
161
- const resourceStorageResult = [
162
- {
163
- label: localization.common.host,
164
- value: '', //selectedComputeResource.selectedNode.name,
165
- permissions: [],
166
- },
167
- {
168
- label: localization.migrateVm.migrationStrategy,
169
- value: localization.migrateVm[UI_E_VmMigrationStrategy[vMotion_priority]],
170
- permissions: [],
171
- },
172
- {
173
- label: localization.common.networks,
174
- value: setSelectNetworkDataView(localization, form),
175
- permissions: [],
176
- },
177
- ]
178
- const storageResult = migrateOnlyStorageDataView(localization, form, name)
179
-
180
- result = [...result, ...resourceStorageResult, ...storageResult]
181
- }
182
-
183
- if (migrate_type === 'server') {
184
- const serverResult = [
185
- {
186
- label: localization.migrateVm.migrationStrategy,
187
- value: localization.migrateVm[UI_E_VmMigrationStrategy[vMotion_priority]],
188
- permissions: [],
189
- },
190
- {
191
- label: localization.common.networks,
192
- value: setSelectNetworkDataView(localization, form),
193
- permissions: [],
194
- },
195
- ]
196
- Object.entries(resource).forEach(([key, value]) => {
197
- if (value !== null) {
198
- serverResult.unshift({
199
- label: localization.common[key],
200
- value: value.name,
201
- permissions: [],
202
- })
203
- }
204
- })
205
-
206
- const storageResult = migrateOnlyStorageDataView(localization, form, name)
207
-
208
- result = [...result, ...serverResult, ...storageResult]
209
- }
210
-
211
- return result
212
- }
213
- export const constructDataReadyViewFunc = (
214
- name: string,
215
- data: UI_I_MigrateFormLocal
216
- ): UI_I_MigrateReadyBlockData[] => {
217
- const localization: UI_I_Localization = useLocal()
218
-
219
- return storageDetailsFunc(localization, name, data)
220
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_MigrateReadyBlockData } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
3
+ import type { UI_I_MigrateFormLocal } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
4
+ import {
5
+ UI_E_VmMigrationStrategy,
6
+ UI_E_VmMigrationType,
7
+ } from '~/components/common/wizards/vm/migrate/lib/models/enums'
8
+ import { UI_E_SelectStorageDiskFormat } from '~/components/common/wizards/vm/migrate/select/storage/lib/models/enums'
9
+ import { virtualDiskFormatOptionsFunc } from '~/components/common/wizards/vm/migrate/select/storage/configure/batch/config/virtualDiskFormat'
10
+ const migrateOnlyStorageDataView = (
11
+ localization: UI_I_Localization,
12
+ form: UI_I_MigrateFormLocal,
13
+ vmName: string
14
+ ): UI_I_MigrateReadyBlockData[] => {
15
+ const { disk_format, configure, storage } = form
16
+
17
+ const isActivePerDiskTab: boolean = configure.type === 'configure-disk'
18
+
19
+ const diskFormat = virtualDiskFormatOptionsFunc().find(
20
+ (file) => file.value === disk_format
21
+ )!
22
+
23
+ let storageResult: UI_I_MigrateReadyBlockData[] = [
24
+ {
25
+ label: localization.common.storage,
26
+ value: storage?.name,
27
+ permissions: ['batch-configure'],
28
+ },
29
+ {
30
+ label: localization.common.diskFormat,
31
+ value: diskFormat.label,
32
+ permissions: ['batch-configure'],
33
+ },
34
+ {
35
+ label: vmName,
36
+ value: '',
37
+ permissions: ['configure-disk'],
38
+ },
39
+ ]
40
+
41
+ if (isActivePerDiskTab && configure.disks) {
42
+ const perDiskItems: UI_I_MigrateReadyBlockData[] = configure.disks.map(
43
+ (disk) => {
44
+ const isConfigurationFile = disk.file === 'Configuration file'
45
+ const diskFormat = UI_E_SelectStorageDiskFormat[disk.disk_format]
46
+
47
+ const text = isConfigurationFile
48
+ ? disk.storage
49
+ : `${disk.storage} (${diskFormat})`
50
+
51
+ return {
52
+ label: disk.file,
53
+ value: text,
54
+ permissions: ['configure-disk'],
55
+ isProperty: true,
56
+ }
57
+ }
58
+ )
59
+ storageResult = [...storageResult, ...perDiskItems]
60
+ }
61
+
62
+ return storageResult.filter(
63
+ (option) =>
64
+ !option.permissions.length || option.permissions.includes(configure.type)
65
+ )
66
+ }
67
+
68
+ const setSelectNetworkDataView = (
69
+ _localization: UI_I_Localization,
70
+ from: UI_I_MigrateFormLocal
71
+ ): string => {
72
+ const result = []
73
+ for (const key in from.network) {
74
+ result.push(`${key}: ${from.network[key]}`)
75
+ }
76
+ return result.join(', ')
77
+ // const {
78
+ // noNetworkReassignments,
79
+ // // networkAdapterReassignedNewDestination,
80
+ // networkAdapterWillBeReassignedTo,
81
+ // } = localization.common
82
+ //
83
+ // const { data } = from.network
84
+ // const { sourceNetwork, value } = data
85
+ //
86
+ // if (sourceNetwork === value) {
87
+ // return noNetworkReassignments
88
+ // }
89
+ //
90
+ // type Replacements = {
91
+ // lan: string
92
+ // network: string
93
+ // }
94
+ //
95
+ // const replacements: Replacements = {
96
+ // lan: sourceNetwork,
97
+ // network: value,
98
+ // }
99
+ // return networkAdapterWillBeReassignedTo.replace(
100
+ // /{(\w+)}/g,
101
+ // (_, key: keyof Replacements) => replacements[key]
102
+ // )
103
+
104
+ // return networkAdapterReassignedNewDestination.replace('{number}', '1')
105
+ }
106
+
107
+ const storageDetailsFunc = (
108
+ localization: UI_I_Localization,
109
+ name: string,
110
+ form: UI_I_MigrateFormLocal
111
+ ): UI_I_MigrateReadyBlockData[] => {
112
+ const { migrate_type, vMotion_priority, resource } = form
113
+
114
+ const migrationType = localization.common[UI_E_VmMigrationType[migrate_type]]
115
+
116
+ let result: UI_I_MigrateReadyBlockData[] = [
117
+ {
118
+ label: localization.common.migrationType,
119
+ value: migrationType,
120
+ permissions: ['batch-configure', 'configure-disk'],
121
+ },
122
+ {
123
+ label: localization.common.virtualMachine,
124
+ value: name,
125
+ permissions: ['batch-configure', 'configure-disk'],
126
+ },
127
+ ]
128
+
129
+ if (migrate_type === 'resource') {
130
+ const resourceResult = [
131
+ {
132
+ label: localization.common.networks,
133
+ value: setSelectNetworkDataView(localization, form),
134
+ permissions: [],
135
+ },
136
+ {
137
+ label: localization.migrateVm.migrationStrategy,
138
+ value:
139
+ localization.migrateVm[UI_E_VmMigrationStrategy[vMotion_priority]],
140
+ permissions: [],
141
+ },
142
+ ]
143
+ Object.entries(resource).forEach(([key, value]) => {
144
+ if (value !== null) {
145
+ resourceResult.unshift({
146
+ label: localization.common[key],
147
+ value: value.name,
148
+ permissions: [],
149
+ })
150
+ }
151
+ })
152
+ result = [...result, ...resourceResult]
153
+ }
154
+
155
+ if (migrate_type === 'storage') {
156
+ const storageData = migrateOnlyStorageDataView(localization, form, name)
157
+ result = [...result, ...storageData]
158
+ }
159
+
160
+ if (migrate_type === 'resource-storage') {
161
+ const resourceStorageResult = [
162
+ {
163
+ label: localization.common.host,
164
+ value: '', //selectedComputeResource.selectedNode.name,
165
+ permissions: [],
166
+ },
167
+ {
168
+ label: localization.migrateVm.migrationStrategy,
169
+ value: localization.migrateVm[UI_E_VmMigrationStrategy[vMotion_priority]],
170
+ permissions: [],
171
+ },
172
+ {
173
+ label: localization.common.networks,
174
+ value: setSelectNetworkDataView(localization, form),
175
+ permissions: [],
176
+ },
177
+ ]
178
+ const storageResult = migrateOnlyStorageDataView(localization, form, name)
179
+
180
+ result = [...result, ...resourceStorageResult, ...storageResult]
181
+ }
182
+
183
+ if (migrate_type === 'server') {
184
+ const serverResult = [
185
+ {
186
+ label: localization.migrateVm.migrationStrategy,
187
+ value: localization.migrateVm[UI_E_VmMigrationStrategy[vMotion_priority]],
188
+ permissions: [],
189
+ },
190
+ {
191
+ label: localization.common.networks,
192
+ value: setSelectNetworkDataView(localization, form),
193
+ permissions: [],
194
+ },
195
+ ]
196
+ Object.entries(resource).forEach(([key, value]) => {
197
+ if (value !== null) {
198
+ serverResult.unshift({
199
+ label: localization.common[key],
200
+ value: value.name,
201
+ permissions: [],
202
+ })
203
+ }
204
+ })
205
+
206
+ const storageResult = migrateOnlyStorageDataView(localization, form, name)
207
+
208
+ result = [...result, ...serverResult, ...storageResult]
209
+ }
210
+
211
+ return result
212
+ }
213
+ export const constructDataReadyViewFunc = (
214
+ name: string,
215
+ data: UI_I_MigrateFormLocal
216
+ ): UI_I_MigrateReadyBlockData[] => {
217
+ const localization: UI_I_Localization = useLocal()
218
+
219
+ return storageDetailsFunc(localization, name, data)
220
+ }
@@ -1,103 +1,103 @@
1
- <template>
2
- <div class="select-network">
3
- <div class="select-network__text">
4
- {{ selectNetworkHeadline }}
5
- </div>
6
-
7
- <common-wizards-vm-migrate-select-network-table-network
8
- v-model="model"
9
- :networks="dataNetwork"
10
- :source-networks="sourceNetworks"
11
- />
12
-
13
- <common-wizards-vm-common-validation-compatibility
14
- :loading="false"
15
- status="Success"
16
- text="compatibilityChecksSucceeded"
17
- />
18
- </div>
19
- </template>
20
-
21
- <script lang="ts" setup>
22
- import type { UI_I_Localization } from '~/lib/models/interfaces'
23
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
24
-
25
- const model = defineModel<any>({ required: true })
26
-
27
- const props = defineProps<{
28
- vmInfo: any | null
29
- networks: any
30
- }>()
31
-
32
- const localization = computed<UI_I_Localization>(() => useLocal())
33
-
34
- const selectNetworkHeadline = computed<string>(() => {
35
- const { migrateNetworkingForAllAdapters, migrateNetworkingForEachAdapters } =
36
- localization.value.common
37
-
38
- return model.value.isBasicNetworkMode
39
- ? migrateNetworkingForAllAdapters
40
- : migrateNetworkingForEachAdapters
41
- })
42
-
43
- const sourceNetworks = computed<UI_I_NetworkTableItem[]>(() => {
44
- return props.networks?.items.map((network) => {
45
- return {
46
- id: network.id,
47
- name: network.name,
48
- net_bridge: '',
49
- }
50
- })
51
- })
52
-
53
- const dataNetwork = computed(() => {
54
- return (
55
- props.vmInfo?.network_devices?.map((network) => {
56
- const destinationNetwork =
57
- sourceNetworks.value?.map((src) => {
58
- return { text: src.name, value: src.name }
59
- }) || []
60
- return {
61
- mac: network.mac,
62
- network_adapter: network.model,
63
- source_network: network.network,
64
- value: destinationNetwork[0]?.value || '',
65
- destination_network: [
66
- ...destinationNetwork,
67
- { text: `${localization.value.common.browse}...`, value: 'browser' },
68
- ],
69
- }
70
- }) || []
71
- )
72
- })
73
- watch(
74
- dataNetwork,
75
- (newValue) => {
76
- model.value = {}
77
- const newModel = {}
78
- newValue.forEach((item: any) => {
79
- newModel[item.mac] = item.value
80
- })
81
- model.value = newModel
82
- },
83
- { deep: true }
84
- )
85
- </script>
86
-
87
- <style lang="scss" scoped>
88
- @import 'assets/scss/common/mixins';
89
- .select-network {
90
- @include flex($dir: column);
91
- height: inherit;
92
- margin-top: 10px;
93
- &__text {
94
- font-size: 12px;
95
- }
96
- &__matcher-details {
97
- margin-top: 10px;
98
- }
99
- .vm-migrate-advanced-view-button {
100
- text-align: end;
101
- }
102
- }
103
- </style>
1
+ <template>
2
+ <div class="select-network">
3
+ <div class="select-network__text">
4
+ {{ selectNetworkHeadline }}
5
+ </div>
6
+
7
+ <common-wizards-vm-migrate-select-network-table-network
8
+ v-model="model"
9
+ :networks="dataNetwork"
10
+ :source-networks="sourceNetworks"
11
+ />
12
+
13
+ <common-wizards-vm-common-validation-compatibility
14
+ :loading="false"
15
+ status="Success"
16
+ text="compatibilityChecksSucceeded"
17
+ />
18
+ </div>
19
+ </template>
20
+
21
+ <script lang="ts" setup>
22
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
23
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
24
+
25
+ const model = defineModel<any>({ required: true })
26
+
27
+ const props = defineProps<{
28
+ vmInfo: any | null
29
+ networks: any
30
+ }>()
31
+
32
+ const localization = computed<UI_I_Localization>(() => useLocal())
33
+
34
+ const selectNetworkHeadline = computed<string>(() => {
35
+ const { migrateNetworkingForAllAdapters, migrateNetworkingForEachAdapters } =
36
+ localization.value.common
37
+
38
+ return model.value.isBasicNetworkMode
39
+ ? migrateNetworkingForAllAdapters
40
+ : migrateNetworkingForEachAdapters
41
+ })
42
+
43
+ const sourceNetworks = computed<UI_I_NetworkTableItem[]>(() => {
44
+ return props.networks?.items.map((network) => {
45
+ return {
46
+ id: network.id,
47
+ name: network.name,
48
+ net_bridge: '',
49
+ }
50
+ })
51
+ })
52
+
53
+ const dataNetwork = computed(() => {
54
+ return (
55
+ props.vmInfo?.network_devices?.map((network) => {
56
+ const destinationNetwork =
57
+ sourceNetworks.value?.map((src) => {
58
+ return { text: src.name, value: src.name }
59
+ }) || []
60
+ return {
61
+ mac: network.mac,
62
+ network_adapter: network.model,
63
+ source_network: network.network,
64
+ value: destinationNetwork[0]?.value || '',
65
+ destination_network: [
66
+ ...destinationNetwork,
67
+ { text: `${localization.value.common.browse}...`, value: 'browser' },
68
+ ],
69
+ }
70
+ }) || []
71
+ )
72
+ })
73
+ watch(
74
+ dataNetwork,
75
+ (newValue) => {
76
+ model.value = {}
77
+ const newModel = {}
78
+ newValue.forEach((item: any) => {
79
+ newModel[item.mac] = item.value
80
+ })
81
+ model.value = newModel
82
+ },
83
+ { deep: true }
84
+ )
85
+ </script>
86
+
87
+ <style lang="scss" scoped>
88
+ @import 'assets/scss/common/mixins';
89
+ .select-network {
90
+ @include flex($dir: column);
91
+ height: inherit;
92
+ margin-top: 10px;
93
+ &__text {
94
+ font-size: 12px;
95
+ }
96
+ &__matcher-details {
97
+ margin-top: 10px;
98
+ }
99
+ .vm-migrate-advanced-view-button {
100
+ text-align: end;
101
+ }
102
+ }
103
+ </style>