Fixed issue with utforandeverksamheter in employees

This commit is contained in:
Erik Tiekstra
2021-09-06 15:23:48 +02:00
parent db03d97d54
commit b3283aaab3
6 changed files with 53 additions and 57 deletions

View File

@@ -43,37 +43,41 @@
Kontot har behörighet till alla utförande verksamheter och utförande adresser inom organisationen.
</p>
<ng-template #specificUtforandeVerksamheter>
<div *ngIf="employee.utforandeVerksamhet?.length" class="employee-card__utforandeverksamheter-cards">
<ng-container>
<digi-info-card
*ngFor="let utforandeverksamhet of employee.utforandeVerksamhet"
[afHeading]="utforandeverksamhet.namn"
af-heading-level="h2"
af-type="info"
class="employee-card__utforandeverksamheter-card"
>
<digi-ng-layout-expansion-panel *ngIf="utforandeverksamhet.adresser.length > 0">
<span data-slot-trigger>
{{ accordionExpanded ? 'Dölj' : 'Visa' }} {{utforandeverksamhet.adresser.length}}
{{utforandeverksamhet.adresser.length === 1 ? 'adress' : 'adresser'}}
</span>
<ul class="employee-card__utforandeverksamheter-address-list">
<li
class="employee-card__utforandeverksamheter-address-list-item"
*ngFor="let address of utforandeverksamhet.adresser"
>
<span>{{address.adressrad}}</span>
<span>{{address.postnummer}}</span>
<span>{{address.postort}}</span>
</li>
</ul>
</digi-ng-layout-expansion-panel>
</digi-info-card>
</ng-container>
</div>
<p *ngIf="!employee.utforandeVerksamhet.length">
Kontot har inga registrerade utförande verksamheter eller utförande adresser ännu.
<p style="color: red">
OBS: BEHÖVER FIXAS, ÄVEN OM MAN HAR UTFÖRANDE VERKSAMHETER SÅ SYNS DOM INTE DÅ VI BARA FÅR UT ID
</p>
<div
*ngIf="employee.utforandeVerksamheter?.length; else missingUtforandeVerksamheter"
class="employee-card__utforandeverksamheter-cards"
>
<digi-info-card
*ngFor="let utforandeverksamhet of employee.utforandeVerksamhet"
[afHeading]="utforandeverksamhet.namn"
af-heading-level="h2"
af-type="info"
class="employee-card__utforandeverksamheter-card"
>
<digi-ng-layout-expansion-panel *ngIf="utforandeverksamhet.adresser.length > 0">
<span data-slot-trigger>
{{ accordionExpanded ? 'Dölj' : 'Visa' }} {{utforandeverksamhet.adresser.length}}
{{utforandeverksamhet.adresser.length === 1 ? 'adress' : 'adresser'}}
</span>
<ul class="employee-card__utforandeverksamheter-address-list">
<li
class="employee-card__utforandeverksamheter-address-list-item"
*ngFor="let address of utforandeverksamhet.adresser"
>
<span>{{address.adressrad}}</span>
<span>{{address.postnummer}}</span>
<span>{{address.postort}}</span>
</li>
</ul>
</digi-ng-layout-expansion-panel>
</digi-info-card>
</div>
<ng-template #missingUtforandeVerksamheter>
<p>Kontot har inga registrerade utförande verksamheter eller utförande adresser ännu.</p>
</ng-template>
</ng-template>
</div>
<div class="employee-card__column">

View File

