bfg-common 1.5.302 → 1.5.304

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/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +2 -1
  7. package/assets/localization/local_en.json +2 -1
  8. package/assets/localization/local_hy.json +2 -1
  9. package/assets/localization/local_kk.json +2 -1
  10. package/assets/localization/local_ru.json +2 -1
  11. package/assets/localization/local_zh.json +2 -1
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  14. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  15. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  16. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  17. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  18. package/components/common/backup/storage/actions/add/New.vue +29 -16
  19. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  20. package/components/common/backup/storage/actions/add/lib/validations.ts +1 -1
  21. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  22. package/components/common/backup/storage/actions/add/steps/hostAccessibility/table/new/lib/config/compatibleTable.ts +0 -1
  23. package/components/common/backup/storage/actions/add/steps/name/New.vue +2 -0
  24. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +42 -42
  25. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +16 -15
  26. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  27. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +243 -243
  28. package/components/common/backup/storage/actions/add/steps/typeMode/TypeMode.vue +7 -1
  29. package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeNew.vue +45 -11
  30. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  31. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  32. package/components/common/context/lib/models/interfaces.ts +33 -33
  33. package/components/common/diagramMain/DiagramMain.vue +897 -897
  34. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  36. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  37. package/components/common/pages/home/headline/Headline.vue +45 -45
  38. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  39. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  40. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  41. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  42. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  43. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  44. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  45. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  46. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  47. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  48. package/components/common/pages/packages/Packages.vue +208 -208
  49. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  50. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  51. package/components/common/recursionTree/RecursionTree.vue +223 -223
  52. package/components/common/select/button/ButtonDropdown.vue +108 -108
  53. package/components/common/spiceConsole/Drawer.vue +377 -377
  54. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  55. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  56. package/components/common/tooltip/Help.vue +76 -39
  57. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  58. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  59. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  60. package/components/common/vm/actions/clone/Clone.vue +817 -817
  61. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  62. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +152 -152
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +128 -128
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +111 -111
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +83 -83
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +154 -154
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  107. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  108. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  109. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  110. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  111. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  112. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  113. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  114. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  115. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  116. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  117. package/components/common/vmt/actions/add/Add.vue +641 -641
  118. package/components/common/vmt/actions/add/lib/config/steps.ts +107 -107
  119. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  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/network/Network.vue +103 -103
  124. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  125. package/composables/productNameLocal.ts +30 -30
  126. package/composables/useAppVersion.ts +21 -21
  127. package/package.json +1 -1
  128. package/plugins/date.ts +233 -233
  129. package/plugins/panelStates.ts +70 -70
  130. package/plugins/text.ts +59 -59
  131. package/public/spice-console/lib/images/bitmap.js +203 -203
  132. package/public/spice-console/network/spicechannel.js +387 -387
  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,45 +1,45 @@
