bfg-common 1.5.119 → 1.5.121

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 (135) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/localization/local_be.json +15 -4
  3. package/assets/localization/local_en.json +15 -4
  4. package/assets/localization/local_hy.json +15 -4
  5. package/assets/localization/local_kk.json +15 -4
  6. package/assets/localization/local_ru.json +17 -6
  7. package/assets/localization/local_zh.json +15 -4
  8. package/assets/scss/common/icons/icons-1.scss +18 -0
  9. package/components/atoms/TheIcon.vue +94 -5
  10. package/components/atoms/TheIcon3.vue +50 -50
  11. package/components/atoms/perPage/PerPage.vue +58 -58
  12. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  13. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  14. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  15. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  16. package/components/common/context/lib/models/interfaces.ts +31 -31
  17. package/components/common/context/recursion/Recursion.vue +87 -87
  18. package/components/common/context/recursion/RecursionNew.vue +238 -238
  19. package/components/common/diagramMain/DiagramMain.vue +897 -897
  20. package/components/common/diagramMain/Header.vue +214 -214
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  23. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  24. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  25. package/components/common/pages/home/headline/Headline.vue +45 -45
  26. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  27. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  28. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  29. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  30. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  31. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  32. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  33. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  34. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  35. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  36. package/components/common/pages/packages/Packages.vue +208 -208
  37. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  38. package/components/common/readyToComplete/New.vue +66 -66
  39. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  40. package/components/common/recursionTree/RecursionTree.vue +223 -223
  41. package/components/common/select/button/ButtonDropdown.vue +108 -108
  42. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  43. package/components/common/vm/actions/add/Add.vue +785 -785
  44. package/components/common/vm/actions/add/New.vue +556 -556
  45. package/components/common/vm/actions/add/Old.vue +371 -371
  46. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  47. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  48. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  49. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  50. package/components/common/vm/actions/clone/Clone.vue +798 -798
  51. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  52. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  53. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +149 -149
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +74 -74
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  98. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  99. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +100 -100
  100. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  101. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  102. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  103. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  104. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  105. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  106. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  107. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  108. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  109. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  110. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  111. package/components/common/vm/actions/common/select/storage/Storage.vue +131 -131
  112. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -326
  113. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  114. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  115. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  116. package/components/common/wizards/datastore/add/Add.vue +1 -1
  117. package/components/common/wizards/datastore/add/steps/readyComplete/ReadyCompleteOld.vue +2 -2
  118. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +4 -3
  119. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  120. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  121. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  122. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  123. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  124. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  125. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  126. package/composables/productNameLocal.ts +30 -30
  127. package/composables/useAppVersion.ts +21 -21
  128. package/package.json +1 -1
  129. package/plugins/date.ts +233 -233
  130. package/plugins/directives.ts +24 -24
  131. package/public/spice-console/lib/images/bitmap.js +203 -203
  132. package/public/spice-console/network/spicechannel.js +383 -383
  133. package/store/main/mutations.ts +7 -7
  134. package/store/main/state.ts +7 -7
  135. 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
+ }