bfg-common 1.5.225 → 1.5.227

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 (104) hide show
  1. package/assets/localization/local_be.json +15 -1
  2. package/assets/localization/local_en.json +17 -3
  3. package/assets/localization/local_hy.json +15 -1
  4. package/assets/localization/local_kk.json +15 -1
  5. package/assets/localization/local_ru.json +15 -1
  6. package/assets/localization/local_zh.json +15 -1
  7. package/components/atoms/table/info/Info.vue +4 -0
  8. package/components/common/backup/storage/actions/add/Add.vue +36 -22
  9. package/components/common/backup/storage/actions/add/New.vue +2 -50
  10. package/components/common/backup/storage/actions/add/Old.vue +24 -81
  11. package/components/common/backup/storage/actions/add/lib/config/steps.ts +9 -9
  12. package/components/common/backup/storage/actions/add/lib/models/interfaces.ts +1 -0
  13. package/components/common/backup/storage/actions/add/lib/utils.ts +1 -34
  14. package/components/common/backup/storage/actions/add/lib/validations.ts +70 -14
  15. package/components/common/backup/storage/actions/add/steps/common/tooltipInfo/TooltipInfo.vue +94 -0
  16. package/components/common/backup/storage/actions/add/steps/name/New.vue +4 -4
  17. package/components/common/backup/storage/actions/add/steps/name/Old.vue +9 -28
  18. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  19. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -279
  20. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureOld.vue +13 -10
  21. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/lib/models/interfaces.ts +2 -0
  22. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/lib/models/types.ts +1 -0
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +6 -5
  24. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyCompleteOld.vue +0 -11
  25. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +36 -100
  26. package/components/common/backup/storage/actions/add/steps/typeMode/TypeMode.vue +0 -3
  27. package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeNew.vue +0 -3
  28. package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeOld.vue +0 -5
  29. package/components/common/pages/scheduledTasks/modals/common/frequency/Frequency.vue +1 -0
  30. package/components/common/pages/scheduledTasks/modals/common/frequency/end/End.vue +9 -1
  31. package/components/common/pages/scheduledTasks/modals/common/frequency/lib/utils.ts +24 -7
  32. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +2 -1
  33. package/lib/models/interfaces.ts +3 -0
  34. package/package.json +2 -2
  35. package/components/common/backup/storage/actions/add/lib/models/enums.ts +0 -5
  36. package/components/common/backup/storage/actions/add/temp/Add.vue +0 -527
  37. package/components/common/backup/storage/actions/add/temp/lib/config/stepItems.ts +0 -236
  38. package/components/common/backup/storage/actions/add/temp/lib/models/interfaces.ts +0 -58
  39. package/components/common/backup/storage/actions/add/temp/lib/models/types.ts +0 -14
  40. package/components/common/backup/storage/actions/add/temp/lib/utils.ts +0 -71
  41. package/components/common/backup/storage/actions/add/temp/local/Local.vue +0 -83
  42. package/components/common/backup/storage/actions/add/temp/local/accessibility/Accessibility.vue +0 -104
  43. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/config/tabsPannel.ts +0 -25
  44. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/models/interfaces.ts +0 -9
  45. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/models/types.ts +0 -5
  46. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/TablesView.vue +0 -141
  47. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/compatibleTable.ts +0 -62
  48. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/hostsTableItems.ts +0 -27
  49. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/incompatibleTable.ts +0 -68
  50. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/tableKeys.ts +0 -15
  51. package/components/common/backup/storage/actions/add/temp/local/createName/CreateName.vue +0 -160
  52. package/components/common/backup/storage/actions/add/temp/local/createName/lib/config/defaultForm.ts +0 -15
  53. package/components/common/backup/storage/actions/add/temp/nfs/Nfs.vue +0 -106
  54. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/Accessibility.vue +0 -104
  55. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/config/tabsPannel.ts +0 -25
  56. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/interfaces.ts +0 -9
  57. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/types.ts +0 -5
  58. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/TablesView.vue +0 -141
  59. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +0 -62
  60. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +0 -27
  61. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +0 -68
  62. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/tableKeys.ts +0 -15
  63. package/components/common/backup/storage/actions/add/temp/nfs/configuration/Configuration.vue +0 -469
  64. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/config/defaultForm.ts +0 -51
  65. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/models/interfaces.ts +0 -14
  66. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/DeletePopover.vue +0 -99
  67. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/ServersList.vue +0 -125
  68. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/serversListConfig.ts +0 -40
  69. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/tableKeys.ts +0 -3
  70. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/interfaces.ts +0 -13
  71. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/types.ts +0 -1
  72. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/KerberosAuthentication.vue +0 -55
  73. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/lib/config/radioOptions.ts +0 -27
  74. package/components/common/backup/storage/actions/add/temp/nfs/version/Version.vue +0 -42
  75. package/components/common/backup/storage/actions/add/temp/nfs/version/lib/config/versionOptions.ts +0 -22
  76. package/components/common/backup/storage/actions/add/temp/readyComplete/ReadyComplete.vue +0 -85
  77. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/config/propertiesDetails.ts +0 -165
  78. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/models/interfaces.ts +0 -4
  79. package/components/common/backup/storage/actions/add/temp/samba/Samba.vue +0 -95
  80. package/components/common/backup/storage/actions/add/temp/samba/accessibility/Accessibility.vue +0 -104
  81. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/config/tabsPannel.ts +0 -25
  82. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/interfaces.ts +0 -9
  83. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/types.ts +0 -5
  84. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/TablesView.vue +0 -141
  85. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/compatibleTable.ts +0 -62
  86. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/hostsTableItems.ts +0 -53
  87. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/incompatibleTable.ts +0 -68
  88. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/tableKeys.ts +0 -15
  89. package/components/common/backup/storage/actions/add/temp/samba/configuration/Configuration.vue +0 -470
  90. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/config/defaultForm.ts +0 -51
  91. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/models/interfaces.ts +0 -14
  92. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/DeletePopover.vue +0 -99
  93. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/ServersList.vue +0 -124
  94. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/serversListConfig.ts +0 -40
  95. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/tableKeys.ts +0 -3
  96. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/interfaces.ts +0 -13
  97. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/types.ts +0 -1
  98. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/KerberosAuthentication.vue +0 -55
  99. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/lib/config/radioOptions.ts +0 -27
  100. package/components/common/backup/storage/actions/add/temp/sharedStorm/SharedStorm.vue +0 -106
  101. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/Storage.vue +0 -71
  102. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/lib/config/defaultForm.ts +0 -15
  103. package/components/common/backup/storage/actions/add/temp/types/Types.vue +0 -79
  104. package/components/common/backup/storage/actions/add/temp/types/lib/config/typeOptions.ts +0 -62
@@ -1,279 +1,294 @@
1
- <template>
2
- <div class="basics-step">
3
- <div class="basics-step-row">
4
- <div class="basics-step-row-title">
5
- <span class="basics-step-row-title-text">
6
- {{ localization.common.name }}
7
- </span>
8
- </div>
9
- <div class="basics-step-row-content">
10
- <ui-input
11
- id="configuration-name-input"
12
- v-model="formModelLocal.name"
13
- test-id="configuration-name-input"
14
- is-focused
15
- :placeholder="localization.common.name"
16
- :error="nameErrorText"
17
- @blur="initValidation(true, ['name'])"
18
- @input="initValidation(false, ['name'])"
19
- />
20
- </div>
21
- </div>
22
-
23
- <div class="basics-step-line"></div>
24
-
25
- <div class="basics-step-row">
26
- <div class="basics-step-row-title">
27
- <span class="basics-step-row-title-text">
28
- {{ localization.common.folder }}
29
- </span>
30
- <common-backup-storage-actions-add-steps-common-tooltip-info
31
- :id="'option.testId'"
32
- :description="'Specify the folder path - for example, /vols/vol0/datastore-001'"
33
- />
34
- </div>
35
- <div class="basics-step-row-content">
36
- <ui-input
37
- id="configuration-folder-input"
38
- v-model="formModelLocal.folder"
39
- test-id="configuration-folder-input"
40
- placeholder="E.g: /vols/vol0/datastore-001"
41
- :error="folderErrorText"
42
- @blur="initValidation(true, ['folder'])"
43
- @input="initValidation(false, ['folder'])"
44
- />
45
- </div>
46
- </div>
47
-
48
- <div class="basics-step-line"></div>
49
-
50
- <div class="basics-step-row">
51
- <div class="basics-step-row-title">
52
- <span class="basics-step-row-title-text">
53
- {{ localization.common.server }}
54
- </span>
55
- <common-backup-storage-actions-add-steps-common-tooltip-info
56
- :id="'option.testIdserver'"
57
- :description="'Specify the server address - for example, nas, nas.it.com or 192.168.0.1.'"
58
- />
59
- </div>
60
- <div class="basics-step-row-content">
61
- <ui-input
62
- id="configuration-server-input"
63
- v-model="formModelLocal.server"
64
- test-id="configuration-server-input"
65
- placeholder="E.g: nas, nas.it.com or 192.168.0.1"
66
- :error="serverErrorText"
67
- @blur="initValidation(true, ['server'])"
68
- @input="initValidation(false, ['server'])"
69
- />
70
- </div>
71
- </div>
72
-
73
- <div class="basics-step-line"></div>
74
-
75
- <div class="basics-step-row">
76
- <div class="basics-step-row-title">
77
- <span class="basics-step-row-title-text">
78
- {{ localization.auth.username }}
79
- </span>
80
- </div>
81
- <div class="basics-step-row-content">
82
- <ui-input
83
- id="configuration-username-input"
84
- v-model="formModelLocal.username"
85
- test-id="configuration-username-input"
86
- :placeholder="localization.auth.username"
87
- :error="usernameErrorText"
88
- @blur="initValidation(true, ['username'])"
89
- @input="initValidation(false, ['username'])"
90
- />
91
- </div>
92
- </div>
93
-
94
- <div class="basics-step-line"></div>
95
-
96
- <div class="basics-step-row">
97
- <div class="basics-step-row-title">
98
- <span class="basics-step-row-title-text">
99
- {{ localization.auth.password }}
100
- </span>
101
- </div>
102
- <div class="basics-step-row-content">
103
- <ui-input
104
- id="configuration-password-input"
105
- v-model="formModelLocal.password"
106
- type="password"
107
- test-id="configuration-password-input"
108
- :placeholder="localization.auth.password"
109
- :error="passwordErrorText"
110
- @blur="initValidation(true, ['password'])"
111
- @input="initValidation(false, ['password'])"
112
- />
113
- </div>
114
- </div>
115
- </div>
116
- </template>
117
-
118
- <script setup lang="ts">
119
- import type { UI_I_Localization } from '~/lib/models/interfaces'
120
- import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
121
- import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
122
-
123
- const formModelLocal = defineModel<UI_I_CreateDatastoreForm>({ required: true })
124
- // const isShowAlertInfo = defineModel<boolean>('alertInfo', { required: true })
125
-
126
- const props = defineProps<{
127
- messagesFields: UI_I_WizardStep['fields']
128
- }>()
129
- const emits = defineEmits<{
130
- (event: 'remove-errors'): void
131
- }>()
132
-
133
- const localization = computed<UI_I_Localization>(() => useLocal())
134
-
135
- const initValidationFields = ref<UI_I_InitialValidationFields>({
136
- name: false,
137
- folder: false,
138
- server: false,
139
- username: false,
140
- })
141
- const initValidation = (onlyBlur = false, types: string[]): void => {
142
- onlyBlur && types.forEach((type) => (initValidationFields.value[type] = true))
143
- }
144
-
145
- /* Validation error text for Name input field */
146
- const nameErrorText = computed<string>(() => {
147
- if (props.messagesFields?.name?.field && !formModelLocal.value.name) {
148
- return props.messagesFields.name.field
149
- }
150
-
151
- if (!initValidationFields.value.name) return ''
152
- return !formModelLocal.value.name
153
- ? localization.value.common.fieldRequired
154
- : ''
155
- })
156
-
157
- /* Validation error text for Folder input field */
158
- const folderErrorText = computed<string>(() => {
159
- if (props.messagesFields.folder?.field && !formModelLocal.value.folder) {
160
- return props.messagesFields.folder.field
161
- }
162
-
163
- if (!initValidationFields.value.folder) return ''
164
- return !formModelLocal.value.folder
165
- ? localization.value.common.fieldRequired
166
- : ''
167
- })
168
-
169
- /* Validation error text for Server input field */
170
- const serverErrorText = computed<string>(() => {
171
- if (props.messagesFields.server?.field && !formModelLocal.value.server) {
172
- return props.messagesFields.server.field
173
- }
174
-
175
- if (!initValidationFields.value.server) return ''
176
- return !formModelLocal.value.server
177
- ? localization.value.common.fieldRequired
178
- : ''
179
- })
180
-
181
- /* Validation error text for Username input field */
182
- const usernameErrorText = computed<string>(() => {
183
- if (props.messagesFields.username?.field && !formModelLocal.value.username) {
184
- return props.messagesFields.username.field
185
- }
186
-
187
- if (!initValidationFields.value.username) return ''
188
- return !formModelLocal.value.username
189
- ? localization.value.common.fieldRequired
190
- : ''
191
- })
192
-
193
- /* Validation error text for Password input field */
194
- const passwordErrorText = computed<string>(() => {
195
- if (props.messagesFields.password?.field && !formModelLocal.value.password) {
196
- return props.messagesFields.password.field
197
- }
198
-
199
- if (!initValidationFields.value.password) return ''
200
- return !formModelLocal.value.password
201
- ? localization.value.common.fieldRequired
202
- : ''
203
- })
204
- </script>
205
-
206
- <style scoped lang="scss">
207
- .basics-step {
208
- padding: 16px 0 16px;
209
-
210
- &-row {
211
- min-height: 36px;
212
- width: 100%;
213
- display: flex;
214
- column-gap: 16px;
215
- align-items: center;
216
-
217
- &-title {
218
- padding-top: 8px;
219
- max-width: 240px;
220
- width: 100%;
221
- display: flex;
222
- align-items: center;
223
- column-gap: 8px;
224
- font-weight: 400;
225
- font-size: 13px;
226
- line-height: 20px;
227
- letter-spacing: 0;
228
- vertical-align: middle;
229
- align-self: flex-start;
230
- color: var(--wizard-content-title);
231
- white-space: nowrap;
232
- text-overflow: ellipsis;
233
- overflow: hidden;
234
-
235
- &-text {
236
- display: block;
237
- white-space: nowrap;
238
- text-overflow: ellipsis;
239
- overflow: hidden;
240
- }
241
- }
242
-
243
- &-content {
244
- max-width: 480px;
245
- width: 100%;
246
- font-weight: 400;
247
- font-size: 13px;
248
- line-height: 20px;
249
- letter-spacing: 0;
250
- vertical-align: middle;
251
- color: var(--wizard-content-value);
252
-
253
- &-text {
254
- display: flex;
255
- column-gap: 8px;
256
- align-items: center;
257
-
258
- &-icon {
259
- width: 20px;
260
- min-width: 20px;
261
- height: 20px;
262
- min-height: 20px;
263
- }
264
- }
265
-
266
- &-switch-container {
267
- width: fit-content;
268
- }
269
- }
270
- }
271
-
272
- &-line {
273
- height: 0;
274
- width: 100%;
275
- border-bottom: 1px solid var(--wizard-content-line);
276
- margin: 16px 0;
277
- }
278
- }
279
- </style>
1
+ <template>
2
+ <div class="basics-step">
3
+ <ui-alert
4
+ v-show="isShowAlertInfo"
5
+ test-id="configure-information-alert"
6
+ :messages="[localization.common.nameAndConfigurationAlertInfo]"
7
+ type="info"
8
+ class="mb-4"
9
+ @remove="isShowAlertInfo = false"
10
+ />
11
+
12
+ <div class="basics-step-row">
13
+ <div class="basics-step-row-title">
14
+ <span class="basics-step-row-title-text">
15
+ {{ localization.common.name }}
16
+ </span>
17
+ </div>
18
+ <div class="basics-step-row-content">
19
+ <ui-input
20
+ id="configuration-name-input"
21
+ v-model="formModelLocal.name"
22
+ test-id="configuration-name-input"
23
+ is-focused
24
+ :placeholder="localization.common.name"
25
+ :error="nameErrorText"
26
+ @blur="initValidation(true, ['name'])"
27
+ @input="initValidation(false, ['name'])"
28
+ />
29
+ </div>
30
+ </div>
31
+
32
+ <div class="basics-step-line"></div>
33
+
34
+ <div class="basics-step-row">
35
+ <div class="basics-step-row-title">
36
+ <span class="basics-step-row-title-text">
37
+ {{ localization.common.folder }}
38
+ </span>
39
+ <common-backup-storage-actions-add-steps-common-tooltip-info
40
+ :id="'option.testId'"
41
+ :description="'Specify the folder path - for example, /vols/vol0/datastore-001'"
42
+ />
43
+ </div>
44
+ <div class="basics-step-row-content">
45
+ <ui-input
46
+ id="configuration-folder-input"
47
+ v-model="formModelLocal.folder"
48
+ test-id="configuration-folder-input"
49
+ placeholder="E.g: /vols/vol0/datastore-001"
50
+ :error="folderErrorText"
51
+ @blur="initValidation(true, ['folder'])"
52
+ @input="initValidation(false, ['folder'])"
53
+ />
54
+ </div>
55
+ </div>
56
+
57
+ <div class="basics-step-line"></div>
58
+
59
+ <div class="basics-step-row">
60
+ <div class="basics-step-row-title">
61
+ <span class="basics-step-row-title-text">
62
+ {{ localization.common.server }}
63
+ </span>
64
+ <common-backup-storage-actions-add-steps-common-tooltip-info
65
+ :id="'option.testIdserver'"
66
+ :description="'Specify the server address - for example, nas, nas.it.com or 192.168.0.1.'"
67
+ />
68
+ </div>
69
+ <div class="basics-step-row-content">
70
+ <ui-input
71
+ id="configuration-server-input"
72
+ v-model="formModelLocal.server"
73
+ test-id="configuration-server-input"
74
+ placeholder="E.g: nas, nas.it.com or 192.168.0.1"
75
+ :error="serverErrorText"
76
+ @blur="initValidation(true, ['server'])"
77
+ @input="initValidation(false, ['server'])"
78
+ />
79
+ </div>
80
+ </div>
81
+
82
+ <div class="basics-step-line"></div>
83
+
84
+ <div class="basics-step-row">
85
+ <div class="basics-step-row-title">
86
+ <span class="basics-step-row-title-text">
87
+ {{ localization.auth.username }}
88
+ </span>
89
+ </div>
90
+ <div class="basics-step-row-content">
91
+ <ui-input
92
+ id="configuration-username-input"
93
+ v-model="formModelLocal.user"
94
+ test-id="configuration-username-input"
95
+ :placeholder="localization.auth.username"
96
+ :error="usernameErrorText"
97
+ @blur="initValidation(true, ['user'])"
98
+ @input="initValidation(false, ['user'])"
99
+ />
100
+ </div>
101
+ </div>
102
+
103
+ <div class="basics-step-line"></div>
104
+
105
+ <div class="basics-step-row">
106
+ <div class="basics-step-row-title">
107
+ <span class="basics-step-row-title-text">
108
+ {{ localization.auth.password }}
109
+ </span>
110
+ </div>
111
+ <div class="basics-step-row-content">
112
+ <ui-input
113
+ id="configuration-password-input"
114
+ v-model="formModelLocal.password"
115
+ type="password"
116
+ test-id="configuration-password-input"
117
+ :placeholder="localization.auth.password"
118
+ :error="passwordErrorText"
119
+ @blur="initValidation(true, ['password'])"
120
+ @input="initValidation(false, ['password'])"
121
+ />
122
+ </div>
123
+ </div>
124
+ </div>
125
+ </template>
126
+
127
+ <script setup lang="ts">
128
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
129
+ import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
130
+ import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
131
+ import type { UI_I_InitialValidationFields } from '~/components/common/backup/storage/actions/add/steps/nameAndConfigure/lib/models/interfaces'
132
+ import type { UI_T_InitialValidationFields } from '~/components/common/backup/storage/actions/add/steps/nameAndConfigure/lib/models/types'
133
+
134
+ const formModelLocal = defineModel<UI_I_CreateDatastoreForm>({ required: true })
135
+ const isShowAlertInfo = defineModel<boolean>('alertInfo', { required: true })
136
+
137
+ const props = defineProps<{
138
+ messagesFields: UI_I_WizardStep['fields']
139
+ }>()
140
+ const emits = defineEmits<{
141
+ (event: 'remove-errors'): void
142
+ }>()
143
+
144
+ const localization = computed<UI_I_Localization>(() => useLocal())
145
+
146
+ const initValidationFields = ref<UI_I_InitialValidationFields>({
147
+ name: false,
148
+ folder: false,
149
+ server: false,
150
+ user: false,
151
+ password: false,
152
+ })
153
+ const initValidation = (
154
+ onlyBlur = false,
155
+ types: UI_T_InitialValidationFields[]
156
+ ): void => {
157
+ onlyBlur && types.forEach((type) => (initValidationFields.value[type] = true))
158
+ }
159
+
160
+ /* Validation error text for Name input field */
161
+ const nameErrorText = computed<string>(() => {
162
+ if (props.messagesFields?.name?.field && !formModelLocal.value.name) {
163
+ return props.messagesFields.name.field
164
+ }
165
+
166
+ if (!initValidationFields.value.name) return ''
167
+ return !formModelLocal.value.name
168
+ ? localization.value.common.fieldRequired
169
+ : ''
170
+ })
171
+
172
+ /* Validation error text for Folder input field */
173
+ const folderErrorText = computed<string>(() => {
174
+ if (props.messagesFields.folder?.field && !formModelLocal.value.folder) {
175
+ return props.messagesFields.folder.field
176
+ }
177
+
178
+ if (!initValidationFields.value.folder) return ''
179
+ return !formModelLocal.value.folder
180
+ ? localization.value.common.fieldRequired
181
+ : ''
182
+ })
183
+
184
+ /* Validation error text for Server input field */
185
+ const serverErrorText = computed<string>(() => {
186
+ if (props.messagesFields.server?.field && !formModelLocal.value.server) {
187
+ return props.messagesFields.server.field
188
+ }
189
+
190
+ if (!initValidationFields.value.server) return ''
191
+ return !formModelLocal.value.server
192
+ ? localization.value.common.fieldRequired
193
+ : ''
194
+ })
195
+
196
+ /* Validation error text for Username input field */
197
+ const usernameErrorText = computed<string>(() => {
198
+ if (props.messagesFields.user?.field && !formModelLocal.value.user) {
199
+ return props.messagesFields.user.field
200
+ }
201
+
202
+ if (!initValidationFields.value.user) return ''
203
+ return !formModelLocal.value.user
204
+ ? localization.value.common.fieldRequired
205
+ : ''
206
+ })
207
+
208
+ /* Validation error text for Password input field */
209
+ const passwordErrorText = computed<string>(() => {
210
+ if (props.messagesFields.password?.field && !formModelLocal.value.password) {
211
+ return props.messagesFields.password.field
212
+ }
213
+
214
+ if (!initValidationFields.value.password) return ''
215
+ return !formModelLocal.value.password
216
+ ? localization.value.common.fieldRequired
217
+ : ''
218
+ })
219
+ </script>
220
+
221
+ <style scoped lang="scss">
222
+ .basics-step {
223
+ padding: 16px 0 16px;
224
+
225
+ &-row {
226
+ min-height: 36px;
227
+ width: 100%;
228
+ display: flex;
229
+ column-gap: 16px;
230
+ align-items: center;
231
+
232
+ &-title {
233
+ padding-top: 8px;
234
+ max-width: 240px;
235
+ width: 100%;
236
+ display: flex;
237
+ align-items: center;
238
+ column-gap: 8px;
239
+ font-weight: 400;
240
+ font-size: 13px;
241
+ line-height: 20px;
242
+ letter-spacing: 0;
243
+ vertical-align: middle;
244
+ align-self: flex-start;
245
+ color: var(--wizard-content-title);
246
+ white-space: nowrap;
247
+ text-overflow: ellipsis;
248
+ overflow: hidden;
249
+
250
+ &-text {
251
+ display: block;
252
+ white-space: nowrap;
253
+ text-overflow: ellipsis;
254
+ overflow: hidden;
255
+ }
256
+ }
257
+
258
+ &-content {
259
+ max-width: 480px;
260
+ width: 100%;
261
+ font-weight: 400;
262
+ font-size: 13px;
263
+ line-height: 20px;
264
+ letter-spacing: 0;
265
+ vertical-align: middle;
266
+ color: var(--wizard-content-value);
267
+
268
+ &-text {
269
+ display: flex;
270
+ column-gap: 8px;
271
+ align-items: center;
272
+
273
+ &-icon {
274
+ width: 20px;
275
+ min-width: 20px;
276
+ height: 20px;
277
+ min-height: 20px;
278
+ }
279
+ }
280
+
281
+ &-switch-container {
282
+ width: fit-content;
283
+ }
284
+ }
285
+ }
286
+
287
+ &-line {
288
+ height: 0;
289
+ width: 100%;
290
+ border-bottom: 1px solid var(--wizard-content-line);
291
+ margin: 16px 0;
292
+ }
293
+ }
294
+ </style>
@@ -123,12 +123,12 @@
123
123
  <div class="flex-align-center input-action-wrapper">
