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