Merge pull request #74 in TEA/mina-sidor-fa-web from feature/TV-389 to develop

Squashed commit of the following:

commit a865f5452ae9cb5eab0b55080dd7e7ec43d9ed61
Merge: b4e5a9e d9938cc
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Fri Sep 3 10:25:38 2021 +0200

    Merge branch 'develop-remote' into feature/TV-389

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

commit b4e5a9ef26f99d0e0e8b2f8104f5e432da4bc82e
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Fri Sep 3 02:43:51 2021 +0200

    TV-389 removed some references to inputs that are no longer existing.

commit 04c1527a994d9c5479ebcd523261dd331beb093e
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Thu Sep 2 15:17:24 2021 +0200

    TV-389 adjusted spelling error

commit 3ea3faf1b13fafc16d4a97a6fc748dc790d1bc41
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Thu Sep 2 15:13:57 2021 +0200

    TV-389 have adjusted a bunch of issues after feedback in PR

commit 9ced585dd830c19006ead3bfe5a52ae1467189ef
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Thu Sep 2 10:55:55 2021 +0200

    Merge branch 'develop-remote' into feature/TV-389

    # Conflicts:
    #	apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html
    #	apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.ts

commit eb873ecb2125574c624523818f0441acd0a1bb61
Merge: 8f896cb b80bf22
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Thu Sep 2 10:35:44 2021 +0200

    Merge branch 'develop-remote' into feature/TV-389

commit 8f896cbf156ea65fed95a19d17ef485d06046ed0
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Wed Sep 1 18:19:16 2021 +0200

    TV-389 making sure we're getting data of the right format

commit 801e0298781815c9b4ca78f900cda17fbf33ffb5
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Wed Sep 1 09:09:51 2021 +0200

    TV-389 fixed old function name

commit 145e312d68e9a067377b228a718386dcf419ef49
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Wed Sep 1 08:52:54 2021 +0200

    TV-389 restored file

commit b1cf3b44bae548979fd090fca4e2194ae9c586c1
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Wed Sep 1 08:47:30 2021 +0200

    TV-389 cleaned up some console logs for testing and renamed a function

commit e9d79205902771eafeaf0fbe3bdb63e7cceeb0d5
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Wed Sep 1 08:30:08 2021 +0200

    TV-389 have added a bunch of tests and refactored some stuff on the edit employee forms into a service.

commit 185b4597c303ff20ae079efdf9247a53615b627e
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 15:00:50 2021 +0200

    TV-389 made a first working version of the tree node selector

commit ddff1ed3a05434a42a81d4dabfd8b2f2ff3c468e
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 13:01:49 2021 +0200

    TV-389 adjustments after checking out integration against API.

commit 92117d54b248f00a8b0619c3200d20a06510d9ba
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 12:21:05 2021 +0200

    TV-389 made various changes in prepertion for integration against the api..

commit 2f15741eb47335cfe4e8c47dc779642a8ab9893b
Merge: 062f42b 02cf0f6
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 08:13:21 2021 +0200

    Merge branch 'develop-remote' into feature/TV-389

commit 062f42b4d89976685fce463eec4f8deff399fd75
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 08:12:37 2021 +0200

    TV-389 preparing for integration with api..

commit 674b636e4b32aa391e1e14763c5781fa25bc31fb
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 07:51:12 2021 +0200

    TV-389 fixed some custom validators for utforandeverksamheter..

commit 07256654273e499b41cbb6b06e26b9ca4f7627c5
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 05:39:27 2021 +0200

    TV-389 removed useless z-index

commit 36b6ac2f6f846f5e88b393650c6d66821b600933
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 05:32:16 2021 +0200

    TV-389 added styling to button for opening the panel.

commit 75ea6b7196e6ab69b0ec4ce103214dc742ea5252
Author: arbetsformedlingen_garcn <christian.gardebrink@arbetsformedlingen.se>
Date:   Tue Aug 31 03:23:10 2021 +0200

    TV-389 minor adjustments of panel.

... and 13 more commits
This commit is contained in:
Christian Gårdebrink
2021-09-03 10:36:34 +02:00
parent d9938cc770
commit 773d8f33ab
36 changed files with 2701 additions and 201 deletions

View File

