Merge branch 'develop' of ssh://bitbucket.arbetsformedlingen.se:7999/tea/dafa-web-monorepo into develop

This commit is contained in:
Daniel Appelgren
2021-09-08 12:05:53 +02:00
8 changed files with 72 additions and 51 deletions

View File

@@ -91,12 +91,6 @@
></digi-ng-form-checkbox>
</li>
</ul>
<digi-form-validation-message
*ngIf="rolesFormGroup.invalid && rolesFormGroup.errors.noRoleSelected && rolesFormGroup.touched"
af-variation="error"
>
Du måste välja minst en behörighet
</digi-form-validation-message>
</fieldset>
<digi-notification-alert
@@ -123,6 +117,22 @@
</form>
</digi-typography>
<digi-ng-dialog
[afActive]="displayEditWithoutRolesDialog"
(afOnPrimaryClick)="onFormSubmitted(true)"
(afOnSecondaryClick)="abortFormSubmit()"
(afOnInactive)="abortFormSubmit()"
afHeading="Är du säker"
afHeadingLevel="h2"
afPrimaryButtonText="Ja, spara ändå"
afSecondaryButtonText="Nej, gå tillbaka"
>
<p>
Inga behörigheter har valts, det betyder att personalen inte kommer kunna utföra några arbetsuppgifter i systemet.
Är du säker att du vill spara?
</p>
</digi-ng-dialog>
<digi-ng-dialog
id="roles-dialog"
[afActive]="displayRolesDialog"

View File