1
- <template>
2
- <common-backup-storage-actions-add-steps-ready-complete-new
3
- v-if="isNewView"
4
- :data-ready-view="dataReadyView"
5
- />
6
-
7
- <common-backup-storage-actions-add-steps-ready-complete-old
8
- v-else
9
- :data-ready-view="dataReadyView"
10
- />
11
- </template>
12
-
13
- <script lang="ts" setup>
14
- import type { UI_T_Project } from '~/lib/models/types'
15
- import type { UI_I_Localization } from '~/lib/models/interfaces'
16
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
17
- import type { UI_I_DetailsItem } from '~/components/common/details/lib/models/interfaces'
18
- import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
19
- import type { UI_I_CompatibleHosts } from '~/components/common/backup/storage/actions/add/steps/hostAccessibility/table/lib/models/interfaces'
20
- import { constructDataReadyViewFunc } from '~/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails'
21
-
22
- const props = defineProps<{
23
- project: UI_T_Project
24
- form: UI_I_CreateDatastoreForm
25
- hosts: UI_I_CompatibleHosts
26
- datastore: UI_I_DatastoreTableItem[]
27
- }>()
28
-
29
- const localization = computed<UI_I_Localization>(() => useLocal())
30
- const { $store }: any = useNuxtApp()
31
-
32
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
-
34
- const dataReadyView = computed<UI_I_DetailsItem>(() =>
35
- constructDataReadyViewFunc(
36
- localization.value,
37
- props.form,
38
- props.project,
39
- props.hosts,
40
- props.datastore
41
- )
42
- )
43
- </script>
44
-
45
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-backup-storage-actions-add-steps-ready-complete-new
3
+ v-if="isNewView"
4
+ :data-ready-view="dataReadyView"
5
+ />
6
+
7
+ <common-backup-storage-actions-add-steps-ready-complete-old
8
+ v-else
9
+ :data-ready-view="dataReadyView"
10
+ />
11
+ </template>
12
+
13
+ <script lang="ts" setup>
14
+ import type { UI_T_Project } from '~/lib/models/types'
15
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
16
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
17
+ import type { UI_I_DetailsItem } from '~/components/common/details/lib/models/interfaces'
18
+ import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
19
+ import type { UI_I_CompatibleHosts } from '~/components/common/backup/storage/actions/add/steps/hostAccessibility/table/lib/models/interfaces'
20
+ import { constructDataReadyViewFunc } from '~/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails'
21
+
22
+ const props = defineProps<{
23
+ project: UI_T_Project
24
+ form: UI_I_CreateDatastoreForm
25
+ hosts: UI_I_CompatibleHosts
26
+ datastore: UI_I_DatastoreTableItem[]
27
+ }>()
28
+
29
+ const localization = computed<UI_I_Localization>(() => useLocal())
30
+ const { $store }: any = useNuxtApp()
31
+
32
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
+
34
+ const dataReadyView = computed<UI_I_DetailsItem>(() =>
35
+ constructDataReadyViewFunc(
36
+ localization.value,
37
+ props.form,
38
+ props.project,
39
+ props.hosts,
40
+ props.datastore
41
+ )
42
+ )
43
+ </script>
44
+
45
+ <style lang="scss" scoped></style>
@@ -1,243 +1,243 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_DetailsItem } from '~/components/common/details/lib/models/interfaces'
3
- import type { UI_T_Project } from '~/lib/models/types'
4
- import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
5
- import type { UI_I_CompatibleHosts } from '~/components/common/backup/storage/actions/add/steps/hostAccessibility/table/lib/models/interfaces'
6
-
7
- const getSelectedHosts = (
8
- allHosts: UI_I_CompatibleHosts,
9
- selectedHosts: string[],
10
- localization: UI_I_Localization
11
- ) => {
12
- const hostsData = selectedHosts
13
- ? allHosts.items
14
- .filter((host) => selectedHosts.includes(host.id))
15
- .map((host) => ({
16
- label: host.name,
17
- iconClassName: 'vsphere-icon-host',
18
- }))
19
- : []
20
-
21
- return {
22
- label: localization.common.hostsAccessibility,
23
- value: '',
24
- items: [
25
- {
26
- label: localization.common.hosts,
27
- value: hostsData as any,
28
- items: [],
29
- testId: 'view-hosts-name-in-complete',
30
- iconClassName: 'vsphere-icon-host',
31
- },
32
- ],
33
- actions: [],
34
- }
35
- }
36
-
37
- const localDetailsFunc = (
38
- localization: UI_I_Localization,
39
- data: UI_I_CreateDatastoreForm,
40
- project: UI_T_Project,
41
- allHosts: UI_I_CompatibleHosts
42
- ): UI_I_DetailsItem[] => {
43
- const { name, hosts } = data
44
-
45
- const details: UI_I_DetailsItem[] = [
46
- {
47
- label: localization.common.name,
48
- value: '',
49
- items: [
50
- {
51
- label: localization.common.name,
52
- value: name,
53
- items: [],
54
- testId: 'view-selected-name-in-complete',
55
- iconClassName: 'vsphere-icon-datastore',
56
- },
57
- ],
58
- actions: [],
59
- testId: 'view-selected-name',
60
- },
61
- ]
62
-
63
- if (project === 'sphere') {
64
- details.push(getSelectedHosts(allHosts, hosts, localization))
65
- }
66
-
67
- return details
68
- }
69
- const nfsDetailsFunc = (
70
- localization: UI_I_Localization,
71
- data: UI_I_CreateDatastoreForm,
72
- project: UI_T_Project,
73
- allHosts: UI_I_CompatibleHosts
74
- ): UI_I_DetailsItem[] => {
75
- const { name, server, folder, version, hosts } = data
76
- // const accessMode = readonly ? 'Read-only' : 'Read-write'
77
-
78
- const details: UI_I_DetailsItem[] = [
79
- {
80
- label: localization.common.nfsVersion,
81
- value: '',
82
- items: [
83
- {
84
- label: localization.common.version,
85
- value: version + '',
86
- items: [],
87
- testId: 'view-selected-nfs-version-in-complete',
88
- },
89
- ],
90
- actions: [],
91
- testId: 'view-selected-nfs-version',
92
- },
93
- {
94
- label: localization.common.nameAndConfiguration,
95
- value: '',
96
- items: [
97
- {
98
- label: localization.common.name,
99
- value: name,
100
- items: [],
101
- testId: 'view-storage-name-in-complete',
102
- iconClassName: 'vsphere-icon-datastore',
103
- },
104
- {
105
- label: localization.common.server,
106
- value: server,
107
- items: [],
108
- testId: 'view-server-name-in-complete',
109
- iconClassName: 'icon-server',
110
- },
111
- {
112
- label: localization.common.folder,
113
- value: folder,
114
- items: [],
115
- testId: 'view-folder-name-in-complete',
116
- iconClassName: 'vsphere-icon-folder',
117
- }
118
- ],
119
- actions: [],
120
- testId: 'view-selected-name-configuration',
121
- },
122
- ]
123
-
124
- if (project === 'sphere') {
125
- details.push(getSelectedHosts(allHosts, hosts, localization))
126
- }
127
-
128
- return details
129
- }
130
- const sambaDetailsFunc = (
131
- localization: UI_I_Localization,
132
- data: UI_I_CreateDatastoreForm,
133
- project: UI_T_Project,
134
- allHosts: UI_I_CompatibleHosts
135
- ): UI_I_DetailsItem[] => {
136
- const { name, server, folder, hosts } = data
137
-
138
- const details: UI_I_DetailsItem[] = [
139
- {
140
- label: localization.common.nameAndConfiguration,
141
- value: '',
142
- items: [
143
- {
144
- label: localization.common.name,
145
- value: name,
146
- items: [],
147
- testId: 'view-storage-name-in-complete',
148
- iconClassName: 'vsphere-icon-datastore',
149
- },
150
- {
151
- label: localization.common.server,
152
- value: server,
153
- items: [],
154
- testId: 'view-server-name-in-complete',
155
- iconClassName: 'icon-server',
156
- },
157
- {
158
- label: localization.common.folder,
159
- value: folder,
160
- items: [],
161
- testId: 'view-folder-name-in-complete',
162
- iconClassName: 'vsphere-icon-folder',
163
- }
164
- ],
165
- actions: [],
166
- testId: 'view-selected-name-configuration',
167
- },
168
- ]
169
-
170
- if (project === 'sphere') {
171
- details.push(getSelectedHosts(allHosts, hosts, localization))
172
- }
173
-
174
- return details
175
- }
176
- const sharedStormDetailsFunc = (
177
- localization: UI_I_Localization,
178
- data: UI_I_CreateDatastoreForm,
179
- project: UI_T_Project,
180
- allHosts: UI_I_CompatibleHosts,
181
- allDatastore: any
182
- ): UI_I_DetailsItem[] => {
183
- const { name, hosts, storm_id } = data
184
- const datastore = allDatastore.find(storage => storage.id === storm_id)
185
- const details: UI_I_DetailsItem[] = [
186
- {
187
- label: localization.common.name,
188
- value: '',
189
- items: [
190
- {
191
- label: localization.common.name,
192
- value: name,
193
- items: [],
194
- testId: 'view-storage-name-in-complete',
195
- iconClassName: 'vsphere-icon-datastore',
196
- },
197
- ],
198
- actions: [],
199
- },
200
- {
201
- label: localization.common.datastore,
202
- value: '',
203
- items: [
204
- {
205
- label: localization.common.name,
206
- value: datastore.name,
207
- items: [],
208
- testId: 'view-storage-name-in-complete',
209
- iconClassName: 'vsphere-icon-datastore',
210
- },
211
- ],
212
- actions: [],
213
- },
214
- ]
215
- if (project === 'sphere') {
216
- details.push(getSelectedHosts(allHosts, hosts, localization))
217
- }
218
-
219
- return details
220
- }
221
-
222
- export const constructDataReadyViewFunc = (
223
- localization: UI_I_Localization,
224
- data: UI_I_CreateDatastoreForm,
225
- project: UI_T_Project,
226
- allHosts: UI_I_CompatibleHosts,
227
- allDatastore: any
228
- ): UI_I_DetailsItem[] => {
229
- const details = {
230
- 1: localDetailsFunc,
231
- 2: nfsDetailsFunc,
232
- 3: sambaDetailsFunc,
233
- 4: sharedStormDetailsFunc,
234
- }
235
-
236
- return details[data.type_code as 1 | 2 | 3 | 4](
237
- localization,
238
- data,
239
- project,
240
- allHosts,
241
- allDatastore
242
- )
243
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_DetailsItem } from '~/components/common/details/lib/models/interfaces'
3
+ import type { UI_T_Project } from '~/lib/models/types'
4
+ import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
5
+ import type { UI_I_CompatibleHosts } from '~/components/common/backup/storage/actions/add/steps/hostAccessibility/table/lib/models/interfaces'
6
+
7
+ const getSelectedHosts = (
8
+ allHosts: UI_I_CompatibleHosts,
9
+ selectedHosts: string[],
10
+ localization: UI_I_Localization
11
+ ) => {
12
+ const hostsData = selectedHosts
13
+ ? allHosts.items
14
+ .filter((host) => selectedHosts.includes(host.id))
15
+ .map((host) => ({
16
+ label: host.name,
17
+ iconClassName: 'vsphere-icon-host',
18
+ }))
19
+ : []
20
+
21
+ return {
22
+ label: localization.common.hostsAccessibility,
23
+ value: '',
24
+ items: [
25
+ {
26
+ label: localization.common.hosts,
27
+ value: hostsData as any,
28
+ items: [],
29
+ testId: 'view-hosts-name-in-complete',
30
+ iconClassName: 'vsphere-icon-host',
31
+ },
32
+ ],
33
+ actions: [],
34
+ }
35
+ }
36
+
37
+ const localDetailsFunc = (
38
+ localization: UI_I_Localization,
39
+ data: UI_I_CreateDatastoreForm,
40
+ project: UI_T_Project,
41
+ allHosts: UI_I_CompatibleHosts
42
+ ): UI_I_DetailsItem[] => {
43
+ const { name, hosts } = data
44
+
45
+ const details: UI_I_DetailsItem[] = [
46
+ {
47
+ label: localization.common.name,
48
+ value: '',
49
+ items: [
50
+ {
51
+ label: localization.backup.backupStorageName,
52
+ value: name,
53
+ items: [],
54
+ testId: 'view-selected-name-in-complete',
55
+ iconClassName: 'icon-backup-storage',
56
+ },
57
+ ],
58
+ actions: [],
59
+ testId: 'view-selected-name',
60
+ },
61
+ ]
62
+
63
+ if (project === 'sphere') {
64
+ details.push(getSelectedHosts(allHosts, hosts, localization))
65
+ }
66
+
67
+ return details
68
+ }
69
+ const nfsDetailsFunc = (
70
+ localization: UI_I_Localization,
71
+ data: UI_I_CreateDatastoreForm,
72
+ project: UI_T_Project,
73
+ allHosts: UI_I_CompatibleHosts
74
+ ): UI_I_DetailsItem[] => {
75
+ const { name, server, folder, version, hosts } = data
76
+ // const accessMode = readonly ? 'Read-only' : 'Read-write'
77
+
78
+ const details: UI_I_DetailsItem[] = [
79
+ {
80
+ label: localization.common.nfsVersion,
81
+ value: '',
82
+ items: [
83
+ {
84
+ label: localization.common.version,
85
+ value: version + '',
86
+ items: [],
87
+ testId: 'view-selected-nfs-version-in-complete',
88
+ },
89
+ ],
90
+ actions: [],
91
+ testId: 'view-selected-nfs-version',
92
+ },
93
+ {
94
+ label: localization.common.nameAndConfiguration,
95
+ value: '',
96
+ items: [
97
+ {
98
+ label: localization.backup.backupStorageName,
99
+ value: name,
100
+ items: [],
101
+ testId: 'view-storage-name-in-complete',
102
+ iconClassName: 'icon-backup-storage',
103
+ },
104
+ {
105
+ label: localization.common.server,
106
+ value: server,
107
+ items: [],
108
+ testId: 'view-server-name-in-complete',
109
+ iconClassName: 'icon-server',
110
+ },
111
+ {
112
+ label: localization.common.folder,
113
+ value: folder,
114
+ items: [],
115
+ testId: 'view-folder-name-in-complete',
116
+ iconClassName: 'vsphere-icon-folder',
117
+ }
118
+ ],
119
+ actions: [],
120
+ testId: 'view-selected-name-configuration',
121
+ },
122
+ ]
123
+
124
+ if (project === 'sphere') {
125
+ details.push(getSelectedHosts(allHosts, hosts, localization))
126
+ }
127
+
128
+ return details
129
+ }
130
+ const sambaDetailsFunc = (
131
+ localization: UI_I_Localization,
132
+ data: UI_I_CreateDatastoreForm,
133
+ project: UI_T_Project,
134
+ allHosts: UI_I_CompatibleHosts
135
+ ): UI_I_DetailsItem[] => {
136
+ const { name, server, folder, hosts } = data
137
+
138
+ const details: UI_I_DetailsItem[] = [
139
+ {
140
+ label: localization.common.nameAndConfiguration,
141
+ value: '',
142
+ items: [
143
+ {
144
+ label: localization.backup.backupStorageName,
145
+ value: name,
146
+ items: [],
147
+ testId: 'view-storage-name-in-complete',
148
+ iconClassName: 'icon-backup-storage',
149
+ },
150
+ {
151
+ label: localization.common.server,
152
+ value: server,
153
+ items: [],
154
+ testId: 'view-server-name-in-complete',
155
+ iconClassName: 'icon-server',
156
+ },
157
+ {
158
+ label: localization.common.folder,
159
+ value: folder,
160
+ items: [],
161
+ testId: 'view-folder-name-in-complete',
162
+ iconClassName: 'vsphere-icon-folder',
163
+ }
164
+ ],
165
+ actions: [],
166
+ testId: 'view-selected-name-configuration',
167
+ },
168
+ ]
169
+
170
+ if (project === 'sphere') {
171
+ details.push(getSelectedHosts(allHosts, hosts, localization))
172
+ }
173
+
174
+ return details
175
+ }
176
+ const sharedStormDetailsFunc = (
177
+ localization: UI_I_Localization,
178
+ data: UI_I_CreateDatastoreForm,
179
+ project: UI_T_Project,
180
+ allHosts: UI_I_CompatibleHosts,
181
+ allDatastore: any
182
+ ): UI_I_DetailsItem[] => {
183
+ const { name, hosts, storm_id } = data
184
+ const datastore = allDatastore.find(storage => storage.id === storm_id)
185
+ const details: UI_I_DetailsItem[] = [
186
+ {
187
+ label: localization.common.name,
188
+ value: '',
189
+ items: [
190
+ {
191
+ label: localization.backup.backupStorageName,
192
+ value: name,
193
+ items: [],
194
+ testId: 'view-storage-name-in-complete',
195
+ iconClassName: 'icon-backup-storage',
196
+ },
197
+ ],
198
+ actions: [],
199
+ },
200
+ {
201
+ label: localization.common.datastore,
202
+ value: '',
203
+ items: [
204
+ {
205
+ label: localization.common.name,
206
+ value: datastore.name,
207
+ items: [],
208
+ testId: 'view-storage-name-in-complete',
209
+ iconClassName: 'vsphere-icon-datastore',
210
+ },
211
+ ],
212
+ actions: [],
213
+ },
214
+ ]
215
+ if (project === 'sphere') {
216
+ details.push(getSelectedHosts(allHosts, hosts, localization))
217
+ }
218
+
219
+ return details
220
+ }
221
+
222
+ export const constructDataReadyViewFunc = (
223
+ localization: UI_I_Localization,
224
+ data: UI_I_CreateDatastoreForm,
225
+ project: UI_T_Project,
226
+ allHosts: UI_I_CompatibleHosts,
227
+ allDatastore: any
228
+ ): UI_I_DetailsItem[] => {
229
+ const details = {
230
+ 1: localDetailsFunc,
231
+ 2: nfsDetailsFunc,
232
+ 3: sambaDetailsFunc,
233
+ 4: sharedStormDetailsFunc,
234
+ }
235
+
236
+ return details[data.type_code as 1 | 2 | 3 | 4](
237
+ localization,
238
+ data,
239
+ project,
240
+ allHosts,
241
+ allDatastore
242
+ )
243
+ }
@@ -3,6 +3,8 @@
3
3
  v-if="isNewView"
