Migrated "applyFilterParameters" and related code to the table-component base

This commit is contained in:
Nicolai Ort 2020-07-10 21:30:38 +02:00
parent 83be7aeb1c
commit b9da373c8d
4 changed files with 22 additions and 31 deletions

View File

@ -11,14 +11,11 @@ import { SprintFormComponent } from '../../sprint-form/sprint-form.component';
styleUrls: ['./sprint-table.component.css']
})
export class SprintTableComponent extends TableComponentBase<ScrumSprint> {
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) {

View File

@ -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<T extends ScrumTask | ScrumUserstory | ScrumSprint> {
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) {

View File

@ -21,7 +21,6 @@ import { NONE_TYPE } from '@angular/compiler';
export class TaskTableComponent extends TableComponentBase<ScrumTask> {
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<ScrumTask> {
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<ScrumTask> {
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

View File

@ -20,7 +20,6 @@ import { ActivatedRoute, ParamMap, Router } from '@angular/router';
export class UserstoryInnerTableComponent extends TableComponentBase<ScrumUserstory> {
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<ScrumUserst
constructor(
private backendService: BackendService,
private modalService: NgbModal,
private route: ActivatedRoute,
protected route: ActivatedRoute,
) {
super();
super(route);
this.items = this.storys;
backendService.getUserstories().subscribe((response) => {
if (response.status > 399) {
@ -91,12 +90,6 @@ export class UserstoryInnerTableComponent extends TableComponentBase<ScrumUserst
//#endregion getters
//#region userstoryTableFunctions
private applyFilterParameters(params: ParamMap) {
if (params.has('id')) {
this.highlightId = parseInt(params.get('id'));
}
}
public deleteUserstory(userstory: ScrumUserstory) {
this.backendService.deleteUserstory(userstory).subscribe((response) => {
if (response.status > 399) {