124
124
  <input
125
125
  id="configuration-username-input"
126
- v-model="formModelLocal.username"
126
+ v-model="formModelLocal.user"
127
127
  data-id="configuration-username-input"
128
128
  type="text"
129
129
  class="clr-input"
130
- @blur="initValidation(true, ['username'])"
131
- @input="initValidation(false, ['username'])"
130
+ @blur="initValidation(true, ['user'])"
131
+ @input="initValidation(false, ['user'])"
132
132
  />
133
133
  <atoms-the-icon class="error-icon" name="info-circle" />
134
134
  </div>
@@ -156,7 +156,7 @@
156
156
  id="configuration-password-input"
157
157
  v-model="formModelLocal.password"
158
158
  data-id="configuration-password-input"
159
- type="text"
159
+ type="password"
160
160
  class="clr-input"
161
161
  @blur="initValidation(true, ['password'])"
162
162
  @input="initValidation(false, ['password'])"
@@ -181,6 +181,9 @@ import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/inter
181
181
  import type { UI_I_InitialValidationFields } from '~/components/common/backup/storage/actions/add/steps/nameAndConfigure/lib/models/interfaces'
182
182
  import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
183
183
  import { dynamicSteps } from '~/components/common/backup/storage/actions/add/lib/config/steps'
184
+ import type {
185
+ UI_T_InitialValidationFields
186
+ } from "~/components/common/backup/storage/actions/add/steps/nameAndConfigure/lib/models/types";
184
187
 
