Merged PR 211: #804 Fix Country Errors Mapping

#804 Fix Country Errors Mapping

Related work items: #804
This commit is contained in:
Sebastian Neumair
2020-07-07 12:47:18 +00:00
committed by Lorenz Hilpert

View File

@@ -1,4 +1,9 @@
<div id="customer-form" class="fixed-card-container create-customer-container" (scroll)="scrollHandler($event)" *ngIf="loaded">
<div
id="customer-form"
class="fixed-card-container create-customer-container"
(scroll)="scrollHandler($event)"
*ngIf="loaded"
>
<div class="fixed-card-header">
<span>Kundendaten erfassen</span>
</div>
@@ -8,10 +13,22 @@
<span>{{ headerText }}</span>
</div>
<div class="types-wrapper">
<div class="type" (click)="toggleGuest()" [ngClass]="{ 'type-disabled': guestDisabled }">
<div
class="type"
(click)="toggleGuest()"
[ngClass]="{ 'type-disabled': guestDisabled }"
>
<div class="filter-checkbox">
<lib-icon height="22px" name="Check_box" *ngIf="!guestDisabled"></lib-icon>
<lib-icon height="22px" name="Check_box_disabled" *ngIf="guestDisabled"></lib-icon>
<lib-icon
height="22px"
name="Check_box"
*ngIf="!guestDisabled"
></lib-icon>
<lib-icon
height="22px"
name="Check_box_disabled"
*ngIf="guestDisabled"
></lib-icon>
<div class="checked-box" *ngIf="guestChecked">
<lib-icon name="Check_f" *ngIf="!guestDisabled"></lib-icon>
<lib-icon name="Check_f_disabled" *ngIf="guestDisabled"></lib-icon>
@@ -42,11 +59,21 @@
<div class="form-group form-group-split-container">
<div class="form-group-split">
<app-select
[selected]="f.gender.value && f.gender.value.length > 0 ? f.gender.value : 'Anrede'"
[selected]="
f.gender.value && f.gender.value.length > 0
? f.gender.value
: 'Anrede'
"
[label]="'Anrede'"
[options]="genders"
[displayErrorUnder]="true"
[showrequired]="deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked"
[showrequired]="
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[error]="submitted && f.gender.errors"
[errorMessage]="'Anrede wird benötigt'"
[value]="f.gender.value"
@@ -56,7 +83,11 @@
</div>
<div class="form-group-split">
<app-select
[selected]="f.title.value && f.title.value.length > 0 ? f.title.value : 'Titel'"
[selected]="
f.title.value && f.title.value.length > 0
? f.title.value
: 'Titel'
"
[label]="'Titel'"
[options]="titels"
[value]="f.title.value"
@@ -76,12 +107,16 @@
[label]="'Vorname'"
[error]="(submitted || backendValidation) && f.firstName.errors"
[errorMessage]="
f.firstName.errors && f.firstName.errors.backendValidation ? f.firstName.errors.backendValidationMsg : 'Vorname wird benötigt'
f.firstName.errors && f.firstName.errors.backendValidation
? f.firstName.errors.backendValidationMsg
: 'Vorname wird benötigt'
"
[displayErrorUnder]="true"
[value]="f.firstName.value"
[isDirty]="f.firstName.dirty"
(valueChanges)="valueChanges(f.firstName, $event); clearErrors('firstName')"
(valueChanges)="
valueChanges(f.firstName, $event); clearErrors('firstName')
"
></app-input>
</div>
<div class="form-group-split">
@@ -93,21 +128,27 @@
[label]="'Nachname'"
[error]="(submitted || backendValidation) && f.lastName.errors"
[errorMessage]="
f.lastName.errors && f.lastName.errors.backendValidation ? f.lastName.errors.backendValidationMsg : 'Nachname wird benötigt'
f.lastName.errors && f.lastName.errors.backendValidation
? f.lastName.errors.backendValidationMsg
: 'Nachname wird benötigt'
"
[displayErrorUnder]="true"
[value]="f.lastName.value"
[isDirty]="f.lastName.dirty"
(valueChanges)="valueChanges(f.lastName, $event); clearErrors('lastName')"
(valueChanges)="
valueChanges(f.lastName, $event); clearErrors('lastName')
"
></app-input>
</div>
</div>
<div class="additional-information" *ngIf="deliveryAndGuestOrOnline">
<span>
Wir werden Ihnen Werbung zu ähnlichen Produkten oder Dienstleistungen aus unserem Sortiment per E-Mail zusenden. Sie können der
Verwendung Ihrer Daten jederzeit z.B. mittels der in den E-Mails enthaltenen Abmeldelinks widersprechen, ohne dass hierfür andere
als die Übermittlungskosten nach den Basistarifen entstehen.
Wir werden Ihnen Werbung zu ähnlichen Produkten oder Dienstleistungen
aus unserem Sortiment per E-Mail zusenden. Sie können der Verwendung
Ihrer Daten jederzeit z.B. mittels der in den E-Mails enthaltenen
Abmeldelinks widersprechen, ohne dass hierfür andere als die
Übermittlungskosten nach den Basistarifen entstehen.
</span>
</div>
@@ -115,8 +156,20 @@
<app-input
[type]="'text'"
[id]="'email'"
[required]="deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked"
[showrequired]="deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked"
[required]="
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[showrequired]="
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[label]="'E-Mail-Adresse'"
[error]="(firstEmailInput || submitted) && f.email.errors"
[errorMessage]="
@@ -128,7 +181,11 @@
"
[trim]="true"
[isDirty]="f.email.dirty"
(valueChanges)="valueChanges(f.email, $event, 'email'); firstEmailChange(); clearErrors('email')"
(valueChanges)="
valueChanges(f.email, $event, 'email');
firstEmailChange();
clearErrors('email')
"
[value]="f.email.value"
></app-input>
</div>
@@ -151,10 +208,20 @@
[type]="'text'"
[id]="'address'"
[required]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[showrequired]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[label]="'Straße'"
[error]="submitted && (f.address.errors || addressGeneralError)"
@@ -168,7 +235,9 @@
[displayErrorUnder]="true"
[value]="f.address.value"
[isDirty]="f.address.dirty"
(valueChanges)="valueChanges(f.address, $event, 'address'); clearErrors('address')"
(valueChanges)="
valueChanges(f.address, $event, 'address'); clearErrors('address')
"
></app-input>
</div>
<div class="form-group-split">
@@ -176,10 +245,20 @@
[type]="'text'"
[id]="'streetNo'"
[required]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[showrequired]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[label]="'Hausnummer'"
[error]="submitted && (f.streetNo.errors || addressNoGeneralError)"
@@ -193,7 +272,10 @@
[displayErrorUnder]="true"
[value]="f.streetNo.value"
[isDirty]="f.streetNo.dirty"
(valueChanges)="valueChanges(f.streetNo, $event, 'streetNo'); clearErrors('streetNo')"
(valueChanges)="
valueChanges(f.streetNo, $event, 'streetNo');
clearErrors('streetNo')
"
></app-input>
</div>
</div>
@@ -204,10 +286,20 @@
[type]="'number'"
[id]="'zipCode'"
[required]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[showrequired]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[label]="'PLZ'"
[error]="submitted && (f.zipCode.errors || zipGeneralError)"
@@ -221,7 +313,9 @@
[displayErrorUnder]="true"
[value]="f.zipCode.value"
[isDirty]="f.zipCode.dirty"
(valueChanges)="valueChanges(f.zipCode, $event, 'zipCode'); clearErrors('zipCode')"
(valueChanges)="
valueChanges(f.zipCode, $event, 'zipCode'); clearErrors('zipCode')
"
></app-input>
</div>
<div class="form-group-split">
@@ -229,10 +323,20 @@
[type]="'text'"
[id]="'city'"
[required]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[showrequired]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[label]="'Ort'"
[error]="submitted && (f.city.errors || cityGeneralError)"
@@ -246,26 +350,41 @@
[displayErrorUnder]="true"
[value]="f.city.value"
[isDirty]="f.city.dirty"
(valueChanges)="valueChanges(f.city, $event, 'city'); clearErrors('city')"
(valueChanges)="
valueChanges(f.city, $event, 'city'); clearErrors('city')
"
></app-input>
</div>
</div>
<div class="form-group">
<app-select
[selected]="f.country.value && f.country.value.length > 0 ? f.country.value : 'Land'"
[selected]="
f.country.value && f.country.value.length > 0
? f.country.value
: 'Land'
"
[label]="'Land'"
[options]="guestChecked || onlineChecked ? (deutchland | async) : (countries | async)"
[options]="
guestChecked || onlineChecked
? (deutchland | async)
: (countries | async)
"
(valueChanges)="countrySelect($event); clearErrors('country')"
[showrequired]="
!create || deliveryAndGuestOrOnline || pickUpOrTakeNowAndOnline || downloadAndOnline || onlineChecked || guestChecked
!create ||
deliveryAndGuestOrOnline ||
pickUpOrTakeNowAndOnline ||
downloadAndOnline ||
onlineChecked ||
guestChecked
"
[error]="submitted && f.country.errors"
[errorMessage]="
countryGeneralError
? 'Ungültige Eingabe des Landes'
: f.city.errors && f.city.errors.backendValidation
? f.city.errors.backendValidationMsg
: f.country.errors && f.country.errors.backendValidation
? f.country.errors.backendValidationMsg
: 'Land wird benötigt'
"
[value]="f.country.value"
@@ -278,7 +397,8 @@
<div class="phone-onlinekonto" *ngIf="onlineChecked">
<span>
Das Anlegen geht für Sie noch schneller, wenn wir Ihnen das initiale Passwort per SMS auf Ihr Mobilgerät schicken.
Das Anlegen geht für Sie noch schneller, wenn wir Ihnen das initiale
Passwort per SMS auf Ihr Mobilgerät schicken.
</span>
</div>
@@ -318,7 +438,9 @@
[label]="'Geburtsdatum (TT.MM.JJJJ)'"
[error]="submitted && f.dateOfBirth.errors"
[errorMessage]="
f.dateOfBirth.errors && f.dateOfBirth.errors.required ? 'Geburtsdatum wird benötigt' : 'Geburtsdatum hat ein falsches Format'
f.dateOfBirth.errors && f.dateOfBirth.errors.required
? 'Geburtsdatum wird benötigt'
: 'Geburtsdatum hat ein falsches Format'
"
(valueChanges)="valueChanges(f.dateOfBirth, $event)"
[value]="f.dateOfBirth.value"
@@ -363,7 +485,14 @@
</ng-container>
<div class="form-group btn-container">
<app-button [primary]="true" [stayOnPage]="true" [load]="true" (action)="post()" #postBtn>{{ btnText }}</app-button>
<app-button
[primary]="true"
[stayOnPage]="true"
[load]="true"
(action)="post()"
#postBtn
>{{ btnText }}</app-button
>
</div>
</form>
</div>