TSK-1580: Load workbasket of current user in workplace after login
This commit is contained in:
parent
ff2d578780
commit
461960bb02
|
|
@ -9,6 +9,9 @@ import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
|
||||||
import { WorkplaceService } from 'app/workplace/services/workplace.service';
|
import { WorkplaceService } from 'app/workplace/services/workplace.service';
|
||||||
import { ObjectReference } from 'app/workplace/models/object-reference';
|
import { ObjectReference } from 'app/workplace/models/object-reference';
|
||||||
import { TaskQueryFilterParameter } from '../../../shared/models/task-query-filter-parameter';
|
import { TaskQueryFilterParameter } from '../../../shared/models/task-query-filter-parameter';
|
||||||
|
import { Subject } from 'rxjs';
|
||||||
|
import { takeUntil } from 'rxjs/operators';
|
||||||
|
import { TaskanaEngineService } from '../../../shared/services/taskana-engine/taskana-engine.service';
|
||||||
|
|
||||||
export enum Search {
|
export enum Search {
|
||||||
byWorkbasket = 'workbasket',
|
byWorkbasket = 'workbasket',
|
||||||
|
|
@ -45,7 +48,10 @@ export class TaskListToolbarComponent implements OnInit {
|
||||||
resultType = '';
|
resultType = '';
|
||||||
resultValue = '';
|
resultValue = '';
|
||||||
|
|
||||||
|
destroy$ = new Subject<void>();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
private taskanaEngineService: TaskanaEngineService,
|
||||||
private taskService: TaskService,
|
private taskService: TaskService,
|
||||||
private workbasketService: WorkbasketService,
|
private workbasketService: WorkbasketService,
|
||||||
private workplaceService: WorkplaceService,
|
private workplaceService: WorkplaceService,
|
||||||
|
|
@ -54,13 +60,35 @@ export class TaskListToolbarComponent implements OnInit {
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.workbasketService.getAllWorkBaskets().subscribe((workbaskets) => {
|
this.workbasketService
|
||||||
|
.getAllWorkBaskets()
|
||||||
|
.pipe(takeUntil(this.destroy$))
|
||||||
|
.subscribe((workbaskets) => {
|
||||||
this.workbaskets = workbaskets.workbaskets;
|
this.workbaskets = workbaskets.workbaskets;
|
||||||
this.workbaskets.forEach((workbasket) => {
|
this.workbaskets.forEach((workbasket) => {
|
||||||
this.workbasketNames.push(workbasket.name);
|
this.workbasketNames.push(workbasket.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// get workbasket of current user
|
||||||
|
const user = this.taskanaEngineService.currentUserInfo;
|
||||||
|
const filteredWorkbasketsByUser = this.workbaskets.filter(
|
||||||
|
(workbasket) => workbasket.key == user.userId || workbasket.key == user.userId.toUpperCase()
|
||||||
|
);
|
||||||
|
if (filteredWorkbasketsByUser.length > 0) {
|
||||||
|
const workbasketOfUser = filteredWorkbasketsByUser[0];
|
||||||
|
this.resultName = workbasketOfUser.name;
|
||||||
|
this.resultId = workbasketOfUser.workbasketId;
|
||||||
|
this.workplaceService.selectWorkbasket(workbasketOfUser);
|
||||||
|
this.currentBasket = workbasketOfUser;
|
||||||
|
this.workbasketSelected = true;
|
||||||
|
this.searched = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
this.taskService.getSelectedTask().subscribe((t) => {
|
|
||||||
|
this.taskService
|
||||||
|
.getSelectedTask()
|
||||||
|
.pipe(takeUntil(this.destroy$))
|
||||||
|
.subscribe((t) => {
|
||||||
if (!this.resultName) {
|
if (!this.resultName) {
|
||||||
this.resultName = t.workbasketSummary.name;
|
this.resultName = t.workbasketSummary.name;
|
||||||
this.resultId = t.workbasketSummary.workbasketId;
|
this.resultId = t.workbasketSummary.workbasketId;
|
||||||
|
|
@ -142,4 +170,9 @@ export class TaskListToolbarComponent implements OnInit {
|
||||||
this.router.navigate([''], navigationExtras);
|
this.router.navigate([''], navigationExtras);
|
||||||
this.searchBasket();
|
this.searchBasket();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.destroy$.next();
|
||||||
|
this.destroy$.complete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue