bfg-common 1.5.217 → 1.5.218

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 (100) hide show
  1. package/components/common/backup/lib/utils/getBackupOrBackupStorageId.ts +29 -0
  2. package/components/common/backup/storage/actions/add/Add.vue +51 -0
  3. package/components/common/backup/storage/actions/add/temp/Add.vue +527 -0
  4. package/components/common/backup/storage/actions/add/temp/lib/config/stepItems.ts +236 -0
  5. package/components/common/backup/storage/actions/add/temp/lib/models/interfaces.ts +58 -0
  6. package/components/common/backup/storage/actions/add/temp/lib/models/types.ts +14 -0
  7. package/components/common/backup/storage/actions/add/temp/lib/utils.ts +71 -0
  8. package/components/common/backup/storage/actions/add/temp/local/Local.vue +83 -0
  9. package/components/common/backup/storage/actions/add/temp/local/accessibility/Accessibility.vue +104 -0
  10. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/config/tabsPannel.ts +25 -0
  11. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/models/interfaces.ts +9 -0
  12. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/models/types.ts +5 -0
  13. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/TablesView.vue +141 -0
  14. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  15. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/hostsTableItems.ts +27 -0
  16. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  17. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  18. package/components/common/backup/storage/actions/add/temp/local/createName/CreateName.vue +160 -0
  19. package/components/common/backup/storage/actions/add/temp/local/createName/lib/config/defaultForm.ts +15 -0
  20. package/components/common/backup/storage/actions/add/temp/nfs/Nfs.vue +106 -0
  21. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/Accessibility.vue +104 -0
  22. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/config/tabsPannel.ts +25 -0
  23. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/interfaces.ts +9 -0
  24. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/types.ts +5 -0
  25. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/TablesView.vue +141 -0
  26. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  27. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +27 -0
  28. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  29. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  30. package/components/common/backup/storage/actions/add/temp/nfs/configuration/Configuration.vue +469 -0
  31. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/config/defaultForm.ts +51 -0
  32. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/models/interfaces.ts +14 -0
  33. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/DeletePopover.vue +99 -0
  34. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/ServersList.vue +125 -0
  35. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/serversListConfig.ts +40 -0
  36. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/tableKeys.ts +3 -0
  37. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/interfaces.ts +13 -0
  38. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/types.ts +1 -0
  39. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  40. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  41. package/components/common/backup/storage/actions/add/temp/nfs/version/Version.vue +42 -0
  42. package/components/common/backup/storage/actions/add/temp/nfs/version/lib/config/versionOptions.ts +22 -0
  43. package/components/common/backup/storage/actions/add/temp/readyComplete/ReadyComplete.vue +85 -0
  44. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/config/propertiesDetails.ts +165 -0
  45. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/models/interfaces.ts +4 -0
  46. package/components/common/backup/storage/actions/add/temp/samba/Samba.vue +95 -0
  47. package/components/common/backup/storage/actions/add/temp/samba/accessibility/Accessibility.vue +104 -0
  48. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/config/tabsPannel.ts +25 -0
  49. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/interfaces.ts +9 -0
  50. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/types.ts +5 -0
  51. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/TablesView.vue +141 -0
  52. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  53. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -0
  54. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  55. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  56. package/components/common/backup/storage/actions/add/temp/samba/configuration/Configuration.vue +470 -0
  57. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/config/defaultForm.ts +51 -0
  58. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/models/interfaces.ts +14 -0
  59. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/DeletePopover.vue +99 -0
  60. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/ServersList.vue +124 -0
  61. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/serversListConfig.ts +40 -0
  62. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/tableKeys.ts +3 -0
  63. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/interfaces.ts +13 -0
  64. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/types.ts +1 -0
  65. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  66. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  67. package/components/common/backup/storage/actions/add/temp/sharedStorm/SharedStorm.vue +106 -0
  68. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/Storage.vue +71 -0
  69. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/lib/config/defaultForm.ts +15 -0
  70. package/components/common/backup/storage/actions/add/temp/types/Types.vue +79 -0
  71. package/components/common/backup/storage/actions/add/temp/types/lib/config/typeOptions.ts +62 -0
  72. package/components/common/backup/storage/actions/delete/Delete.vue +65 -0
  73. package/components/common/backup/storage/actions/delete/lib/models/interfaces.ts +5 -0
  74. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  75. package/components/common/browse/lib/models/interfaces.ts +5 -5
  76. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  77. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  78. package/components/common/diagramMain/lib/models/types.ts +21 -21
  79. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  80. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  81. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  82. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  83. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  84. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  85. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  86. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  87. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  88. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  89. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  90. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  91. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  92. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  93. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  94. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  95. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  96. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  97. package/components/common/diagramMain/port/Ports.vue +47 -47
  98. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +3 -3
  99. package/components/common/selectLanguage/lib/config/config.ts +6 -6
  100. package/package.json +2 -2