@@ -11,6 +11,7 @@ import {
SimpleChanges,
} from '@angular/core';
import { AbstractControl, FormControl, FormGroup } from '@angular/forms';
import { RoleEnum } from '@msfa-enums/role.enum';
import { EmployeeEditRequest } from '@msfa-models/api/employee-edit.request.model';
import { Employee } from '@msfa-models/employee.model';
import { CustomError } from '@msfa-models/error/custom-error';
@@ -63,6 +64,7 @@ export class EditEmployeeFormComponent implements OnInit, OnChanges {
readonly toggleAllUtforandeVerksamhetFormControlName = 'allaUtforandeVerksamheter';
editEmployeeFormGroup: FormGroup | null = null;
displayEditWithoutRolesDialog = false;
displayRolesDialog = false;
@@ -167,7 +169,11 @@ export class EditEmployeeFormComponent implements OnInit, OnChanges {
return this.employeeFormService.getFormControlName(role);
}
onFormSubmitted(): void {
abortFormSubmit(): void {
this.displayEditWithoutRolesDialog = false;
}
onFormSubmitted(saveWithoutRoles = false): void {
if (!this.editEmployeeFormGroup) {
return;
}
@@ -178,12 +184,23 @@ export class EditEmployeeFormComponent implements OnInit, OnChanges {
return;
}
const roles = this.employeeFormService.getRolesFromFormGroup(this.rolesFormGroup, this.availableRoles);
if (!roles.length && !saveWithoutRoles) {
this.displayEditWithoutRolesDialog = true;
return;
}
this.formSubmitted.emit({
email: this.emailFormControl?.value as string,
tjanstIds: this.employeeFormService
.getSelectedTjanster(this.availableTjanster, +this.tjansterFormControl?.value)
.map(tjanst => tjanst.tjanstId),
roles: this.employeeFormService.getRolesFromFormGroup(this.rolesFormGroup, this.availableRoles),
roles: [
...new Set([
...this.employeeFormService.getRolesFromFormGroup(this.rolesFormGroup, this.availableRoles),
RoleEnum.MSFA_Standard,
]),
],
adressIds: this.toggleAllUtforandeVerksamhetFormControl.value
? []
: this.utforandeVerksamheterService.getSelectedAdressIdsFromTreeNode(

View File

@@ -20,10 +20,6 @@
<dt>Förnamn</dt>
<dd>{{employee.firstName}}</dd>
</dl>
<dl>
<dt>Förnamn</dt>
<dd>{{employee.firstName}}</dd>
</dl>
<dl>
<dt>Efternamn</dt>
<dd>{{employee.lastName}}</dd>

View File

@@ -3,7 +3,6 @@ import { AbstractControl, FormControl, FormGroup } from '@angular/forms';
import { RoleEnum } from '@msfa-enums/role.enum';
import { Role } from '@msfa-models/role.model';
import { Tjanst } from '@msfa-models/tjanst.model';
import { EmployeeValidator } from '@msfa-utils/validators/employee.validator';
@Injectable({
providedIn: 'root',
@@ -48,10 +47,7 @@ export class EmployeeFormService {
this.getFormControlName(role),
new FormControl(this.isSelectedRole(role, selectedRoles), []),
])
),
{
validators: [EmployeeValidator.HasSelectedAtLeastOneRole(roles.map(role => this.getFormControlName(role)))],
}
)
);
}

View File

@@ -3,24 +3,24 @@
<section class="employee-invite">
<header class="employee-invite__header">
<h1>Skapa personalkonto</h1>
<p>Här kan du skicka ett mail med inbjudningslänk till en ny personal.</p>
<p>Här kan du skicka en inbjudningslänk via e-post för att skapa nya personalkonton.</p>
</header>
<form [formGroup]="formGroup" (ngSubmit)="submitForm()">
<div class="employee-invite__description">
<h2>Skicka en inbjudningslänk</h2>
<ol>
<li>Skriv in personalens mailadress och klicka på "Skicka inbjudningslänk".</li>
<li>Skriv in personalens e-postadresser i fältet och klicka på "Skicka inbjudningslänk".</li>
<li>
Personalen öppnar inbjudningslänken via sin mail och genom identifiering med sitt Bank-ID skapas det nya
Personalen öppnar inbjudningslänken via sin e-post och genom identifiering med Bank-ID skapas det nya
personalkontot.
</li>
<li>
När personalkontot är skapat ser man det i personallistan. Initialt saknar det nya personalkontot
När personalkontot är skapat ser du det i personallistan. Initialt saknar det nya personalkontot
behörigheter.
</li>
<li>
Tilldela personalkontot behörigheter genom att klicka på personalens namn i personallistan. Nu kan
personalen logga in och arbeta.
Tilldela personalkontot behörigheter genom att klicka på personalens namn i personallistan. Välj redigera
i personalkontot och lägg till behörigheter. Nu kan personalen logga in och arbeta.
</li>
</ol>
</div>

View File

@@ -27,7 +27,7 @@
></digi-form-input-search> -->
<digi-form-checkbox
class="employees__only-employees-without-authorization"
af-label="Visa endast personer utan behörigheter"
af-label="Visa endast personal utan behörigheter"
[afChecked]="onlyEmployeesWithoutAuthorization$ | async"
(afOnChange)="setOnlyEmployeesWithoutAuthorization($event.detail.target.checked)"
></digi-form-checkbox>

View File

@@ -6,30 +6,32 @@ export interface Role {
}
export function mapResponseToRoles(types: RoleEnum[] = []): Role[] {
return types.map(type => {
switch (type) {
case 'MSFA_Standard':
return {
name: 'Basanvändare',
type: RoleEnum[type],
};
case 'MSFA_ReportAndPlanning':
return {
name: 'Rapportering, planering och information om deltagare',
type: RoleEnum[type],
};
case 'MSFA_ReceiveDeltagare':
return {
name: 'Ta emot deltagare',
type: RoleEnum[RoleEnum[type]],
};
case 'MSFA_AuthAdmin':
return {
name: 'Administrera behörigheter',
type: RoleEnum[RoleEnum[type]],
};
default:
return;
}
});
return types
.filter(type => type !== RoleEnum.MSFA_Standard)
.map(type => {
switch (type) {
case 'MSFA_Standard':
return {
name: 'Basanvändare',
type: RoleEnum[type],
};
case 'MSFA_ReportAndPlanning':
return {
name: 'Rapportering, planering och information om deltagare',
type: RoleEnum[type],
};
case 'MSFA_ReceiveDeltagare':
return {
name: 'Ta emot deltagare',
type: RoleEnum[RoleEnum[type]],
};
case 'MSFA_AuthAdmin':
return {
name: 'Administrera behörigheter',
type: RoleEnum[RoleEnum[type]],
};
default:
return;
}
});
}

View File

@@ -1,6 +1,6 @@
{
"/api": {
"target": "https://mina-sidor-fa-utv.tocp.arbetsformedlingen.se",
"target": "https://mina-sidor-fa-sys.tocp.arbetsformedlingen.se",
"secure": false,
"changeOrigin": true
}