@@ -31,7 +31,7 @@ export class EmployeeInviteComponent {
get emailsControlValueAsArray(): string[] {
return (this.emailsControl.value as string)
.replaceAll(' ', '')
.trim()
.split(',')
.filter(email => !!email);
}

View File

@@ -28,31 +28,30 @@
</thead>
<tbody>
<tr class="employees-list__row" *ngFor="let employee of employees">
<th style="white-space: nowrap" scope="row">
<th class="employees-list__cell employees-list__cell--nowrap" style="white-space: nowrap" scope="row">
<a [routerLink]="employee.id" class="employees-list__link">{{ employee.fullName }}</a>
</th>
<!-- <ng-container
*ngIf="employee?.tjanster?.length && employee?.utforandeVerksamheter?.length; else noPermissions"
> -->
<td style="white-space: nowrap">
<td class="employees-list__cell employees-list__cell--nowrap" style="white-space: nowrap">
<ng-container *ngIf="employee.tjanster.length">
{{ employee.tjanster[0] }}<ng-container *ngIf="employee.tjanster.length > 1">
(+{{employee.tjanster.length - 1}})</ng-container
>
</ng-container>
<ng-container *ngIf="!employee.tjanster.length"> Tjänst saknas </ng-container>
<ng-container *ngIf="!employee.tjanster.length">Tjänst saknas</ng-container>
</td>
<td>
<ng-container *ngIf="employee.utforandeVerksamheter.length">
<td class="employees-list__cell">
<ng-container *ngIf="employee.utforandeVerksamheter.length && !employee.allaUtforandeVerksamheter">
{{ employee.utforandeVerksamheter[0] }}<ng-container *ngIf="employee.utforandeVerksamheter.length > 1">
(+{{employee.utforandeVerksamheter.length - 1}})</ng-container
>
</ng-container>
<ng-container *ngIf="!employee.utforandeVerksamheter.length"> Utförande verksamheter saknas </ng-container>
<ng-container *ngIf="employee.allaUtforandeVerksamheter"> Alla utförande verksamheter </ng-container>
<ng-container *ngIf="!employee.utforandeVerksamheter.length && !employee.allaUtforandeVerksamheter"
>Utförande verksamheter saknas</ng-container
>
</td>
<!-- </ng-container> -->
<ng-template #noPermissions>
<td colspan="2">Klicka på namnet för att ge personalkontot behörigheter</td>
<td class="employees-list__cell" colspan="2">Klicka på namnet för att ge personalkontot behörigheter</td>
</ng-template>
<!-- <td>
<digi-button

View File

@@ -10,6 +10,12 @@
padding: $digi--layout--gutter--m $digi--layout--gutter--l;
}
&__cell {
&--nowrap {
white-space: nowrap;
}
}
&__sort-button {
position: relative;
background-color: transparent;

View File

@@ -22,7 +22,6 @@ export interface Employee {
tjanstCodes: string[];
tjanster?: Tjanst[];
allaUtforandeVerksamheter: boolean;
utforandeVerksamhet: string[];
utforandeVerksamhetIds: number[];
utforandeAdressIds: number[];
}
@@ -37,21 +36,12 @@ export interface EmployeeRequestData {
roles: string[];
tjansteKoder: string[];
allaUtforandeVerksamheter: boolean;
utforandeVerksamhet: string[];
utforandeVerksamhetIds: number[];
adressIds: number[];
}
export function mapEmployeeToRequestData(data: Employee): EmployeeRequestData {
const {
email,
roles,
tjanstCodes,
allaUtforandeVerksamheter,
utforandeVerksamhet,
utforandeVerksamhetIds,
utforandeAdressIds,
} = data;
const { email, roles, tjanstCodes, allaUtforandeVerksamheter, utforandeVerksamhetIds, utforandeAdressIds } = data;
return {
email,
@@ -60,7 +50,6 @@ export function mapEmployeeToRequestData(data: Employee): EmployeeRequestData {
utforandeVerksamhetIds,
adressIds: utforandeAdressIds,
allaUtforandeVerksamheter: allaUtforandeVerksamheter,
utforandeVerksamhet: utforandeVerksamhet,
};
}
@@ -85,7 +74,6 @@ export function mapResponseToEmployee(data: EmployeeResponse): Employee {
roles,
tjansteKoder,
allaUtforandeVerksamheter,
utforandeVerksamhet,
utforandeVerksamhetIds,
adressIds,
} = data;
@@ -99,7 +87,6 @@ export function mapResponseToEmployee(data: EmployeeResponse): Employee {
roles: roles || [],
tjanstCodes: tjansteKoder || [],
allaUtforandeVerksamheter,
utforandeVerksamhet: utforandeVerksamhet || [],
utforandeVerksamhetIds: utforandeVerksamhetIds || [],
utforandeAdressIds: adressIds || [],
};

View File

@@ -16,7 +16,7 @@ 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).replaceAll(' ', '').split(',');
const values: string[] = (control.value as string).trim().split(',');
const invalidEmailaddresses = [];
values.forEach(value => {