From b9da373c8d01a5e07a410c8b3ba34a42ca673fd9 Mon Sep 17 00:00:00 2001 From: Niggl Date: Fri, 10 Jul 2020 21:30:38 +0200 Subject: [PATCH] Migrated "applyFilterParameters" and related code to the table-component base --- .../tabels/sprint/sprint-table.component.ts | 7 ++----- .../components/tabels/table-component.base.ts | 16 ++++++++++++++++ .../tabels/task/task-table.component.ts | 19 ++----------------- .../userstory-inner-table.component.ts | 11 ++--------- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/src/app/components/tabels/sprint/sprint-table.component.ts b/src/app/components/tabels/sprint/sprint-table.component.ts index be40019..6726fcd 100644 --- a/src/app/components/tabels/sprint/sprint-table.component.ts +++ b/src/app/components/tabels/sprint/sprint-table.component.ts @@ -11,14 +11,11 @@ import { SprintFormComponent } from '../../sprint-form/sprint-form.component'; styleUrls: ['./sprint-table.component.css'] }) export class SprintTableComponent extends TableComponentBase { - public highlightId: number; - - constructor( private backendService: BackendService, private modalService: NgbModal, - private route: ActivatedRoute, private router: Router + protected route: ActivatedRoute, private router: Router ) { - super(); + super(route); backendService.getSprints().subscribe(response => { if (response.status > 399) { diff --git a/src/app/components/tabels/table-component.base.ts b/src/app/components/tabels/table-component.base.ts index 8764ff3..8ec4ae7 100644 --- a/src/app/components/tabels/table-component.base.ts +++ b/src/app/components/tabels/table-component.base.ts @@ -1,10 +1,26 @@ import {sortByNumberAscending, sortByStringAscending, sortByDateAscending} from '../../services/sorting.service'; import {Priority, ScrumTask, ScrumUserstory, ScrumSprint} from '../../services/backend.service'; +import { ActivatedRoute, ParamMap } from '@angular/router'; export abstract class TableComponentBase { public sortBy: string; public sortDescending = false; public items: T[] = []; + public highlightId: number; + protected route: ActivatedRoute; + + public constructor(route: ActivatedRoute) + { + this.route = route; + this.applyFilterParameters(this.route.snapshot.paramMap); + this.route.paramMap.subscribe((map) => this.applyFilterParameters(map)); + } + + private applyFilterParameters(params: ParamMap) { + if (params.has('id')) { + this.highlightId = parseInt(params.get('id')); + } + } protected doNumericSort(by: string, key: (item: T) => number) { if (this.sortBy === by) { diff --git a/src/app/components/tabels/task/task-table.component.ts b/src/app/components/tabels/task/task-table.component.ts index a9d9d04..c864a7d 100644 --- a/src/app/components/tabels/task/task-table.component.ts +++ b/src/app/components/tabels/task/task-table.component.ts @@ -21,7 +21,6 @@ import { NONE_TYPE } from '@angular/compiler'; export class TaskTableComponent extends TableComponentBase { public filterUserstoryId: number | null = null; public filterPriority: string | null = null; - public highlightId: number; public status: ScrumStatus[] = []; public users: ScrumUser[] = []; public categories: ScrumCategory[] = []; @@ -29,13 +28,10 @@ export class TaskTableComponent extends TableComponentBase { constructor( private backendService: BackendService, private modalService: NgbModal, - private route: ActivatedRoute, + protected route: ActivatedRoute, private router: Router ) { - super(); - - this.applyFilterParameters(route.snapshot.paramMap); - route.paramMap.subscribe((map) => this.applyFilterParameters(map)); + super(route); backendService.getTasks().subscribe((response) => { if (response.status > 399) { @@ -114,17 +110,6 @@ export class TaskTableComponent extends TableComponentBase { this.items.splice(index, 1); } } - - private applyFilterParameters(params: ParamMap) { - if (params.has('userstoryId')) { - this.filterUserstoryId = parseInt(params.get('userstoryId')); - } else { - this.filterUserstoryId = null; - } - if (params.has('id')) { - this.highlightId = parseInt(params.get('id')); - } - } //#endregion taskTableFunctions //#region sorters diff --git a/src/app/components/tabels/userstory-inner-table/userstory-inner-table.component.ts b/src/app/components/tabels/userstory-inner-table/userstory-inner-table.component.ts index e0d8700..1dd157c 100644 --- a/src/app/components/tabels/userstory-inner-table/userstory-inner-table.component.ts +++ b/src/app/components/tabels/userstory-inner-table/userstory-inner-table.component.ts @@ -20,7 +20,6 @@ import { ActivatedRoute, ParamMap, Router } from '@angular/router'; export class UserstoryInnerTableComponent extends TableComponentBase { public tasks: ScrumTask[] = []; public filterPriority: string | null = null; - public highlightId: number; public status: ScrumStatus[] = []; public categories: ScrumCategory[] = []; @@ -29,9 +28,9 @@ export class UserstoryInnerTableComponent extends TableComponentBase { if (response.status > 399) { @@ -91,12 +90,6 @@ export class UserstoryInnerTableComponent extends TableComponentBase { if (response.status > 399) {