Skip to content

Commit 3eda5fe

Browse files
committed
allow empty/null user and password in UI
1 parent 9dcc8c7 commit 3eda5fe

1 file changed

Lines changed: 12 additions & 36 deletions

File tree

  • x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types

x-pack/plugins/triggers_actions_ui/public/application/components/builtin_action_types/email.tsx

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -97,26 +97,6 @@ export function getActionType(): ActionTypeModel {
9797
)
9898
);
9999
}
100-
if (!action.secrets.user) {
101-
errors.user.push(
102-
i18n.translate(
103-
'xpack.triggersActionsUI.components.builtinActionTypes.error.requiredUserText',
104-
{
105-
defaultMessage: 'Username is required.',
106-
}
107-
)
108-
);
109-
}
110-
if (!action.secrets.password) {
111-
errors.password.push(
112-
i18n.translate(
113-
'xpack.triggersActionsUI.components.builtinActionTypes.error.requiredPasswordText',
114-
{
115-
defaultMessage: 'Password is required.',
116-
}
117-
)
118-
);
119-
}
120100
return validationResult;
121101
},
122102
validateParams: (actionParams: EmailActionParams): ValidationResult => {
@@ -303,7 +283,7 @@ const EmailActionConnectorFields: React.FunctionComponent<ActionConnectorFieldsP
303283
id="emailUser"
304284
fullWidth
305285
error={errors.user}
306-
isInvalid={errors.user.length > 0 && user !== undefined}
286+
isInvalid={errors.user.length > 0}
307287
label={i18n.translate(
308288
'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.userTextFieldLabel',
309289
{
@@ -313,17 +293,12 @@ const EmailActionConnectorFields: React.FunctionComponent<ActionConnectorFieldsP
313293
>
314294
<EuiFieldText
315295
fullWidth
316-
isInvalid={errors.user.length > 0 && user !== undefined}
296+
isInvalid={errors.user.length > 0}
317297
name="user"
318298
value={user || ''}
319299
data-test-subj="emailUserInput"
320300
onChange={e => {
321-
editActionSecrets('user', e.target.value);
322-
}}
323-
onBlur={() => {
324-
if (!user) {
325-
editActionSecrets('user', '');
326-
}
301+
editActionSecrets('user', nullableString(e.target.value));
327302
}}
328303
/>
329304
</EuiFormRow>
@@ -333,7 +308,7 @@ const EmailActionConnectorFields: React.FunctionComponent<ActionConnectorFieldsP
333308
id="emailPassword"
334309
fullWidth
335310
error={errors.password}
336-
isInvalid={errors.password.length > 0 && password !== undefined}
311+
isInvalid={errors.password.length > 0}
337312
label={i18n.translate(
338313
'xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.passwordFieldLabel',
339314
{
@@ -343,17 +318,12 @@ const EmailActionConnectorFields: React.FunctionComponent<ActionConnectorFieldsP
343318
>
344319
<EuiFieldPassword
345320
fullWidth
346-
isInvalid={errors.password.length > 0 && password !== undefined}
321+
isInvalid={errors.password.length > 0}
347322
name="password"
348323
value={password || ''}
349324
data-test-subj="emailPasswordInput"
350325
onChange={e => {
351-
editActionSecrets('password', e.target.value);
352-
}}
353-
onBlur={() => {
354-
if (!password) {
355-
editActionSecrets('password', '');
356-
}
326+
editActionSecrets('password', nullableString(e.target.value));
357327
}}
358328
/>
359329
</EuiFormRow>
@@ -624,3 +594,9 @@ const EmailParamsFields: React.FunctionComponent<ActionParamsProps<EmailActionPa
624594
</Fragment>
625595
);
626596
};
597+
598+
// if the string == null or is empty, return null, else return string
599+
function nullableString(str: string | null | undefined) {
600+
if (str == null || str.trim() === '') return null;
601+
return str;
602+
}

0 commit comments

Comments
 (0)