@@ -0,0 +1,20 @@
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { TestBed } from '@angular/core/testing';
import { UtforandeVerksamheterService } from './utforande-verksamheter.service';
describe('UtforandeVerksamheterService', () => {
let service: UtforandeVerksamheterService;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [UtforandeVerksamheterService],
});
service = TestBed.inject(UtforandeVerksamheterService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

View File

@@ -0,0 +1,112 @@
import { HttpClient, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '@msfa-environment';
import {
TreeNode,
TreeNodesSelectorService,
} from '@msfa-shared/components/tree-nodes-selector/services/tree-nodes-selector.service';
import { Observable, of } from 'rxjs';
export interface UtforandeVerksamhetAdress {
id: number;
namn: string;
}
export interface UtforandeVerksamhet {
id: number;
name: string;
adresser: Array<UtforandeVerksamhetAdress>;
}
@Injectable({
providedIn: 'root',
})
export class UtforandeVerksamheterService {
private readonly apiBaseUrl = `${environment.api.url}/utforandeverksamheter`;
constructor(private treeNodesSelectorService: TreeNodesSelectorService, private httpClient: HttpClient) {}
getUtforandeVerksamheter(tjanstIds: Array<number>): Observable<Array<UtforandeVerksamhet>> {
let params = new HttpParams();
let i: number;
if (!tjanstIds) {
return of<Array<UtforandeVerksamhet>>([]);
}
for (i = 0; i < tjanstIds.length; i++) {
params = params.append('tjansteIds', tjanstIds[i].toString());
}
return this.httpClient.get<Array<UtforandeVerksamhet>>(`${this.apiBaseUrl}`, { params });
}
getTreeNodeDataFromUtforandeVerksamheter(utforandeVerksamhetList: Array<UtforandeVerksamhet>): TreeNode | null {
let treeNode: TreeNode | null = null;
if (!utforandeVerksamhetList || utforandeVerksamhetList.length === 0 || !Array.isArray(utforandeVerksamhetList)) {
return treeNode;
}
treeNode = {
label: 'Utförande Verksamheter',
grandChildrenItemType: 'Adresser',
grandChildrenInfo: 'Här kan du välja adresser när du valt en verksamhet till vänster.',
isSelected: false,
value: null,
childItemType: 'Utförande verksamheter',
children: utforandeVerksamhetList.map(
(utforandeVerksamhet: UtforandeVerksamhet): TreeNode => {
const utforandeVerksahmetTreeNode: TreeNode = {
label: utforandeVerksamhet.name,
toggleAllChildrenLabel: 'Välj alla adresser',
isSelected: false,
value: utforandeVerksamhet,
childItemType: 'Adresser',
children: utforandeVerksamhet.adresser
? utforandeVerksamhet.adresser.map(adress => {
return { label: adress.namn, isSelected: false, value: adress };
})
: [],
};
return utforandeVerksahmetTreeNode;
}
),
};
return treeNode;
}
getSelectedUtforandeVerksamheterFromTreeNode(treeNode: TreeNode): Array<UtforandeVerksamhet> {
let utforandeVerksamhetList: Array<UtforandeVerksamhet> = [];
if (!treeNode || !treeNode.children) {
return utforandeVerksamhetList;
}
utforandeVerksamhetList = this.treeNodesSelectorService
.getTreeNodeFilteredBySelectedLeafOrDecsendants(treeNode)
?.children?.map(utforandeVerksamhetNode => {
const originalUtforandeVerksamhet = utforandeVerksamhetNode.value as UtforandeVerksamhet;
const utforandeVerksamhet: UtforandeVerksamhet = {
name: originalUtforandeVerksamhet?.name,
id: originalUtforandeVerksamhet?.id,
adresser: utforandeVerksamhetNode.children.map(adressNode => {
return adressNode.value as UtforandeVerksamhetAdress;
}),
};
return utforandeVerksamhet;
});
return utforandeVerksamhetList ? utforandeVerksamhetList : [];
}
hasSelectedUtforandeVerksamhet = (treeNode: TreeNode): boolean => {
if (!treeNode || !treeNode.children || treeNode.children.length === 0) {
return false;
}
return treeNode.children.some(childNode => this.treeNodesSelectorService.hasSelectedLeafNodeDescendant(childNode));
};
}