From 75084782b767f51f6158ada1984cf339c6302960 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 20 Jun 2022 16:42:21 +0200 Subject: Handle input error in custom input text --- .../users/user-edit/user-edit.component.html | 8 +---- .../users/user-edit/user-password.component.html | 1 + client/src/app/+login/login.component.html | 10 +++--- .../my-account-change-email.component.html | 12 +++----- .../my-account-change-password.component.html | 36 ++++++++-------------- .../+reset-password/reset-password.component.html | 8 ++--- .../steps/register-step-user.component.html | 4 +-- .../shared-forms/dynamic-form-field.component.html | 4 +-- .../shared-forms/dynamic-form-field.component.ts | 11 +++++++ .../shared/shared-forms/input-text.component.html | 3 ++ .../shared/shared-forms/input-text.component.ts | 1 + client/src/sass/class-helpers.scss | 8 ++++- 12 files changed, 49 insertions(+), 57 deletions(-) (limited to 'client') diff --git a/client/src/app/+admin/overview/users/user-edit/user-edit.component.html b/client/src/app/+admin/overview/users/user-edit/user-edit.component.html index bfa414164..e484ab8b0 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-edit.component.html +++ b/client/src/app/+admin/overview/users/user-edit/user-edit.component.html @@ -123,13 +123,7 @@ - - -
- {{ formErrors.password }} -
+
diff --git a/client/src/app/+admin/overview/users/user-edit/user-password.component.html b/client/src/app/+admin/overview/users/user-edit/user-password.component.html index 35f36e465..13f57024b 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-password.component.html +++ b/client/src/app/+admin/overview/users/user-edit/user-password.component.html @@ -1,4 +1,5 @@
+
- - -
{{ formErrors.password }}
+
diff --git a/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html b/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html index c9f9d8f55..d85be846b 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html +++ b/client/src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html @@ -25,14 +25,10 @@
- -
- {{ formErrors['password'] }} -
+
diff --git a/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html b/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html index f1deb4273..f961d3294 100644 --- a/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html +++ b/client/src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html @@ -3,32 +3,20 @@ - -
- {{ formErrors['current-password'] }} -
+ - -
- {{ formErrors['new-password'] }} -
+ - -
- {{ formErrors['new-confirmed-password'] }} -
+ diff --git a/client/src/app/+reset-password/reset-password.component.html b/client/src/app/+reset-password/reset-password.component.html index 130873593..fa53e7526 100644 --- a/client/src/app/+reset-password/reset-password.component.html +++ b/client/src/app/+reset-password/reset-password.component.html @@ -7,10 +7,8 @@ - -
{{ formErrors.password }}
@@ -18,10 +16,8 @@ - -
{{ formErrors['password-confirm'] }}
- -
{{ formErrors.password }}
diff --git a/client/src/app/shared/shared-forms/dynamic-form-field.component.html b/client/src/app/shared/shared-forms/dynamic-form-field.component.html index 61f9ae8ff..2dd6cf4ad 100644 --- a/client/src/app/shared/shared-forms/dynamic-form-field.component.html +++ b/client/src/app/shared/shared-forms/dynamic-form-field.component.html @@ -18,7 +18,7 @@ - + @@ -40,7 +40,7 @@
-
+
{{ formErrors[setting.name] }}
diff --git a/client/src/app/shared/shared-forms/dynamic-form-field.component.ts b/client/src/app/shared/shared-forms/dynamic-form-field.component.ts index b63890797..e1a1f8034 100644 --- a/client/src/app/shared/shared-forms/dynamic-form-field.component.ts +++ b/client/src/app/shared/shared-forms/dynamic-form-field.component.ts @@ -12,4 +12,15 @@ export class DynamicFormFieldComponent { @Input() form: FormGroup @Input() formErrors: any @Input() setting: RegisterClientFormFieldOptions + + hasDedicatedFormError () { + const dedicated = new Set([ + 'input-checkbox', + 'input', + 'select', + 'input-textarea' + ]) + + return dedicated.has(this.setting.type) + } } diff --git a/client/src/app/shared/shared-forms/input-text.component.html b/client/src/app/shared/shared-forms/input-text.component.html index f890c4f02..abb53a085 100644 --- a/client/src/app/shared/shared-forms/input-text.component.html +++ b/client/src/app/shared/shared-forms/input-text.component.html @@ -3,6 +3,7 @@ [id]="inputId" [autocomplete]="autocomplete" [value]="value" [placeholder]="placeholder" [tabindex]="tabindex" [(ngModel)]="value" (ngModelChange)="update()" [readonly]="readonly" #input (click)="input.select()" (input)="update()" (change)="update()" [type]="inputType" class="form-control" + [ngClass]="{ 'input-error': formError }" />
+ +
{{ formError }}
diff --git a/client/src/app/shared/shared-forms/input-text.component.ts b/client/src/app/shared/shared-forms/input-text.component.ts index ed4637c17..d667ed663 100644 --- a/client/src/app/shared/shared-forms/input-text.component.ts +++ b/client/src/app/shared/shared-forms/input-text.component.ts @@ -24,6 +24,7 @@ export class InputTextComponent implements ControlValueAccessor { @Input() withCopy = false @Input() readonly = false @Input() show = false + @Input() formError: string constructor (private notifier: Notifier) { } diff --git a/client/src/sass/class-helpers.scss b/client/src/sass/class-helpers.scss index f09d84882..2994a57ae 100644 --- a/client/src/sass/class-helpers.scss +++ b/client/src/sass/class-helpers.scss @@ -77,6 +77,10 @@ } } +.input-group .input-error { + z-index: 3; +} + .form-error, .form-warning { display: block; @@ -87,7 +91,9 @@ color: $red; } -.input-error:focus { +// Disable red error on input focus +.input-error:focus, +.input-group:focus-within { & + .form-error, & + * + .form-error, // Markdown textarea & + * + * + .form-error { -- cgit v1.2.3