Changes to some models and data coming from API
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
<section class="employee-card">
|
||||
<digi-typography *ngIf="employee$ | async as employee; else loadingRef">
|
||||
<header class="employee-card__header">
|
||||
<a class="employee-card__edit-button" [routerLink]="['/administration/redigera-konto', employee.id]">Redigera</a>
|
||||
<a class="employee-card__edit-button" [routerLink]="['/administration/redigera-konto', employee.id]"
|
||||
>Redigera</a
|
||||
>
|
||||
<h1>{{ employee.fullName }}</h1>
|
||||
</header>
|
||||
<p>Här kan du se och ändra personalkontots behörigheter. Ändra behörighet genom att klicka på redigera.</p>
|
||||
@@ -40,7 +42,7 @@
|
||||
Kontot har behörighet till alla utförande verksamheter och utförande adresser inom organisationen.
|
||||
</p>
|
||||
<ng-template #specificUtforandeVerksamheter>
|
||||
<div class="employee-card__utforandeverksamheter-cards" >
|
||||
<div class="employee-card__utforandeverksamheter-cards">
|
||||
<ng-container *ngIf="employee.utforandeVerksamhet?.length; else emptyText">
|
||||
<digi-info-card
|
||||
*ngFor="let utforandeverksamhet of employee.utforandeVerksamhet"
|
||||
@@ -49,12 +51,9 @@
|
||||
af-type="info"
|
||||
class="employee-card__utforandeverksamheter-card"
|
||||
>
|
||||
<digi-ng-layout-expansion-panel
|
||||
*ngIf="utforandeverksamhet.adresser.length > 0"
|
||||
>
|
||||
<digi-ng-layout-expansion-panel *ngIf="utforandeverksamhet.adresser.length > 0">
|
||||
<span data-slot-trigger>
|
||||
{{ accordionExpanded ? 'Dölj' : 'Visa' }}
|
||||
{{utforandeverksamhet.adresser.length}}
|
||||
{{ accordionExpanded ? 'Dölj' : 'Visa' }} {{utforandeverksamhet.adresser.length}}
|
||||
{{utforandeverksamhet.adresser.length === 1 ? 'adress' : 'adresser'}}
|
||||
</span>
|
||||
<ul class="employee-card__utforandeverksamheter-address-list">
|
||||
@@ -106,9 +105,7 @@
|
||||
</dd>
|
||||
</ng-template>
|
||||
<ng-template #emptyText>
|
||||
<p>
|
||||
<span aria-hidden="true">-</span>
|
||||
<span class="msfa__a11y-sr-only">Info saknas</span>
|
||||
</p>
|
||||
<span aria-hidden="true">-</span>
|
||||
<span class="msfa__a11y-sr-only">Info saknas</span>
|
||||
</ng-template>
|
||||
</msfa-layout>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { RoleEnum } from '@msfa-enums/role.enum';
|
||||
import { Employee } from '@msfa-models/employee.model';
|
||||
import { Role } from '@msfa-models/role.model';
|
||||
import { EmployeeService } from '@msfa-services/api/employee.service';
|
||||
@@ -15,7 +14,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
|
||||
export class EmployeeCardComponent {
|
||||
private _pendingSelectedParticipants$ = new BehaviorSubject<string[]>([]);
|
||||
employee$: Observable<Employee> = this.employeeService.employee$;
|
||||
allRoles: Role[] = Object.entries(RoleEnum).map(([key, value]) => ({ type: key as RoleEnum, name: value }));
|
||||
allRoles: Role[] = this.employeeService.allRoles;
|
||||
|
||||
constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeService) {
|
||||
this.employeeService.setCurrentEmployeeId(this.activatedRoute.snapshot.params.employeeId);
|
||||
|
||||
@@ -25,7 +25,7 @@ export class EmployeeFormComponent extends UnsubscribeDirective implements OnIni
|
||||
tjanster$: Observable<Tjanst[]> = this.tjanstService.tjanster$;
|
||||
availableTjanster: FormSelectItem[] | null = null;
|
||||
|
||||
selectableRoles: Role[] | null = this.employeeService.getAllRoles();
|
||||
selectableRoles: Role[] = this.employeeService.allRoles;
|
||||
currentEmployeeRoles: Role[] | undefined | null = null;
|
||||
|
||||
constructor(
|
||||
@@ -41,22 +41,18 @@ export class EmployeeFormComponent extends UnsubscribeDirective implements OnIni
|
||||
this.employeeService.setCurrentEmployeeId(this.activatedRoute.snapshot.params['employeeId']);
|
||||
const employeeDataSub = this.employee$.subscribe(employee => {
|
||||
this.employee = employee;
|
||||
this.currentEmployeeRoles = employee?.roles
|
||||
.map(role => mapRoleResponseToRoleObject(role));
|
||||
this.currentEmployeeRoles = employee?.roles.map(role => mapRoleResponseToRoleObject(role));
|
||||
});
|
||||
|
||||
const tjanstRelatedDataSub = this.tjanster$.subscribe(tjanster => {
|
||||
const tjanstOptions: FormSelectItem[] = [];
|
||||
tjanster?.forEach(tjanst => {
|
||||
tjanstOptions.push({name: tjanst?.name, value: tjanst?.code});
|
||||
tjanstOptions.push({ name: tjanst?.name, value: tjanst?.code });
|
||||
});
|
||||
this.availableTjanster = tjanstOptions;
|
||||
});
|
||||
|
||||
this.subscriptionsList.push(
|
||||
employeeDataSub,
|
||||
tjanstRelatedDataSub
|
||||
);
|
||||
this.subscriptionsList.push(employeeDataSub, tjanstRelatedDataSub);
|
||||
}
|
||||
|
||||
updateEmployee(editEmployeeFormData: EditEmployeeFormData): void {
|
||||
|
||||
@@ -31,17 +31,15 @@
|
||||
<a [routerLink]="employee.id" class="employees-list__link">{{ employee.fullName }}</a>
|
||||
</th>
|
||||
<td>
|
||||
<ng-container *ngIf="employee.tjanster.length">
|
||||
<ng-container *ngIf="employee.tjanster.length; else emptyText">
|
||||
{{ employee.tjanster[0] }}<ng-container *ngIf="employee.tjanster.length > 1">
|
||||
(+{{employee.tjanster.length - 1}})</ng-container
|
||||
>
|
||||
</ng-container>
|
||||
</td>
|
||||
<td>
|
||||
<ng-container *ngIf="employee.utforandeVerksamheter.length">
|
||||
{{ employee.utforandeVerksamheter[0]['namn'] }}<ng-container
|
||||
*ngIf="employee.utforandeVerksamheter.length > 1"
|
||||
>
|
||||
<ng-container *ngIf="employee.utforandeVerksamheter.length; else emptyText">
|
||||
{{ employee.utforandeVerksamheter[0] }}<ng-container *ngIf="employee.utforandeVerksamheter.length > 1">
|
||||
(+{{employee.utforandeVerksamheter.length - 1}})</ng-container
|
||||
>
|
||||
</ng-container>
|
||||
@@ -87,3 +85,8 @@
|
||||
>
|
||||
</digi-navigation-pagination>
|
||||
</div>
|
||||
|
||||
<ng-template #emptyText>
|
||||
<span aria-hidden="true">-</span>
|
||||
<span class="msfa__a11y-sr-only">Info saknas</span>
|
||||
</ng-template>
|
||||
|
||||
@@ -203,9 +203,7 @@
|
||||
</dd>
|
||||
</ng-template>
|
||||
<ng-template #emptyText>
|
||||
<p>
|
||||
<span aria-hidden="true">-</span>
|
||||
<span class="msfa__a11y-sr-only">Info saknas</span>
|
||||
</p>
|
||||
<span aria-hidden="true">-</span>
|
||||
<span class="msfa__a11y-sr-only">Info saknas</span>
|
||||
</ng-template>
|
||||
</msfa-layout>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
export enum RoleEnum {
|
||||
OrganizationUser = 'OrganizationUser', // Default role
|
||||
ReportAndPlanning = 'ReportAndPlanning',
|
||||
ReceiveDeltagare = 'ReceiveDeltagare',
|
||||
AuthAdmin = 'AuthAdmin',
|
||||
ContactPerson = 'ContactPerson',
|
||||
MSFA_AuthAdmin = 'MSFA_AuthAdmin',
|
||||
MSFA_ReceiveDeltagare = 'MSFA_ReceiveDeltagare',
|
||||
MSFA_ReportAndPlanning = 'MSFA_ReportAndPlanning',
|
||||
MSFA_Standard = 'MSFA_Standard', // Default role
|
||||
}
|
||||
|
||||
@@ -6,33 +6,28 @@ export interface Role {
|
||||
}
|
||||
|
||||
export function mapRoleResponseToRoleObject(type: string): Role {
|
||||
switch(type) {
|
||||
case 'OrganizationUser':
|
||||
switch (type) {
|
||||
case 'MSFA_Standard':
|
||||
return {
|
||||
name: 'Basanvändare',
|
||||
type: RoleEnum[type]
|
||||
name: 'Basanvändare',
|
||||
type: RoleEnum[type],
|
||||
};
|
||||
case 'ReportAndPlanning':
|
||||
case 'MSFA_ReportAndPlanning':
|
||||
return {
|
||||
name: 'Rapportering, planering och information om deltagare',
|
||||
type: RoleEnum[type]
|
||||
name: 'Rapportering, planering och information om deltagare',
|
||||
type: RoleEnum[type],
|
||||
};
|
||||
case 'ReceiveDeltagare':
|
||||
case 'MSFA_ReceiveDeltagare':
|
||||
return {
|
||||
name: 'Ta emot deltagare',
|
||||
type: RoleEnum[RoleEnum[type]]
|
||||
type: RoleEnum[RoleEnum[type]],
|
||||
};
|
||||
case 'AuthAdmin':
|
||||
case 'MSFA_AuthAdmin':
|
||||
return {
|
||||
name: 'Administrera behörigheter',
|
||||
type: RoleEnum[RoleEnum[type]]
|
||||
};
|
||||
case 'ContactPerson':
|
||||
return {
|
||||
name: 'Kontaktperson',
|
||||
type: RoleEnum[type]
|
||||
name: 'Administrera behörigheter',
|
||||
type: RoleEnum[RoleEnum[type]],
|
||||
};
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,12 +50,16 @@ export class AvropApiService {
|
||||
|
||||
this._lockedAvropSnapshot$.next(avrop);
|
||||
|
||||
return this.httpClient.get<{ data: HandledareResponse[] }>(`${this._apiBaseUrl}/handledare`).pipe(
|
||||
map(({ data }) => data.map(handledare => mapHandledareResponseToHandledare(handledare))),
|
||||
tap(handledare => {
|
||||
this._availableHandledareSnapshot$.next(handledare);
|
||||
return this.httpClient
|
||||
.get<{ data: HandledareResponse[] }>(`${this._apiBaseUrl}/handledare`, {
|
||||
params: { avropIds: avrop.map(a => a.id) },
|
||||
})
|
||||
);
|
||||
.pipe(
|
||||
map(({ data }) => data.map(handledare => mapHandledareResponseToHandledare(handledare))),
|
||||
tap(handledare => {
|
||||
this._availableHandledareSnapshot$.next(handledare);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
fetchAvailableTjanster$(params: Params): Observable<AvropTjanst[]> {
|
||||
|
||||
@@ -190,15 +190,17 @@ export class EmployeeService extends UnsubscribeDirective {
|
||||
}
|
||||
|
||||
public updateEmployeeData(employeeData: Employee): Observable<string> {
|
||||
return /* this.httpClient.put<{ id: string }>(`${this._apiBaseUrl}/${employeeData.id}`,
|
||||
return; /* this.httpClient.put<{ id: string }>(`${this._apiBaseUrl}/${employeeData.id}`,
|
||||
mapEmployeeToRequestData(employeeData), API_HEADERS).pipe(
|
||||
map(({ id }) => id),
|
||||
catchError(error => throwError({ message: error as string, type: ErrorType.API }))
|
||||
); */
|
||||
}
|
||||
|
||||
public getAllRoles(): Role[] {
|
||||
const allAuths: string[] = Object.keys(RoleEnum).filter((item) => {return isNaN(Number(item))});
|
||||
return allAuths.map(key => mapRoleResponseToRoleObject(key));
|
||||
public get allRoles(): Role[] {
|
||||
const allAuths: string[] = Object.keys(RoleEnum).filter(item => {
|
||||
return isNaN(Number(item));
|
||||
});
|
||||
return allAuths.map(key => mapRoleResponseToRoleObject(key));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user