bfg-common 1.5.392 → 1.5.394

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.
@@ -1,272 +1,276 @@
1
- <template>
2
- <div class="basics-step">
3
- <ui-alert
4
- v-show="isShowAlertInfo"
5
- :messages="[localization.common.nameAndConfigurationAlertInfo]"
6
- test-id="configure-information-alert"
7
- type="info"
8
- class="mb-4"
9
- size="md"
10
- @remove="isShowAlertInfo = false"
11
- />
12
-
13
- <div class="basics-step-row">
14
- <div class="basics-step-row-title">
15
- <span class="basics-step-row-title-text">
16
- {{ localization.common.name }}
17
- </span>
18
- </div>
19
- <div class="basics-step-row-content">
20
- <ui-input
21
- id="configuration-name-input"
22
- v-model="formModelLocal.name"
23
- :placeholder="localization.common.name"
24
- :error="nameErrorText"
25
- :disabled="props.isDisabledNameField"
26
- test-id="configuration-name-input"
27
- is-focused
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-tooltip-help
40
- test-id="backup-storage-tooltip-info-folder"
41
- help-id="backup-storage-tooltip-info-folder-icon"
42
- :title="localization.common.information"
43
- :help-text="localization.backup.specifyFolderPathExample"
44
- dropdown-width="272px"
45
- dropdown-left
46
- dropdown-top
47
- />
48
- </div>
49
- <div class="basics-step-row-content">
50
- <ui-input
51
- id="configuration-folder-input"
52
- v-model="formModelLocal.folder"
53
- :placeholder="localization.backup.folderPlaceholder"
54
- :error="folderErrorText"
55
- :disabled="props.isDisabledNameField"
56
- test-id="configuration-folder-input"
57
- />
58
- </div>
59
- </div>
60
-
61
- <div class="basics-step-line"></div>
62
-
63
- <div class="basics-step-row">
64
- <div class="basics-step-row-title">
65
- <span class="basics-step-row-title-text">
66
- {{ localization.common.server }}
67
- </span>
68
- <common-tooltip-help
69
- test-id="backup-storage-tooltip-info-server"
70
- help-id="backup-storage-tooltip-info-server-icon"
71
- :title="localization.common.information"
72
- :help-text="localization.backup.specifyServerAddressExample"
73
- dropdown-width="272px"
74
- dropdown-left
75
- dropdown-top
76
- />
77
- </div>
78
- <div class="basics-step-row-content">
79
- <ui-input
80
- id="configuration-server-input"
81
- v-model="formModelLocal.server"
82
- :placeholder="localization.backup.serverPlaceholder"
83
- :error="serverErrorText"
84
- :disabled="props.isDisabledNameField"
85
- test-id="configuration-server-input"
86
- />
87
- </div>
88
- </div>
89
-
90
- <div class="basics-step-line"></div>
91
-
92
- <div class="basics-step-row">
93
- <div class="basics-step-row-title">
94
- <span class="basics-step-row-title-text">
95
- {{ localization.auth.username }}
96
- </span>
97
- </div>
98
- <div class="basics-step-row-content">
99
- <ui-input
100
- id="configuration-username-input"
101
- v-model="formModelLocal.user"
102
- :placeholder="localization.auth.username"
103
- :error="usernameErrorText"
104
- :disabled="props.isDisabledNameField"
105
- test-id="configuration-username-input"
106
- />
107
- </div>
108
- </div>
109
-
110
- <div class="basics-step-line"></div>
111
-
112
- <div class="basics-step-row">
113
- <div class="basics-step-row-title">
114
- <span class="basics-step-row-title-text">
115
- {{ localization.auth.password }}
116
- </span>
117
- </div>
118
- <div class="basics-step-row-content">
119
- <ui-input
120
- id="configuration-password-input"
121
- v-model="formModelLocal.password"
122
- :placeholder="localization.auth.password"
123
- :error="passwordErrorText"
124
- :disabled="props.isDisabledNameField"
125
- type="password"
126
- test-id="configuration-password-input"
127
- />
128
- </div>
129
- </div>
130
- </div>
131
- </template>
132
-
133
- <script setup lang="ts">
134
- import type { UI_I_Localization } from '~/lib/models/interfaces'
135
- import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
136
- import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
137
-
138
- const formModelLocal = defineModel<UI_I_CreateDatastoreForm>({ required: true })
139
- const isShowAlertInfo = defineModel<boolean>('alertInfo', { required: true })
140
-
141
- const props = defineProps<{
142
- alertMessages: string[]
143
- messagesFields: UI_I_WizardStep['fields']
144
- isDisabledNameField?: boolean
145
- }>()
146
-
147
- const localization = computed<UI_I_Localization>(() => useLocal())
148
-
149
- const isEmptyAlertMessages = computed<boolean>(() => {
150
- return (
151
- !props.alertMessages?.length ||
152
- (props.alertMessages && !props.alertMessages.flat().length)
153
- )
154
- })
155
-
156
- /* Validation error text for Name input field */
157
- const nameErrorText = computed<string>(() => {
158
- if (isEmptyAlertMessages.value && props.messagesFields?.name?.field) {
159
- return props.messagesFields.name.field
160
- } else if (!formModelLocal.value.name) {
161
- return localization.value.common.fieldRequired
162
- }
163
- return ''
164
- })
165
-
166
- /* Validation error text for Folder input field */
167
- const folderErrorText = computed<string>(() => {
168
- if (isEmptyAlertMessages.value && props.messagesFields.folder?.field) {
169
- return props.messagesFields.folder.field
170
- }
171
- return ''
172
- })
173
-
174
- /* Validation error text for Server input field */
175
- const serverErrorText = computed<string>(() => {
176
- if (isEmptyAlertMessages.value && props.messagesFields.server?.field) {
177
- return props.messagesFields.server.field
178
- }
179
- return ''
180
- })
181
-
182
- /* Validation error text for Username input field */
183
- const usernameErrorText = computed<string>(() => {
184
- if (isEmptyAlertMessages.value && props.messagesFields.user?.field) {
185
- return props.messagesFields.user.field
186
- }
187
- return ''
188
- })
189
-
190
- /* Validation error text for Password input field */
191
- const passwordErrorText = computed<string>(() => {
192
- if (isEmptyAlertMessages.value && props.messagesFields.password?.field) {
193
- return props.messagesFields.password.field
194
- }
195
- return ''
196
- })
197
- </script>
198
-
199
- <style scoped lang="scss">
200
- .basics-step {
201
- padding: 16px 0 16px;
202
-
203
- &-row {
204
- min-height: 36px;
205
- width: 100%;
206
- display: flex;
207
- column-gap: 16px;
208
- align-items: center;
209
-
210
- &-title {
211
- padding-top: 8px;
212
- max-width: 240px;
213
- width: 100%;
214
- display: flex;
215
- align-items: center;
216
- column-gap: 8px;
217
- font-weight: 400;
218
- font-size: 13px;
219
- line-height: 20px;
220
- letter-spacing: 0;
221
- vertical-align: middle;
222
- align-self: flex-start;
223
- color: var(--wizard-content-title);
224
- white-space: nowrap;
225
- text-overflow: ellipsis;
226
- overflow: hidden;
227
-
228
- &-text {
229
- display: block;
230
- white-space: nowrap;
231
- text-overflow: ellipsis;
232
- overflow: hidden;
233
- }
234
- }
235
-
236
- &-content {
237
- max-width: 480px;
238
- width: 100%;
239
- font-weight: 400;
240
- font-size: 13px;
241
- line-height: 20px;
242
- letter-spacing: 0;
243
- vertical-align: middle;
244
- color: var(--wizard-content-value);
245
-
246
- &-text {
247
- display: flex;
248
- column-gap: 8px;
249
- align-items: center;
250
-
251
- &-icon {
252
- width: 20px;
253
- min-width: 20px;
254
- height: 20px;
255
- min-height: 20px;
256
- }
257
- }
258
-
259
- &-switch-container {
260
- width: fit-content;
261
- }
262
- }
263
- }
264
-
265
- &-line {
266
- height: 0;
267
- width: 100%;
268
- border-bottom: 1px solid var(--wizard-content-line);
269
- margin: 16px 0;
270
- }
271
- }
272
- </style>
1
+ <template>
2
+ <div class="basics-step">
3
+ <ui-alert
4
+ v-show="isShowAlertInfo"
5
+ :messages="[localization.common.nameAndConfigurationAlertInfo]"
6
+ test-id="configure-information-alert"
7
+ type="info"
8
+ class="mb-4"
9
+ size="md"
10
+ @remove="isShowAlertInfo = false"
11
+ />
12
+
13
+ <div class="basics-step-row">
14
+ <div class="basics-step-row-title">
15
+ <span class="basics-step-row-title-text">
16
+ {{ localization.common.name }}
17
+ </span>
18
+ </div>
19
+ <div class="basics-step-row-content">
20
+ <ui-input
21
+ id="configuration-name-input"
22
+ v-model="formModelLocal.name"
23
+ :placeholder="localization.common.name"
24
+ :error="nameErrorText"
25
+ :disabled="props.isDisabledNameField"
26
+ test-id="configuration-name-input"
27
+ is-focused
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-tooltip-help
40
+ test-id="backup-storage-tooltip-info-folder"
41
+ help-id="backup-storage-tooltip-info-folder-icon"
42
+ :title="localization.common.information"
43
+ :help-text="localization.backup.specifyFolderPathExample"
44
+ dropdown-width="272px"
45
+ dropdown-left
46
+ dropdown-top
47
+ />
48
+ </div>
49
+ <div class="basics-step-row-content">
50
+ <ui-input
51
+ id="configuration-folder-input"
52
+ v-model="formModelLocal.folder"
53
+ :placeholder="localization.backup.folderPlaceholder"
54
+ :error="folderErrorText"
55
+ :disabled="props.isDisabledNameField"
56
+ test-id="configuration-folder-input"
57
+ />
58
+ </div>
59
+ </div>
60
+
61
+ <div class="basics-step-line"></div>
62
+
63
+ <div class="basics-step-row">
64
+ <div class="basics-step-row-title">
65
+ <span class="basics-step-row-title-text">
66
+ {{ localization.common.server }}
67
+ </span>
68
+ <common-tooltip-help
69
+ test-id="backup-storage-tooltip-info-server"
70
+ help-id="backup-storage-tooltip-info-server-icon"
71
+ :title="localization.common.information"
72
+ :help-text="localization.backup.specifyServerAddressExample"
73
+ dropdown-width="272px"
74
+ dropdown-left
75
+ dropdown-top
76
+ />
77
+ </div>
78
+ <div class="basics-step-row-content">
79
+ <ui-input
80
+ id="configuration-server-input"
81
+ v-model="formModelLocal.server"
82
+ :placeholder="localization.backup.serverPlaceholder"
83
+ :error="serverErrorText"
84
+ :disabled="props.isDisabledNameField"
85
+ test-id="configuration-server-input"
86
+ />
87
+ </div>
88
+ </div>
89
+
90
+ <!-- PC-2542-->
91
+ <!-- <div class="basics-step-line"></div>-->
92
+
93
+ <!-- <div class="basics-step-row">-->
94
+ <!-- <div class="basics-step-row-title">-->
95
+ <!-- <span class="basics-step-row-title-text">-->
96
+ <!-- {{ localization.auth.username }}-->
97
+ <!-- </span>-->
98
+ <!-- </div>-->
99
+ <!-- <div class="basics-step-row-content">-->
100
+ <!-- <ui-input-->
101
+ <!-- id="configuration-username-input"-->
102
+ <!-- v-model="formModelLocal.user"-->
103
+ <!-- :placeholder="localization.auth.username"-->
104
+ <!-- :error="usernameErrorText"-->
105
+ <!-- :disabled="props.isDisabledNameField"-->
106
+ <!-- test-id="configuration-username-input"-->
107
+ <!-- />-->
108
+ <!-- </div>-->
109
+ <!-- </div>-->
110
+
111
+ <!-- PC-2542-->
112
+ <!-- <div class="basics-step-line"></div>-->
113
+
114
+ <!-- <div class="basics-step-row">-->
115
+ <!-- <div class="basics-step-row-title">-->
116
+ <!-- <span class="basics-step-row-title-text">-->
117
+ <!-- {{ localization.auth.password }}-->
118
+ <!-- </span>-->
119
+ <!-- </div>-->
120
+ <!-- <div class="basics-step-row-content">-->
121
+ <!-- <ui-input-->
122
+ <!-- id="configuration-password-input"-->
123
+ <!-- v-model="formModelLocal.password"-->
124
+ <!-- :placeholder="localization.auth.password"-->
125
+ <!-- :error="passwordErrorText"-->
126
+ <!-- :disabled="props.isDisabledNameField"-->
127
+ <!-- type="password"-->
128
+ <!-- test-id="configuration-password-input"-->
129
+ <!-- />-->
130
+ <!-- </div>-->
131
+ <!-- </div>-->
132
+ </div>
133
+ </template>
134
+
135
+ <script setup lang="ts">
136
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
137
+ import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
138
+ import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
139
+
140
+ const formModelLocal = defineModel<UI_I_CreateDatastoreForm>({ required: true })
141
+ const isShowAlertInfo = defineModel<boolean>('alertInfo', { required: true })
142
+
143
+ const props = defineProps<{
144
+ alertMessages: string[]
145
+ messagesFields: UI_I_WizardStep['fields']
146
+ isDisabledNameField?: boolean
147
+ }>()
148
+
149
+ const localization = computed<UI_I_Localization>(() => useLocal())
150
+
151
+ const isEmptyAlertMessages = computed<boolean>(() => {
152
+ return (
153
+ !props.alertMessages?.length ||
154
+ (props.alertMessages && !props.alertMessages.flat().length)
155
+ )
156
+ })
157
+
158
+ /* Validation error text for Name input field */
159
+ const nameErrorText = computed<string>(() => {
160
+ if (isEmptyAlertMessages.value && props.messagesFields?.name?.field) {
161
+ return props.messagesFields.name.field
162
+ } else if (!formModelLocal.value.name) {
163
+ return localization.value.common.fieldRequired
164
+ }
165
+ return ''
166
+ })
167
+
168
+ /* Validation error text for Folder input field */
169
+ const folderErrorText = computed<string>(() => {
170
+ if (isEmptyAlertMessages.value && props.messagesFields.folder?.field) {
171
+ return props.messagesFields.folder.field
172
+ }
173
+ return ''
174
+ })
175
+
176
+ /* Validation error text for Server input field */
177
+ const serverErrorText = computed<string>(() => {
178
+ if (isEmptyAlertMessages.value && props.messagesFields.server?.field) {
179
+ return props.messagesFields.server.field
180
+ }
181
+ return ''
182
+ })
183
+
184
+ /* Validation error text for Username input field */
185
+ // PC-2542
186
+ // const usernameErrorText = computed<string>(() => {
187
+ // if (isEmptyAlertMessages.value && props.messagesFields.user?.field) {
188
+ // return props.messagesFields.user.field
189
+ // }
190
+ // return ''
191
+ // })
192
+
193
+ /* Validation error text for Password input field */
194
+ // PC-2542
195
+ // const passwordErrorText = computed<string>(() => {
196
+ // if (isEmptyAlertMessages.value && props.messagesFields.password?.field) {
197
+ // return props.messagesFields.password.field
198
+ // }
199
+ // return ''
200
+ // })
201
+ </script>
202
+
203
+ <style scoped lang="scss">
204
+ .basics-step {
205
+ padding: 16px 0 16px;
206
+
207
+ &-row {
208
+ min-height: 36px;
209
+ width: 100%;
210
+ display: flex;
211
+ column-gap: 16px;
212
+ align-items: center;
213
+
214
+ &-title {
215
+ padding-top: 8px;
216
+ max-width: 240px;
217
+ width: 100%;
218
+ display: flex;
219
+ align-items: center;
220
+ column-gap: 8px;
221
+ font-weight: 400;
222
+ font-size: 13px;
223
+ line-height: 20px;
224
+ letter-spacing: 0;
225
+ vertical-align: middle;
226
+ align-self: flex-start;
227
+ color: var(--wizard-content-title);
228
+ white-space: nowrap;
229
+ text-overflow: ellipsis;
230
+ overflow: hidden;
231
+
232
+ &-text {
233
+ display: block;
234
+ white-space: nowrap;
235
+ text-overflow: ellipsis;
236
+ overflow: hidden;
237
+ }
238
+ }
239
+
240
+ &-content {
241
+ max-width: 480px;
242
+ width: 100%;
243
+ font-weight: 400;
244
+ font-size: 13px;
245
+ line-height: 20px;
246
+ letter-spacing: 0;
247
+ vertical-align: middle;
248
+ color: var(--wizard-content-value);
249
+
250
+ &-text {
251
+ display: flex;
252
+ column-gap: 8px;
253
+ align-items: center;
254
+
255
+ &-icon {
256
+ width: 20px;
257
+ min-width: 20px;
258
+ height: 20px;
259
+ min-height: 20px;
260
+ }
261
+ }
262
+
263
+ &-switch-container {
264
+ width: fit-content;
265
+ }
266
+ }
267
+ }
268
+
269
+ &-line {
270
+ height: 0;
271
+ width: 100%;
272
+ border-bottom: 1px solid var(--wizard-content-line);
273
+ margin: 16px 0;
274
+ }
275
+ }
276
+ </style>