185
188
  const formModelLocal = defineModel<UI_I_CreateDatastoreForm>({ required: true })
186
189
  const isShowAlertInfo = defineModel<boolean>('alertInfo', { required: true })
@@ -199,10 +202,10 @@ const initValidationFields = ref<UI_I_InitialValidationFields>({
199
202
  name: false,
200
203
  folder: false,
201
204
  server: false,
202
- username: false,
205
+ user: false,
203
206
  password: false,
204
207
  })
205
- const initValidation = (onlyBlur = false, types: string[]): void => {
208
+ const initValidation = (onlyBlur = false, types: UI_T_InitialValidationFields[]): void => {
206
209
  onlyBlur && types.forEach((type) => (initValidationFields.value[type] = true))
207
210
  }
208
211
 
@@ -244,12 +247,12 @@ const serverErrorText = computed<string>(() => {
244
247
 
245
248
  /* Validation error text for Username input field */
246
249
  const usernameErrorText = computed<string>(() => {
247
- if (props.messagesFields.username?.field && !formModelLocal.value.username) {
248
- return props.messagesFields.username.field
250
+ if (props.messagesFields.user?.field && !formModelLocal.value.user) {
251
+ return props.messagesFields.user.field
249
252
  }
250
253
 
251
- if (!initValidationFields.value.username) return ''
252
- return !formModelLocal.value.username
254
+ if (!initValidationFields.value.user) return ''
255
+ return !formModelLocal.value.user
253
256
  ? localization.value.common.fieldRequired
254
257
  : ''
255
258
  })
@@ -2,4 +2,6 @@ export interface UI_I_InitialValidationFields {
2
2
  name: boolean
3
3
  folder: boolean
4
4
  server: boolean
5
+ user: boolean
6
+ password: boolean
5
7
  }