4
4
  v-model="formDatastoreTypeMode"
5
5
  :options="datastoreTypeOptions"
6
+ :updater-hide-all-help-popups="props.updaterHideAllHelpPopups"
7
+ @hide-all-help-popups="emits('hide-all-help-popups')"
6
8
  />
7
9
 
8
10
  <common-backup-storage-actions-add-steps-type-mode-old
@@ -14,13 +16,17 @@
14
16
 
15
17
  <script lang="ts" setup>
16
18
  import type { UI_I_Localization } from '~/lib/models/interfaces'
17
- import type {UI_T_Project} from "~/lib/models/types";
19
+ import type { UI_T_Project } from '~/lib/models/types'
18
20
  import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
19
21
  import { datastoreTypesFunc } from '~/components/common/backup/storage/actions/add/steps/typeMode/lib/config/typeOptions'
20
22
 
21
23
  const formDatastoreTypeMode = defineModel<number>({ required: true })
22
24
  const props = defineProps<{
23
25
  project: UI_T_Project
26
+ updaterHideAllHelpPopups: number
27
+ }>()
28
+ const emits = defineEmits<{
29
+ (event: 'hide-all-help-popups'): void
24
30
  }>()
25
31
 
26
32
  const localization = computed<UI_I_Localization>(() => useLocal())