bfg-common 1.5.211 → 1.5.213

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 (92) hide show
  1. package/components/common/backup/lib/utils/getBackupOrBackupStorageId.ts +29 -0
  2. package/components/common/backup/storage/actions/add/Add.vue +36 -0
  3. package/components/common/backup/storage/actions/add/temp/Add.vue +508 -0
  4. package/components/common/backup/storage/actions/add/temp/lib/config/stepItems.ts +203 -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 +70 -0
  8. package/components/common/backup/storage/actions/add/temp/local/Local.vue +65 -0
  9. package/components/common/backup/storage/actions/add/temp/local/createName/CreateName.vue +158 -0
  10. package/components/common/backup/storage/actions/add/temp/local/createName/lib/config/defaultForm.ts +15 -0
  11. package/components/common/backup/storage/actions/add/temp/nfs/Nfs.vue +106 -0
  12. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/Accessibility.vue +104 -0
  13. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/config/tabsPannel.ts +25 -0
  14. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/interfaces.ts +9 -0
  15. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/types.ts +5 -0
  16. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/TablesView.vue +141 -0
  17. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  18. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -0
  19. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  20. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  21. package/components/common/backup/storage/actions/add/temp/nfs/configuration/Configuration.vue +469 -0
  22. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/config/defaultForm.ts +51 -0
  23. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/models/interfaces.ts +14 -0
  24. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/DeletePopover.vue +99 -0
  25. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/ServersList.vue +125 -0
  26. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/serversListConfig.ts +40 -0
  27. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/tableKeys.ts +3 -0
  28. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/interfaces.ts +13 -0
  29. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/types.ts +1 -0
  30. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  31. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  32. package/components/common/backup/storage/actions/add/temp/nfs/version/Version.vue +42 -0
  33. package/components/common/backup/storage/actions/add/temp/nfs/version/lib/config/versionOptions.ts +22 -0
  34. package/components/common/backup/storage/actions/add/temp/readyComplete/ReadyComplete.vue +85 -0
  35. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/config/propertiesDetails.ts +139 -0
  36. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/models/interfaces.ts +4 -0
  37. package/components/common/backup/storage/actions/add/temp/samba/Samba.vue +95 -0
  38. package/components/common/backup/storage/actions/add/temp/samba/accessibility/Accessibility.vue +104 -0
  39. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/config/tabsPannel.ts +25 -0
  40. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/interfaces.ts +9 -0
  41. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/types.ts +5 -0
  42. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/TablesView.vue +141 -0
  43. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  44. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -0
  45. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  46. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  47. package/components/common/backup/storage/actions/add/temp/samba/configuration/Configuration.vue +470 -0
  48. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/config/defaultForm.ts +51 -0
  49. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/models/interfaces.ts +14 -0
  50. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/DeletePopover.vue +99 -0
  51. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/ServersList.vue +124 -0
  52. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/serversListConfig.ts +40 -0
  53. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/tableKeys.ts +3 -0
  54. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/interfaces.ts +13 -0
  55. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/types.ts +1 -0
  56. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  57. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  58. package/components/common/backup/storage/actions/add/temp/sharedStorm/SharedStorm.vue +80 -0
  59. package/components/common/backup/storage/actions/add/temp/sharedStorm/createName/CreateName.vue +156 -0
  60. package/components/common/backup/storage/actions/add/temp/sharedStorm/createName/lib/config/defaultForm.ts +15 -0
  61. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/Storage.vue +71 -0
  62. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/lib/config/defaultForm.ts +15 -0
  63. package/components/common/backup/storage/actions/add/temp/types/Types.vue +78 -0
  64. package/components/common/backup/storage/actions/add/temp/types/lib/config/typeOptions.ts +52 -0
  65. package/components/common/backup/storage/actions/delete/Delete.vue +65 -0
  66. package/components/common/backup/storage/actions/delete/lib/models/interfaces.ts +5 -0
  67. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  68. package/components/common/browse/lib/models/interfaces.ts +5 -5
  69. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  70. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  71. package/components/common/diagramMain/lib/models/types.ts +21 -21
  72. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  73. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  74. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  75. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  76. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  77. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  78. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  79. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  80. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  81. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  82. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  83. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  84. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  85. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  86. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  87. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  88. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  89. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  90. package/components/common/diagramMain/port/Ports.vue +47 -47
  91. package/components/common/pages/shortcuts/block/BlockNew.vue +2 -7
  92. package/package.json +2 -2
