feat(employee-invite): Updated validation of email-addresses and changed text for assigned users. (TV-628)

Squashed commit of the following:

commit 06df4b0cf3fd7a006287267d6bd3ce427d2ecdd7
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Sep 22 09:17:24 2021 +0200

    Added new text and updated validation
This commit is contained in:
Erik Tiekstra
2021-09-22 10:46:20 +02:00
parent dfa8205817
commit 84f8737ec4
3 changed files with 22 additions and 13 deletions

View File

@@ -42,15 +42,11 @@
[afHeading]="alertTexts.heading"
af-heading-level="h3"
>
<ng-container *ngIf="alertTexts.variation === 'warning'">
<p>
Inbjudan skickades endast till vissa mottagare. Skicka inbjudningar igen till de e-postadresser där
inbjudan misslyckades.
</p>
</ng-container>
<ng-container *ngIf="alertTexts.variation === 'danger'">
<p>Något gick fel. Skicka inbjudningar igen.</p>
</ng-container>
<p *ngIf="alertTexts.variation === 'warning'">
Inbjudan skickades endast till vissa mottagare. Skicka inbjudningar igen till de e-postadresser där inbjudan
misslyckades.
</p>
<p *ngIf="alertTexts.variation === 'danger'">Något gick fel. Skicka inbjudningar igen.</p>
<ng-container *ngIf="lastInvitedFailedInvites.length">
<h4>Inbjudan kunde inte skickas till:</h4>
<p>{{lastInvitedFailedInvites.join(', ')}}</p>
@@ -59,6 +55,14 @@
<h4>Inbjudan har skickats till:</h4>
<p>{{lastInvitedNewUsers.join(', ')}}</p>
</ng-container>
<ng-container *ngIf="lastInvitedAssignedUsers.length">
<h4>Inbjudan har skickats till:</h4>
<p>{{lastInvitedAssignedUsers.join(', ')}}</p>
<p>
{{lastInvitedAssignedUsers.length > 1 ? 'Användarna' : 'Användaren'}} fanns redan i systemet och är nu
tillagd i personallistan.
</p>
</ng-container>
<ng-container *ngIf="lastInvitedAlreadyInvitedUsers.length">
<h4>E-postadressen har redan fått en inbjudan:</h4>
<p>{{lastInvitedAlreadyInvitedUsers.join(', ')}}</p>

View File

@@ -31,15 +31,17 @@ export class EmployeeInviteComponent {
get emailsControlValueAsArray(): string[] {
return (this.emailsControl.value as string)
.trim()
.replaceAll(/\n|\t|\r|\s/g, '')
.split(',')
.filter(email => !!email);
}
get lastInvitedNewUsers(): string[] {
const invitedUsers = this.lastInvites?.invitedUsers || [];
return this.lastInvites?.invitedUsers || [];
}
get lastInvitedAssignedUsers(): string[] {
const assignedUsers = this.lastInvites?.assignedUsers || [];
return [...invitedUsers, ...assignedUsers.map(user => user.email)];
return assignedUsers.map(user => user.email);
}
get lastInvitedExistingUsers(): string[] {
const existingUsersInCurrentOrg = this.lastInvites?.existingUsersInCurrentOrg || [];

View File

@@ -23,7 +23,10 @@ export function EmailValidator(label = 'Fältet'): ValidatorFn {
export function CommaSeparatedEmailValidator(): ValidatorFn {
return (control: AbstractControl): ValidationError => {
if (control && control.value) {
const values: string[] = (control.value as string).toLowerCase().trim().split(',');
const values: string[] = (control.value as string)
.toLowerCase()
.replaceAll(/\n|\t|\r|\s/g, '')
.split(',');
const invalidEmailaddresses = [];
values.forEach(value => {