@@ -0,0 +1,236 @@
1
+ import type { UI_I_VerticalStepItem } from '~/components/atoms/lib/models/interfaces'
2
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
3
+ import type {
4
+ UI_T_WizardDatastoreMode,
5
+ UI_T_DatastoreType,
6
+ UI_T_NfsType,
7
+ } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
8
+
9
+ const stepFromSamba = (
10
+ localization: UI_I_Localization,
11
+ mode: UI_T_WizardDatastoreMode
12
+ ): UI_I_VerticalStepItem[] => {
13
+ const steps = [
14
+ {
15
+ text: localization.common.type,
16
+ disabled: false,
17
+ complete: false,
18
+ testId: 'type',
19
+ },
20
+ {
21
+ text: localization.common.nameAndConfiguration,
22
+ disabled: true,
23
+ complete: false,
24
+ testId: 'name-and-configuration',
25
+ },
26
+ ]
27
+
28
+ if (mode === 'sphere') {
29
+ steps.push({
30
+ text: localization.common.hostsAccessibility,
31
+ disabled: true,
32
+ complete: false,
33
+ testId: 'hosts-accessibility',
34
+ })
35
+ }
36
+
37
+ steps.push({
38
+ text: localization.common.readyComplete,
39
+ disabled: true,
40
+ complete: false,
41
+ testId: 'ready-complete',
42
+ })
43
+
44
+ return steps
45
+ }
46
+
47
+ const stepFromNfs = (
48
+ localization: UI_I_Localization,
49
+ mode: UI_T_WizardDatastoreMode
50
+ ): UI_I_VerticalStepItem[] => {
51
+ const steps = [
52
+ {
53
+ text: localization.common.type,
54
+ disabled: false,
55
+ complete: false,
56
+ testId: 'type',
57
+ },
58
+ // { text: localization.common.nfsVersion, disabled: true, complete: false,
59
+ // testId: 'nfs-version' },
60
+ {
61
+ text: localization.common.nameAndConfiguration,
62
+ disabled: true,
63
+ complete: false,
64
+ testId: 'name-and-configuration',
65
+ },
66
+ ]
67
+
68
+ if (mode === 'sphere') {
69
+ steps.push({
70
+ text: localization.common.hostsAccessibility,
71
+ disabled: true,
72
+ complete: false,
73
+ testId: 'hosts-accessibility',
74
+ })
75
+ }
76
+
77
+ steps.push({
78
+ text: localization.common.readyComplete,
79
+ disabled: true,
80
+ complete: false,
81
+ testId: 'ready-complete',
82
+ })
83
+
84
+ return steps
85
+ }
86
+
87
+ // const stemFromVvol = (localization: UI_I_Localization): UI_I_VerticalStepItem[] => {
88
+ // return [
89
+ // { text: localization.common.type, disabled: false, complete: false },
90
+ // {
91
+ // text: localization.common.nameAndContainerSelection,
92
+ // disabled: true,
93
+ // complete: false,
94
+ // },
95
+ // { text: localization.common.hostsAccessibility, disabled: true, complete: false },
96
+ // { text: localization.common.readyComplete, disabled: true, complete: false },
97
+ // ]
98
+ // }
99
+ const stemFromLocal = (
100
+ localization: UI_I_Localization,
101
+ mode: UI_T_WizardDatastoreMode
102
+ ): UI_I_VerticalStepItem[] => {
103
+ const steps = [
104
+ {
105
+ text: localization.common.type,
106
+ disabled: false,
107
+ complete: false,
108
+ testId: 'type',
109
+ },
110
+ {
111
+ // text: localization.common[
112
+ // isModeProcurator ? 'selectDatastoreName' : 'nameAndDeviceSelection'
113
+ // ],
114
+ text: localization.common.selectDatastoreName,
115
+ disabled: true,
116
+ complete: false,
117
+ testId: 'datastore-name',
118
+ },
119
+ {
120
+ text: localization.common.readyComplete,
121
+ disabled: true,
122
+ complete: false,
123
+ testId: 'ready-complete',
124
+ },
125
+ ]
126
+
127
+ if (mode === 'sphere') {
128
+ steps.splice(2, 0, {
129
+ text: localization.common.hostsAccessibility,
130
+ disabled: true,
131
+ complete: false,
132
+ testId: 'hosts-accessibility',
133
+ })
134
+ }
135
+
136
+ return steps
137
+ }
138
+ const stemFromSharedStorm = (
139
+ localization: UI_I_Localization,
140
+ mode: UI_T_WizardDatastoreMode
141
+ ): UI_I_VerticalStepItem[] => {
142
+ const steps = [
143
+ {
144
+ text: localization.common.type,
145
+ disabled: false,
146
+ complete: false,
147
+ testId: 'type',
148
+ },
149
+ {
150
+ text: localization.common.selectDatastoreName,
151
+ disabled: true,
152
+ complete: false,
153
+ testId: 'datastore-name',
154
+ },
155
+ {
156
+ text: localization.common.selectStorage,
157
+ disabled: true,
158
+ complete: false,
159
+ testId: 'datastore-storage',
160
+ },
161
+ {
162
+ text: localization.common.readyComplete,
163
+ disabled: true,
164
+ complete: false,
165
+ testId: 'ready-complete',
166
+ },
167
+ ]
168
+
169
+ if (mode === 'sphere') {
170
+ steps.splice(3, 0, {
171
+ text: localization.common.hostsAccessibility,
172
+ disabled: true,
173
+ complete: false,
174
+ testId: 'hosts-accessibility',
175
+ })
176
+ }
177
+
178
+ return steps
179
+ }
180
+
181
+ export const stepItemsFunc = (
182
+ localization: UI_I_Localization,
183
+ type: UI_T_DatastoreType,
184
+ mode: UI_T_WizardDatastoreMode
185
+ ): UI_I_VerticalStepItem[] => {
186
+ const handlers = {
187
+ samba: stepFromSamba,
188
+ nfs: stepFromNfs,
189
+ local: stemFromLocal,
190
+ 'shared-storm': stemFromSharedStorm,
191
+ }
192
+
193
+ return handlers[type](localization, mode)
194
+ }
195
+
196
+ interface SubTitles {
197
+ samba: string[]
198
+ nfs: string[]
199
+ local: string[]
200
+ 'shared-storm': string[]
201
+ }
202
+
203
+ export const subTitleFunc = (
204
+ localization: UI_I_Localization,
205
+ type: UI_T_DatastoreType,
206
+ position: number,
207
+ version?: UI_T_NfsType
208
+ ): string => {
209
+ position = position - 1
210
+
211
+ if (type === 'nfs' && version === 'nfs-3' && position === 2) {
212
+ position = position + 1
213
+ }
214
+
215
+ const descriptionForNfs: string[] = [
216
+ localization.common.selectNfsVersion,
217
+ localization.common.nameAndConfigurationDesc,
218
+ // localization.common.kerberosAuthenticationDesc.replace(
219
+ // '{0}',
220
+ // version?.toUpperCase() || ''
221
+ // ),
222
+ // localization.common.hostsAccessibilityDesc,
223
+ ]
224
+ const descriptionForSamba: string[] = [
225
+ localization.common.nameAndConfigurationDesc,
226
+ ]
227
+
228
+ const subTitles: SubTitles = {
229
+ nfs: descriptionForNfs,
230
+ samba: descriptionForSamba,
231
+ local: [],
232
+ 'shared-storm': [],
233
+ }
234
+
235
+ return subTitles[type][position]
236
+ }
@@ -0,0 +1,58 @@
1
+ import type { UI_T_NfsType } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
2
+
3
+ // TODO refactoring
4
+ export interface UI_I_NfsPoolNameForm<T = number> {
5
+ server: string
6
+ folder: string
7
+ user: string
8
+ password: string
9
+ version: T
10
+ readonly: boolean
11
+ hosts: string[]
12
+ }
13
+ export interface UI_I_CreateDatastoreBodyRequest {
14
+ name: string
15
+ pool_name: string
16
+ type_code: number
17
+ }
18
+ interface I_NfsForm extends UI_I_NfsPoolNameForm<UI_T_NfsType> {
19
+ name: string
20
+ type_code: number
21
+ }
22
+ interface I_SambaForm {
23
+ name: string
24
+ type_code: number
25
+ server: string
26
+ folder: string
27
+ user: string
28
+ password: string
29
+ readonly: boolean
30
+ hosts: string[]
31
+ }
32
+ interface I_SharedStormForm {
33
+ name: string
34
+ storm_id: string
35
+ type_code: number
36
+ }
37
+
38
+ export interface UI_I_CreateDatastoreForm {
39
+ local: {
40
+ name: string
41
+ hosts: string[]
42
+ type_code: number
43
+ }
44
+ nfs: I_NfsForm
45
+ samba: I_SambaForm
46
+ sharedStorm: I_SharedStormForm
47
+ }
48
+
49
+ export interface UI_I_CreateStorageUuid {
50
+ code: number
51
+ pool_name: string
52
+ }
53
+
54
+ export interface I_SharedStormData {
55
+ name: string
56
+ storm_id: string
57
+ storm_name: string
58
+ }
@@ -0,0 +1,14 @@
1
+ export type UI_T_DatastoreType = 'local' | 'samba' | 'nfs' | 'shared-storm'
2
+ export type UI_T_NfsType = 'nfs-3' | 'nfs-4.1'
3
+ export type UI_T_VmfsType = 'vmfs-6' | 'vmfs-5'
4
+ export type UI_T_KerberosAuthentication =
5
+ | 'dont-use'
6
+ | 'use-only-krb5'
7
+ | 'use-integrity'
8
+
9
+ export type UI_T_WizardDatastoreMode = 'procurator' | 'sphere'
10
+
11
+ export interface UI_I_DatastoreValidityName {
12
+ valid: boolean
13
+ msg: any
14
+ }
@@ -0,0 +1,71 @@
1
+ import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
2
+ import type {
3
+ UI_I_DatastoreValidityName,
4
+ UI_T_WizardDatastoreMode,
5
+ } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
6
+ // import {
7
+ // UI_I_CreateDatastoreBodyRequest,
8
+ // I_CreateStorageUuid,
9
+ // } from '~/components/common/wizards/datastore/add/lib/models/interfaces'
10
+
11
+ // type T_StoragePoolNameResult = {
12
+ // data: I_CreateStorageUuid
13
+ // msg: API_UI_I_Error
14
+ // }
15
+
16
+ // type T_NullableStoragePoolNameResult = {
17
+ // [K in keyof T_StoragePoolNameResult]: T_StoragePoolNameResult[K] | null
18
+ // }
19
+
20
+ export const checkValidityName = async (
21
+ name: string,
22
+ mode: UI_T_WizardDatastoreMode = 'procurator'
23
+ ): Promise<UI_I_DatastoreValidityName> => {
24
+ // TODO move to projects!!!
25
+
26
+ let kind = 10 // TODO move in global space
27
+ let url = `/ui/ds/validate?name=${encodeURIComponent(name)}`
28
+ if (mode === 'sphere') {
29
+ kind = 17 // TODO move in global space
30
+ url = `/ui/object/validate_name?name=${encodeURIComponent(name)}&kind=${kind}`
31
+ }
32
+ // @ts-ignore
33
+ const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
34
+ method: 'GET',
35
+ })
36
+
37
+ if (error.value && error.value.data.error_code !== 0) {
38
+ const existError = error.value.data?.error_message || error.value.data
39
+
40
+ return { valid: false, msg: existError }
41
+ }
42
+
43
+ return { valid: true, msg: null }
44
+ }
45
+
46
+ // export const getStoragePoolName = async <T>(
47
+ // url: string,
48
+ // params: T
49
+ // ): Promise<T_NullableStoragePoolNameResult> => {
50
+ // const { data, error } = await useMyFetch<I_CreateStorageUuid, API_UI_I_Error>(
51
+ // url,
52
+ // {
53
+ // method: 'POST',
54
+ // body: params,
55
+ // }
56
+ // )
57
+ //
58
+ // if (error.value) return { data: null, msg: error.value }
59
+ //
60
+ // return { data: data.value, msg: null }
61
+ // }
62
+
63
+ // export const createDatastore = async <T = UI_I_CreateDatastoreBodyRequest>(
64
+ // params: T
65
+ // ): Promise<API_UI_I_Error> => {
66
+ // const { error } = await useMyFetch<any, API_UI_I_Error>('/api/v1/pn/ds', {
67
+ // method: 'POST',
68
+ // body: params,
69
+ // })
70
+ // return error.value
71
+ // }
@@ -0,0 +1,83 @@
1
+ <template>
2
+ <div class="local-step flex flex-col h-full">
3
+ <!-- <span-->
4
+ <!-- v-if="mode === 'sphere' && props.stepPosition === 1"-->
5
+ <!-- class="vmfs-container__desc"-->
6
+ <!-- >-->
7
+ <!-- {{ localization.common.nameAndDeviceSelectionDesc }}-->
8
+ <!-- </span>-->
9
+
10
+ <common-backup-storage-actions-add-temp-local-create-name
11
+ v-show="props.stepPosition === 1"
12
+ :mode="props.mode"
13
+ :local-create-name-submit="props.localCreateNameSubmit"
14
+ test-id="local"
15
+ @loading="(e) => emits('loading', e)"
16
+ @submit="onChangeName($event)"
17
+ />
18
+
19
+ <templates-inventory-actions-backup-storage-add-temp-nfs-accessibility
20
+ v-if="mode === 'sphere' && props.stepPosition === 2"
21
+ :host-accessibility-submit="props.hostAccessibilitySubmit"
22
+ :hosts="props.hosts"
23
+ @next="onChangeAccessibilityAndNext"
24
+ />
25
+ <!-- <common-backup-storage-actions-add-temp-shared-storm-device-selection-->
26
+ <!-- v-show="mode === 'sphere' && props.stepPosition === 1"-->
27
+ <!-- v-model:lun-disk="selectedLunDisk"-->
28
+ <!-- mode="sphere"-->
29
+ <!-- :device-selection-submit="props.localCreateNameSubmit"-->
30
+ <!-- :step-position="props.stepPosition"-->
31
+ <!-- :datastore-type="props.datastoreType"-->
32
+ <!-- :datacenter-hosts="props.datacenterHosts"-->
33
+ <!-- :is-main-filter="props.isMainFilter"-->
34
+ <!-- @loading="(e) => emits('loading', e)"-->
35
+ <!-- @submit="(e) => emits('submit', e)"-->
36
+ <!-- @main-filter="emits('main-filter', $event)"-->
37
+ <!-- />-->
38
+ </div>
39
+ </template>
40
+
41
+ <script lang="ts" setup>
42
+ import type { UI_T_Project } from '~/lib/models/types'
43
+ // import type { UI_I_CreateStorageLunDiskItem } from '~/components/common/wizards/datastore/add/steps/nameAndDevice/table/lib/models/interfaces'
44
+ // import type { UI_I_SelectHostOptions } from '~/components/common/wizards/datastore/add/steps/nameAndDevice/lib/models/interfaces'
45
+ // import type { UI_T_DatastoreTypeCode } from '~/components/common/wizards/datastore/add/lib/models/types'
46
+ // import type { UI_I_Localization } from '~/lib/models/interfaces'
47
+
48
+ const props = defineProps<{
49
+ mode: UI_T_Project
50
+ hosts: any
51
+ stepPosition: number
52
+ localCreateNameSubmit: number
53
+ hostAccessibilitySubmit: number
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'loading', value: boolean): void
57
+ (event: 'submit', value: string): void
58
+ }>()
59
+
60
+ const sendData: any = {
61
+ name: '',
62
+ hosts: []
63
+ }
64
+ const onChangeName = (name: string): void => {
65
+ sendData.name = name
66
+
67
+ emits('submit', sendData)
68
+ }
69
+ const onChangeAccessibilityAndNext = (hosts: string[]): void => {
70
+ sendData.hosts = hosts
71
+ emits('submit', sendData)
72
+ }
73
+ // const localization = computed<UI_I_Localization>(() => useLocal())
74
+
75
+ // const selectedLunDisk = ref<UI_I_CreateStorageLunDiskItem[]>([])
76
+ </script>
77
+
78
+ <style lang="scss" scoped>
79
+ .local-step {
80
+ overflow-y: auto;
81
+ overflow-x: hidden;
82
+ }
83
+ </style>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div>
3
+ <atoms-alert
4
+ v-show="errors.length"
5
+ test-id="accessibility"
6
+ status="alert-danger"
7
+ :items="errors"
8
+ @remove="removeValidationErrors"
9
+ />
10
+
11
+ <div>
12
+ <atoms-tabs
13
+ v-model="activeTab"
14
+ test-id="accessibility"
15
+ :items="tabs"
16
+ size="small"
17
+ />
18
+ </div>
19
+ <div>
20
+ <templates-inventory-actions-backup-storage-add-temp-nfs-accessibility-tables-view
21
+ v-model:selected-row="selectedHosts"
22
+ :data-table="dataTable?.items || []"
23
+ :total-items="dataTable?.total_items || 0"
24
+ :total-pages="dataTable?.total_pages || 1"
25
+ :pagination="pagination"
26
+ :table-type="activeTab"
27
+ @pagination="updatePagination"
28
+ @sort="sortTable"
29
+ />
30
+ </div>
31
+ </div>
32
+ </template>
33
+
34
+ <script lang="ts" setup>
35
+ import type { UI_I_CollapseNavItem } from '~/node_modules/bfg-common/components/atoms/collapse/lib/models/interfaces'
36
+ import type { UI_I_Localization } from '~/node_modules/bfg-common/lib/models/interfaces'
37
+ import type { UI_I_Pagination } from '~/node_modules/bfg-common/lib/models/table/interfaces'
38
+ import type { T_HostsAccessibilityTab } from '~/components/templates/inventory/actions/backup/storage/add/temp/nfs/accessibility/lib/models/types'
39
+ import { hostAccessibilityTabsFunc } from '~/components/templates/inventory/actions/backup/storage/add/temp/nfs/accessibility/lib/config/tabsPannel'
40
+ // import { hostsAccessibilityTablesFunc } from '~/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/config/hostsTableItems'
41
+
42
+ const props = defineProps<{
43
+ hostAccessibilitySubmit: number
44
+ hosts?: any
45
+ }>()
46
+ const localization = computed<UI_I_Localization>(() => useLocal())
47
+ const emits = defineEmits<{
48
+ (event: 'next', value: string[]): void
49
+ }>()
50
+
51
+ const activeTab = ref<T_HostsAccessibilityTab>('compatible-hosts')
52
+ const tabs = computed<UI_I_CollapseNavItem[]>(() =>
53
+ hostAccessibilityTabsFunc(localization.value, [
54
+ (props.hosts?.items?.length || 0) + '',
55
+ '0',
56
+ ])
57
+ )
58
+
59
+ // const dataTable = computed(() => hostsAccessibilityTablesFunc(activeTab.value))
60
+ // TODO refactoring
61
+ const dataTable = computed<any>(() => props.hosts)
62
+
63
+ const pagination = ref<UI_I_Pagination>({
64
+ page: 1,
65
+ pageSize: 35,
66
+ })
67
+ const sort = ref<string | null>(null)
68
+
69
+ const selectedHosts = ref<string[]>([])
70
+
71
+ const updatePagination = (event: UI_I_Pagination): void => {
72
+ pagination.value = event
73
+ }
74
+ const sortTable = (event: string): void => {
75
+ sort.value = event
76
+ }
77
+
78
+ const errors = ref<string[]>([])
79
+
80
+ const showValidationErrors = (text: string): void => {
81
+ errors.value = [text]
82
+ }
83
+ const removeValidationErrors = (): void => {
84
+ errors.value = []
85
+ }
86
+ const submit = async (): Promise<void> => {
87
+ if (!selectedHosts.value.length) {
88
+ const text = localization.value.common.selectLeastEntityContinue
89
+ showValidationErrors(text)
90
+ return
91
+ }
92
+
93
+ removeValidationErrors()
94
+ emits('next', selectedHosts.value)
95
+ }
96
+ watch(
97
+ () => props.hostAccessibilitySubmit,
98
+ () => {
99
+ submit()
100
+ }
101
+ )
102
+ </script>
103
+
104
+ <style lang="scss" scoped></style>
@@ -0,0 +1,25 @@
1
+ import type { UI_I_Localization } from '~/node_modules/bfg-common/lib/models/interfaces'
2
+ import type { UI_I_CollapseNavItem } from '~/node_modules/bfg-common/components/atoms/collapse/lib/models/interfaces'
3
+
4
+ export const hostAccessibilityTabsFunc = (
5
+ localization: UI_I_Localization,
6
+ hosts: string[]
7
+ ): UI_I_CollapseNavItem[] => {
8
+ const [compatibleHosts, incompatibleHost] = hosts
9
+
10
+ return [
11
+ {
12
+ text: localization.common.compatibleHosts.replace('{0}', compatibleHosts || ''),
13
+ value: 'compatible-hosts',
14
+ disabled: false,
15
+ },
16
+ {
17
+ text: localization.common.incompatibleHosts.replace(
18
+ '{0}',
19
+ incompatibleHost || ''
20
+ ),
21
+ value: 'incompatible-hosts',
22
+ disabled: true,
23
+ },
24
+ ]
25
+ }
@@ -0,0 +1,9 @@
1
+ export interface I_CompatibleHostsTable {
2
+ id: number
3
+ host: string
4
+ cluster: string
5
+ }
6
+
7
+ export interface I_IncompatibleHostsTable extends I_CompatibleHostsTable {
8
+ host_incompatibility_reason: string
9
+ }
@@ -0,0 +1,5 @@
1
+ export type T_HostsAccessibilityTab = 'compatible-hosts' | 'incompatible-hosts'
2
+
3
+ export type T_CompatibleHostsTableKeys = 'name' | 'cluster'
4
+
5
+ export type T_IncompatibleHostsTableKeys = 'name' | 'cluster' | 'host_incompatibility_reason'