@@ -0,0 +1,125 @@
1
+ <template>
2
+ <div class="servers-list">
3
+ <atoms-table-data-grid
4
+ v-model:selected-row="selectedDisk"
5
+ v-model:page-size="pagination.pageSize"
6
+ v-model:page="pagination.page"
7
+ type="any"
8
+ class="data-table"
9
+ test-id="servers-list-table"
10
+ :head-items="headItems"
11
+ :body-items="bodyItems"
12
+ :total-items="1"
13
+ :total-pages="1"
14
+ off-select-by-row
15
+ :loading="loading"
16
+ hide-footer
17
+ >
18
+ <template #type="{ item }">
19
+ <div class="data-table__action-icon">
20
+ <atoms-popover
21
+ test-id="servers-list"
22
+ @click="onShowTooltipForRemove(item)"
23
+ >
24
+ <template #elem>
25
+ <atoms-the-icon name="ellipsis-vertical" />
26
+ </template>
27
+ <template #content>
28
+ <common-backup-storage-actions-add-temp-nfs-configuration-servers-list-delete-popover
29
+ v-if="showTooltip && item[0].id === selectedServerForRemove"
30
+ class="data-table__popover"
31
+ @hide="showTooltip = false"
32
+ @click-item="onRemoveServerFromList(item)"
33
+ />
34
+ </template>
35
+ </atoms-popover>
36
+ </div>
37
+ </template>
38
+ </atoms-table-data-grid>
39
+ </div>
40
+ </template>
41
+
42
+ <script lang="ts" setup>
43
+ import type {
44
+ UI_I_HeadItem,
45
+ UI_I_BodyItem,
46
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
47
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
48
+ import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
49
+ import type { UI_I_DataServersListItem } from '~/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/interfaces'
50
+ import * as serversTable from '~/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/serversListConfig'
51
+
52
+ const props = defineProps<{
53
+ dataTable: UI_I_DataServersListItem[] | []
54
+ loading?: boolean
55
+ }>()
56
+ const emits = defineEmits<{
57
+ (event: 'update:data-table', value: UI_I_DataServersListItem[]): void
58
+ }>()
59
+
60
+ const localization = computed<UI_I_Localization>(() => useLocal())
61
+
62
+ const selectedDisk = ref<number | null>(null)
63
+
64
+ const pagination = ref<UI_I_Pagination>({
65
+ page: 1,
66
+ pageSize: 34,
67
+ })
68
+
69
+ // const columnKeys = ref<UI_I_ColumnKey[]>(serversTable.columnKeys(localization.value))
70
+ const headItems = computed<UI_I_HeadItem[]>(() =>
71
+ serversTable.headItems(localization.value)
72
+ )
73
+
74
+ const bodyItems = ref<UI_I_BodyItem[][]>([])
75
+ watch(
76
+ () => props.dataTable,
77
+ (newValue) => {
78
+ if (!newValue?.length) {
79
+ bodyItems.value = []
80
+ return
81
+ }
82
+
83
+ bodyItems.value = serversTable.bodyItems(newValue)
84
+ },
85
+ { deep: true, immediate: true }
86
+ )
87
+
88
+ const selectedServerForRemove = ref<number | null>(null)
89
+ const showTooltip = ref<boolean>(false)
90
+ const onShowTooltipForRemove = (server: UI_I_BodyItem[]): void => {
91
+ selectedServerForRemove.value = server[0].id
92
+ showTooltip.value = true
93
+ }
94
+ const onRemoveServerFromList = (removeItem: UI_I_BodyItem[]): void => {
95
+ const { text } = removeItem[0]
96
+
97
+ const serverList = props.dataTable.filter(
98
+ (server: UI_I_DataServersListItem) => server.server_name !== text
99
+ )
100
+ emits('update:data-table', serverList)
101
+ showTooltip.value = false
102
+ }
103
+ </script>
104
+
105
+ <style lang="scss" scoped>
106
+ .servers-list {
107
+ height: inherit;
108
+ .data-table {
109
+ height: inherit;
110
+
111
+ &__action-icon {
112
+ width: 16px;
113
+ height: 16px;
114
+ cursor: pointer;
115
+ position: relative;
116
+ fill: var(--ellipsis-vertical-icon-color);
117
+ }
118
+
119
+ :deep(.datagrid-outer-wrapper) {
120
+ height: inherit;
121
+ padding-top: 0;
122
+ }
123
+ }
124
+ }
125
+ </style>
@@ -0,0 +1,40 @@
1
+ import type {
2
+ UI_I_HeadItem,
3
+ UI_I_BodyItem,
4
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
5
+ import {
6
+ constructHeadItem,
7
+ } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
8
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
9
+ import { serversTableItemsKeys } from '~/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/tableKeys'
10
+
11
+ const getItems = (
12
+ localization: UI_I_Localization
13
+ ): [string, boolean, string, string][] => {
14
+ return [
15
+ [localization.common.serversToBeAdded, true, '96px', serversTableItemsKeys[0]],
16
+ ]
17
+ }
18
+
19
+ export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
20
+ const result: UI_I_HeadItem[] = []
21
+ getItems(localization).forEach((item) => {
22
+ const col = 'type'
23
+ result.push(constructHeadItem(col, item[0], item[3], false, item[2]))
24
+ })
25
+ return result
26
+ }
27
+
28
+ export const bodyItems = (data: any[]): UI_I_BodyItem[][] => {
29
+ const bodyItems: UI_I_BodyItem[][] = []
30
+ data.forEach((server, key) => {
31
+ bodyItems.push([
32
+ {
33
+ key: 'col0',
34
+ text: server[serversTableItemsKeys[0]],
35
+ id: key,
36
+ },
37
+ ])
38
+ })
39
+ return bodyItems
40
+ }
@@ -0,0 +1,3 @@
1
+ import type { T_ServersTableItemsTuple } from '~/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/types'
2
+
3
+ export const serversTableItemsKeys: T_ServersTableItemsTuple = ['server_name']
@@ -0,0 +1,13 @@
1
+ import type { UI_I_Validation } from '~/lib/models/plugins/validation/interfaces'
2
+
3
+ export interface UI_I_FormValidationConfiguration {
4
+ name: UI_I_Validation
5
+ folder: UI_I_Validation
6
+ server: UI_I_Validation
7
+ username: UI_I_Validation
8
+ password: UI_I_Validation
9
+ }
10
+
11
+ export interface UI_I_DataServersListItem {
12
+ server_name: string
13
+ }
@@ -0,0 +1 @@
1
+ export type T_ServersTableItemsTuple = ['server_name']
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <div class="kerberos-auth">
3
+ <atoms-alert
4
+ v-show="isShowAlert"
5
+ test-id="kerberos-authentication"
6
+ status="alert-warning"
7
+ :items="[localization.common.kerberosAuthenticationAlert]"
8
+ @remove="isShowAlert = false"
9
+ />
10
+
11
+ <div class="kerberos-auth__inner">
12
+ <div v-for="item in kerberosTypes" :key="item.value" class="radio">
13
+ <input
14
+ :id="item.label"
15
+ v-model="kerberosType"
16
+ :data-id="item.testId"
17
+ type="radio"
18
+ :value="item.value"
19
+ />
20
+ <label :for="item.label">
21
+ {{ item.label }}
22
+ </label>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script lang="ts" setup>
29
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
30
+ import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
31
+ import type { UI_T_KerberosAuthentication } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
32
+ import { kerberosOptionsFunc } from '~/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/lib/config/radioOptions'
33
+
34
+ const localization = computed<UI_I_Localization>(() => useLocal())
35
+
36
+ const kerberosType = ref<UI_T_KerberosAuthentication>('dont-use')
37
+ const isShowAlert = ref<boolean>(true)
38
+
39
+ const kerberosTypes = readonly<UI_I_RadioOption[]>(
40
+ kerberosOptionsFunc(localization.value)
41
+ )
42
+ </script>
43
+
44
+ <style lang="scss" scoped>
45
+ .kerberos-auth {
46
+ &__inner {
47
+ margin-top: 12px;
48
+ }
49
+ }
50
+
51
+ input[type='radio']:focus:checked + label::before,
52
+ input[type='radio']:focus + label::before {
53
+ box-shadow: inset 0 0 0 0.25rem #0094d2;
54
+ }
55
+ </style>
@@ -0,0 +1,27 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
3
+
4
+ export const kerberosOptionsFunc = (
5
+ localization: UI_I_Localization
6
+ ): UI_I_RadioOption[] => {
7
+ return [
8
+ {
9
+ label: localization.common.dontUseKerberosAuthentication,
10
+ value: 'dont-use',
11
+ disabled: false,
12
+ testId: 'dont-use-value',
13
+ },
14
+ {
15
+ label: localization.common.useKerberosAuthenticationKrb5,
16
+ value: 'use-only-krb5',
17
+ disabled: false,
18
+ testId: 'use-only-krb5-value',
19
+ },
20
+ {
21
+ label: localization.common.useKerberosAuthenticationIntegrity,
22
+ value: 'use-integrity',
23
+ disabled: false,
24
+ testId: 'use-integrity-value',
25
+ },
26
+ ]
27
+ }
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <section class="nfs-version">
3
+ <common-select-radio-group
4
+ v-model="selectedVersion"
5
+ :options="nfsVersion"
6
+ />
7
+ </section>
8
+ </template>
9
+
10
+ <script lang="ts" setup>
11
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
12
+ import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
13
+ import type { UI_T_NfsType } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
14
+ import { nfsVersionFunc } from '~/components/common/backup/storage/actions/add/temp/nfs/version/lib/config/versionOptions'
15
+
16
+ const props = defineProps<{
17
+ version: UI_T_NfsType
18
+ }>()
19
+ const emits = defineEmits<{
20
+ (event: 'update:version', value: UI_T_NfsType): void
21
+ }>()
22
+ const localization = computed<UI_I_Localization>(() => useLocal())
23
+
24
+ const nfsVersion = ref<UI_I_RadioOption[]>(nfsVersionFunc(localization.value))
25
+
26
+ const selectedVersion = computed<UI_T_NfsType>({
27
+ get() {
28
+ return props.version
29
+ },
30
+ set(newValue) {
31
+ emits('update:version', newValue)
32
+ },
33
+ })
34
+ </script>
35
+
36
+ <style lang="scss" scoped>
37
+ .nfs-version {
38
+ //&__desc {
39
+ // margin-left: 22px;
40
+ //}
41
+ }
42
+ </style>
@@ -0,0 +1,22 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
3
+ export const nfsVersionFunc = (
4
+ localization: UI_I_Localization
5
+ ): UI_I_RadioOption[] => {
6
+ return [
7
+ {
8
+ label: 'NFS 3',
9
+ value: 'nfs-3',
10
+ disabled: false,
11
+ description: localization.common.nfsVersionDesc1,
12
+ testId: 'nfs-3'
13
+ },
14
+ {
15
+ label: 'NFS 4.1',
16
+ value: 'nfs-4.1',
17
+ disabled: false,
18
+ description: localization.common.nfsVersionDesc2,
19
+ testId: 'nfs-4.1'
20
+ },
21
+ ]
22
+ }
@@ -0,0 +1,85 @@
1
+ <template>
2
+ <div class="ready-complete">
3
+ <div class="ready-complete__desc">{{ localization.common.readyCompleteDesc }}</div>
4
+
5
+ <common-details-list :items="properties" class="ready-complete__list list flex flex-col">
6
+ <template #default="{ item }">
7
+ <common-details-item :has-children="true" open-by-default>
8
+ <template #stackBlockKey>
9
+ <span class="list__labels">{{
10
+ localization.common.chosenDatastoreName
11
+ }}</span>
12
+ </template>
13
+
14
+ <template #stackChildren>
15
+ <template
16
+ v-for="(item2, key2) in item.items"
17
+ :key="`${item2}_${key2}`"
18
+ >
19
+ <common-details-item
20
+ :has-children="false"
21
+ class="list__default-style"
22
+ >
23
+ <template #stackBlockKey>
24
+ <div>
25
+ {{ item2.label }}
26
+ </div>
27
+ </template>
28
+ <template #stackBlockContent>
29
+ <div v-if="item2.data">
30
+ <div v-for="item3 in item2.data" :key="item3" class="flex-align-center">
31
+ <div class="vsphere-icon-host"></div>
32
+ <span>{{ item3 }}</span>
33
+ </div>
34
+ </div>
35
+ <span v-else>
36
+ {{ item2.value }}
37
+ </span>
38
+ </template>
39
+ </common-details-item>
40
+ </template>
41
+ </template>
42
+ </common-details-item>
43
+ </template>
44
+ </common-details-list>
45
+ </div>
46
+ </template>
47
+
48
+ <script lang="ts" setup>
49
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
50
+ import type { UI_I_DetailsItem } from '~/components/common/details/lib/models/interfaces'
51
+
52
+ const props = defineProps<{
53
+ dataReadyView: UI_I_DetailsItem[]
54
+ }>()
55
+ // console.log(props)
56
+
57
+ const localization = computed<UI_I_Localization>(() => useLocal())
58
+
59
+ const properties = computed<UI_I_DetailsItem[]>(() => props.dataReadyView)
60
+ </script>
61
+
62
+ <style lang="scss" scoped>
63
+ @import '~/assets/scss/common/mixins.scss';
64
+ .ready-complete {
65
+ &__list {
66
+ padding: 12px 0;
67
+ row-gap: 15px;
68
+ }
69
+ }
70
+ .list {
71
+ &__labels {
72
+ @include text($fs: 13px, $fw: 700);
73
+ }
74
+ :deep(.list__default-style) {
75
+ .stack-block {
76
+ &__label {
77
+ align-items: flex-start;
78
+ }
79
+ &-content {
80
+ white-space: pre-line;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ </style>
@@ -0,0 +1,139 @@
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_DatastoreType } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
4
+ import type { UI_I_ReadyDataForLocal } from '~/components/common/backup/storage/actions/add/temp/readyComplete/lib/models/interfaces'
5
+
6
+ const nfsDetailsFunc = (
7
+ localization: UI_I_Localization,
8
+ data: any,
9
+ isSphereWizard: boolean
10
+ ): UI_I_DetailsItem[] => {
11
+ const { name, server, folder, hosts } = data
12
+ // const accessMode = readonly ? 'Read-only' : 'Read-write'
13
+
14
+ const details: UI_I_DetailsItem[] = [
15
+ {
16
+ label: localization.common.nameAndConfiguration,
17
+ value: '',
18
+ items: [
19
+ {
20
+ label: localization.common.datastoreName,
21
+ value: name,
22
+ items: [],
23
+ },
24
+ {
25
+ label: localization.common.server,
26
+ value: server,
27
+ items: [],
28
+ },
29
+ {
30
+ label: localization.common.folder,
31
+ value: folder,
32
+ items: [],
33
+ },
34
+ // {
35
+ // label: localization.accessMode,
36
+ // value: accessMode,
37
+ // items: [],
38
+ // },
39
+ ],
40
+ actions: [],
41
+ },
42
+ ]
43
+
44
+ if (isSphereWizard) {
45
+ details.push({
46
+ label: localization.common.hostsAccessibility,
47
+ value: '',
48
+ items: [
49
+ {
50
+ label: localization.common.hosts,
51
+ value: '',
52
+ data: hosts,
53
+ items: [],
54
+ },
55
+ ],
56
+ actions: [],
57
+ })
58
+ }
59
+
60
+ return details
61
+ }
62
+
63
+ const localDetailsFunc = (
64
+ localization: UI_I_Localization,
65
+ event: UI_I_ReadyDataForLocal | string,
66
+ isSphereWizard: boolean
67
+ ): UI_I_DetailsItem[] => {
68
+ const data = [
69
+ {
70
+ label: localization.common.selectName,
71
+ value: '',
72
+ items: [
73
+ {
74
+ label: localization.common.datastoreName,
75
+ value: isSphereWizard ? event.name : event,
76
+ items: [],
77
+ },
78
+ ],
79
+ actions: [],
80
+ },
81
+ ]
82
+
83
+ if (isSphereWizard) {
84
+ data[0].items.push({
85
+ label: localization.common.host,
86
+ value: event.host,
87
+ items: [],
88
+ })
89
+ }
90
+ return data
91
+ }
92
+
93
+ const sharedStormDetailsFunc = (
94
+ localization: UI_I_Localization,
95
+ event: any | string,
96
+ ): UI_I_DetailsItem[] => {
97
+ return [
98
+ {
99
+ label: localization.common.selectName,
100
+ value: '',
101
+ items: [
102
+ {
103
+ label: localization.common.datastoreName,
104
+ value: event.name,
105
+ items: [],
106
+ },
107
+ ],
108
+ actions: [],
109
+ },
110
+ {
111
+ label: localization.common.selectStorage,
112
+ value: '',
113
+ items: [
114
+ {
115
+ label: localization.common.storageName,
116
+ value: event.storm_name,
117
+ items: [],
118
+ },
119
+ ],
120
+ actions: [],
121
+ },
122
+ ]
123
+ }
124
+
125
+ export const constructDataReadyViewFunc = <T>(
126
+ localization: UI_I_Localization,
127
+ type: UI_T_DatastoreType,
128
+ data: T,
129
+ isSphereWizard: boolean
130
+ ): UI_I_DetailsItem[] => {
131
+ const details = {
132
+ local: localDetailsFunc,
133
+ nfs: nfsDetailsFunc,
134
+ samba: nfsDetailsFunc,
135
+ 'shared-storm': sharedStormDetailsFunc,
136
+ }
137
+
138
+ return details[type](localization, data, isSphereWizard)
139
+ }
@@ -0,0 +1,4 @@
1
+ export interface UI_I_ReadyDataForLocal {
2
+ name: string
3
+ host: string
4
+ }
@@ -0,0 +1,95 @@
1
+ <template>
2
+ <div class="nfs-container flex flex-col h-full">
3
+ <span class="nfs-container__desc">{{ stepSubTitle }}</span>
4
+
5
+ <common-backup-storage-actions-add-temp-samba-configuration
6
+ v-show="props.stepPosition === 1"
7
+ :mode="props.mode"
8
+ :nfs-version="nfsVersion"
9
+ :nfs-configuration-submit="props.nfsConfigurationSubmit"
10
+ @loading="(e) => emits('loading', e)"
11
+ @next="onChangeConfigurationAndNext"
12
+ />
13
+
14
+ <common-backup-storage-actions-add-temp-samba-accessibility
15
+ v-if="showHostAccessibility"
16
+ :host-accessibility-submit="props.hostAccessibilitySubmit"
17
+ :hosts="props.hosts"
18
+ @next="onChangeAccessibilityAndNext"
19
+ />
20
+ </div>
21
+ </template>
22
+
23
+ <script lang="ts" setup>
24
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
25
+ import type {
26
+ UI_T_DatastoreType,
27
+ UI_T_NfsType,
28
+ UI_T_WizardDatastoreMode,
29
+ } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
30
+ import type { UI_I_ConfigurationSendDataNfs } from '~/components/common/backup/storage/actions/add/temp/samba/configuration/lib/models/interfaces'
31
+ import { subTitleFunc } from '~/components/common/backup/storage/actions/add/temp/lib/config/stepItems'
32
+
33
+ const props = defineProps<{
34
+ mode: UI_T_WizardDatastoreMode
35
+ stepPosition: number
36
+ datastoreType: UI_T_DatastoreType
37
+ nfsConfigurationSubmit: number
38
+ hostAccessibilitySubmit: number
39
+ hosts?: any
40
+ }>()
41
+ const emits = defineEmits<{
42
+ (event: 'loading', value: boolean): void
43
+ (event: 'submit', value: UI_I_ConfigurationSendDataNfs): void
44
+ (event: 'change-nfs-version', value: UI_T_NfsType): void
45
+ }>()
46
+
47
+ const localization = computed<UI_I_Localization>(() => useLocal())
48
+
49
+ const nfsVersion = ref<UI_T_NfsType>('nfs-4.1')
50
+
51
+ const stepSubTitle = computed<string>(() => {
52
+ const { datastoreType, stepPosition } = props
53
+ return subTitleFunc(
54
+ localization.value,
55
+ datastoreType,
56
+ stepPosition,
57
+ nfsVersion.value
58
+ )
59
+ })
60
+
61
+ // const showHostAccessibility = computed<boolean>(() => {
62
+ // return (
63
+ // (props.stepPosition === 4 && nfsVersion.value === 'nfs-4.1') ||
64
+ // (props.stepPosition === 3 && nfsVersion.value === 'nfs-3')
65
+ // )
66
+ // })
67
+ const showHostAccessibility = computed<boolean>(() => {
68
+ return props.mode === 'sphere' && props.stepPosition === 2
69
+ })
70
+
71
+ watch(nfsVersion, (newValue: UI_T_NfsType) => {
72
+ emits('change-nfs-version', newValue)
73
+ })
74
+
75
+ let sendData: any = null
76
+ const onChangeConfigurationAndNext = (
77
+ event: UI_I_ConfigurationSendDataNfs
78
+ ): void => {
79
+ sendData = {
80
+ name: event.name,
81
+ folder: event.folder,
82
+ server: event.server,
83
+ user: event.user,
84
+ password: event.password,
85
+ hosts: [],
86
+ }
87
+ emits('submit', sendData)
88
+ }
89
+ const onChangeAccessibilityAndNext = (hosts: string[]): void => {
90
+ sendData.hosts = hosts
91
+ emits('submit', sendData)
92
+ }
93
+ </script>
94
+
95
+ <style lang="scss" scoped></style>