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,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
+ item.label
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,165 @@
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
+ value: event.name || event,
77
+ items: [],
78
+ },
79
+ ],
80
+ actions: [],
81
+ },
82
+ ]
83
+
84
+ if (isSphereWizard) {
85
+ data.push({
86
+ label: localization.common.hostsAccessibility,
87
+ value: '',
88
+ items: [
89
+ {
90
+ label: localization.common.hosts,
91
+ value: '',
92
+ data: event.hosts,
93
+ items: [],
94
+ },
95
+ ],
96
+ actions: [],
97
+ })
98
+ }
99
+ return data
100
+ }
101
+
102
+ const sharedStormDetailsFunc = (
103
+ localization: UI_I_Localization,
104
+ event: any | string,
105
+ isSphereWizard: boolean
106
+ ): UI_I_DetailsItem[] => {
107
+ const details: UI_I_DetailsItem[] = [
108
+ {
109
+ label: localization.common.selectName,
110
+ value: '',
111
+ items: [
112
+ {
113
+ label: localization.common.datastoreName,
114
+ value: event.name,
115
+ items: [],
116
+ },
117
+ ],
118
+ actions: [],
119
+ },
120
+ {
121
+ label: localization.common.selectStorage,
122
+ value: '',
123
+ items: [
124
+ {
125
+ label: localization.datastoreWizard.storageName,
126
+ value: event.storm_name,
127
+ items: [],
128
+ },
129
+ ],
130
+ actions: [],
131
+ },
132
+ ]
133
+ if (isSphereWizard) {
134
+ details.push({
135
+ label: localization.common.hostsAccessibility,
136
+ value: '',
137
+ items: [
138
+ {
139
+ label: localization.common.hosts,
140
+ value: '',
141
+ data: event.hosts,
142
+ items: [],
143
+ },
144
+ ],
145
+ actions: [],
146
+ })
147
+ }
148
+ return details
149
+ }
150
+
151
+ export const constructDataReadyViewFunc = <T>(
152
+ localization: UI_I_Localization,
153
+ type: UI_T_DatastoreType,
154
+ data: T,
155
+ isSphereWizard: boolean
156
+ ): UI_I_DetailsItem[] => {
157
+ const details = {
158
+ local: localDetailsFunc,
159
+ nfs: nfsDetailsFunc,
160
+ samba: nfsDetailsFunc,
161
+ 'shared-storm': sharedStormDetailsFunc,
162
+ }
163
+
164
+ return details[type](localization, data, isSphereWizard)
165
+ }
@@ -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>