Merge pull request #74 in TEA/mina-sidor-fa-web from feature/TV-389 to develop
Squashed commit of the following: commit a865f5452ae9cb5eab0b55080dd7e7ec43d9ed61 Merge: b4e5a9ed9938ccAuthor: 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: 8f896cbb80bf22Author: 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: 062f42b02cf0f6Author: 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:
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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));
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user