Merge pull request #76 in TEA/mina-sidor-fa-web from bugs/TV-520 to develop

Squashed commit of the following:

commit 0b09c15d23fb2bfeb54cbf9e9508a65c782ba230
Merge: 32383b6 9a73ffe
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Sep 7 10:09:02 2021 +0200

    Merge branch 'develop-remote' into bugs/TV-520

commit 32383b6d1f2b3611cb99c7b05c66b46b561175fe
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 12:57:24 2021 +0200

    TV-520 fixed failing test after merge from develop

commit 29fff4e9dd055dd0da2ba21e8b95a9c4ae9714b4
Merge: b28ef1c db03d97
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 12:46:50 2021 +0200

    Merge branch 'develop-remote' into bugs/TV-520

commit b28ef1c1e8645452ab43f1dce8732f69ca73781c
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 10:30:13 2021 +0200

    TV-520 removed unnecessary reference

commit 17d39ec2d396aa4eb60d739a2a04b6e64d2fb5df
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 09:55:23 2021 +0200

    TV-520 varied fixes for template errors..

commit 8196d0305b224475786843bd149d4e13cc3039aa
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 09:06:56 2021 +0200

    Merge branch 'develop-remote' into bugs/TV-520

    # Conflicts:
    #	apps/mina-sidor-fa/src/app/pages/administration/administration-routing.module.ts

commit 8911fdd694d227b901ad492679ed2ed0d044beeb
Merge: 31cd47f ec7b4fc
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 08:56:53 2021 +0200

    Merge branch 'develop-remote' into bugs/TV-520

commit 31cd47ff2e13d090dd3489e21f18fcf292600cbd
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Mon Sep 6 08:52:06 2021 +0200

    TV-520 lade in en funktion i layout komponenten som i stort sett alla sidor verkar använda sig av där title sätts till vad man lagt in för info i data objektet för den aktuella routen.
This commit is contained in:
Christian Gårdebrink
2021-09-07 12:59:54 +02:00
parent 9a73ffeee3
commit cac0515c9c
16 changed files with 68 additions and 12 deletions

View File

@@ -9,18 +9,22 @@ const routes: Routes = [
},
{
path: 'personal',
data: { title: 'Personalinformation' },
loadChildren: () => import('./pages/employees/employees.module').then(m => m.EmployeesModule),
},
{
path: 'personal/:employeeId',
data: { title: 'Personalinformation' },
loadChildren: () => import('./pages/employee-card/employee-card.module').then(m => m.EmployeeCardModule),
},
{
path: 'skapa-personalkonto',
data: { title: 'Skapa personalkonto' },
loadChildren: () => import('./pages/employee-invite/employee-invite.module').then(m => m.EmployeeInviteModule),
},
{
path: 'redigera-personalkonto/:employeeId',
data: { title: 'Redigera personalkonto' },
loadChildren: () => import('./pages/employee-form/employee-form.module').then(m => m.EmployeeFormModule),
},
];

View File

@@ -59,7 +59,7 @@
>
<digi-ng-layout-expansion-panel *ngIf="utforandeverksamhet.adresser.length > 0">
<span data-slot-trigger>
{{ accordionExpanded ? 'Dölj' : 'Visa' }} {{utforandeverksamhet.adresser.length}}
<!-- vad refererar accordionExpanded till här?? Templaten bygger inte om det inte finns en definition av variabeln.. {{ accordionExpanded ? 'Dölj' : 'Visa' }} {{utforandeverksamhet.adresser.length}} -->
{{utforandeverksamhet.adresser.length === 1 ? 'adress' : 'adresser'}}
</span>
<ul class="employee-card__utforandeverksamheter-address-list">

View File

@@ -90,6 +90,12 @@
></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>
<div class="edit-employee-form__footer">

View File

@@ -198,6 +198,8 @@ export class EditEmployeeFormComponent implements OnInit, OnChanges {
return;
}
this.editEmployeeFormGroup.markAllAsTouched();
if (this.editEmployeeFormGroup.invalid || this.editEmployeeFormGroup.pristine) {
return;
}

View File

@@ -48,7 +48,6 @@
[currentEmployeeRoles]="currentEmployeeRoles$ | async"
[availableTjanster]="tjanster$ | async"
[currentEmployeeTjanster]="employee.tjanster"
[selectedTjanster]="selectedServices$ | async"
[availableUtforandeVerksamheter]="availableUtforandeVerksamheter$ | async"
(tjansterSelected)="setupAvailableUtforandeVerksamheter($event)"
(formSubmitted)="updateEmployee($event)"

View File

@@ -22,7 +22,7 @@ import { EditEmployeeFormData } from './edit-employee-form/edit-employee-form.co
export class EmployeeFormComponent implements OnInit {
employee$ = this.employeeService.employee$;
tjanster$: Observable<Tjanst[]> = this.tjanstService.tjanster$;
currentEmployeeRoles$: Observable<Role[] | undefined | null> = null;
currentEmployeeRoles$: Observable<string[] | undefined | null> = null;
availableUtforandeVerksamheter$: Observable<Array<UtforandeVerksamhet>> | null = null;
selectableRoles: Role[] = this.employeeService.allRoles;
@@ -38,7 +38,7 @@ export class EmployeeFormComponent implements OnInit {
this.employeeService.setCurrentEmployeeId(this.activatedRoute.snapshot.params['employeeId']);
this.currentEmployeeRoles$ = this.employee$.pipe(
map(employee => employee?.roles?.map(role => mapRoleResponseToRoleObject(role)))
map(employee => employee?.roles?.map(role => mapRoleResponseToRoleObject(role)?.type))
);
}

View File

@@ -3,6 +3,7 @@ import { 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',
@@ -47,7 +48,10 @@ export class EmployeeFormService {
this.getFormControlName(role),
new FormControl(this.isSelectedRole(role, selectedRoles), []),
])
)
),
{
validators: [EmployeeValidator.HasSelectedAtLeastOneRole(roles.map(role => this.getFormControlName(role)))],
}
);
}

View File

@@ -1,4 +1,5 @@
import { DigiNgFormInputModule } from '@af/digi-ng/_form/form-input';
import { DigiNgFormTextareaModule } from '@af/digi-ng/_form/form-textarea';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
@@ -14,7 +15,7 @@ describe('EmployeeInviteComponent', () => {
await TestBed.configureTestingModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [EmployeeInviteComponent],
imports: [ReactiveFormsModule, DigiNgFormInputModule, HttpClientTestingModule],
imports: [ReactiveFormsModule, DigiNgFormInputModule, DigiNgFormTextareaModule, HttpClientTestingModule],
}).compileComponents();
});

View File

@@ -40,7 +40,6 @@
[employees]="employeesData.data"
[paginationMeta]="employeesData.meta"
[sort]="sort$ | async"
[order]="order$ | async"
(sorted)="handleEmployeesSort($event)"
(paginated)="setNewPage($event)"
(deleteEmployee)="setEmployeeToDelete($event)"