From 7d78c140332c79707095a4454093ec063adaa9c5 Mon Sep 17 00:00:00 2001 From: Niggl Date: Wed, 15 Jul 2020 15:04:10 +0200 Subject: [PATCH] Fixed prio sort nnot working --- .../tabels/task/task-table.component.ts | 396 +++++++++--------- .../userstory-inner-table.component.ts | 380 ++++++++--------- 2 files changed, 388 insertions(+), 388 deletions(-) diff --git a/src/app/components/tabels/task/task-table.component.ts b/src/app/components/tabels/task/task-table.component.ts index 09e18c0..ae9305d 100644 --- a/src/app/components/tabels/task/task-table.component.ts +++ b/src/app/components/tabels/task/task-table.component.ts @@ -1,198 +1,198 @@ -import { Component } from '@angular/core'; -import { - BackendService, - ScrumTask, - ScrumStatus, - ScrumUser, - ScrumCategory, -} from '../../../services/backend.service'; -import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { TaskFormComponent } from '../../task-form/task-form.component'; -import { TableComponentBase } from '../table-component.base'; -import { ActivatedRoute, ParamMap, Router } from '@angular/router'; -import { getNumberForPriority } from '../../../services/sorting.service'; - -@Component({ - selector: 'app-task-table', - templateUrl: './task-table.component.html', - styleUrls: ['./task-table.component.css'], -}) -export class TaskTableComponent extends TableComponentBase { - public filterUserstoryId: number | null = null; - public filterPriority: string | null = null; - public status: ScrumStatus[] = []; - public users: ScrumUser[] = []; - public categories: ScrumCategory[] = []; - - /** - * Constructor that establishes the initial backend communication. - * @param backendService backendService object for backend communication - * @param modalService angular modalService to handle modals for the Form popups - * @param route route object to extract parameters from - */ - constructor( - private backendService: BackendService, - private modalService: NgbModal, - protected route: ActivatedRoute - ) { - super(route); - - backendService.getTasks().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.items.push(...response.body); - } - }); - backendService.getAllStatus().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.status.push(...response.body); - } - }); - backendService.getUsers().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.users.push(...response.body); - } - }); - backendService.getCategories().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.categories.push(...response.body); - } - }); - } - - //#region getters - /** - * Returns a filtered list of all tasks that have a selected priority or belong to a certain userstory. - * If no pritority or userstory to be filtered for is defined it just returns all tasks. - */ - public get filteredItems() { - return this.items.filter( - (task) => - (this.filterUserstoryId === null || - task.userstoryId === this.filterUserstoryId) && - (this.filterPriority === null || task.priority === this.filterPriority) - ); - } - - /** - * Returns the title of the status that has the provided id. - * @param id id of the searched status - */ - getStatusTitleById(id) { - var status = this.status.find((x) => x.id === id); - if (!status) { - return 'N/A'; - } - return status.title; - } - - /** - * Returns the name of the iser that has the provided id. - * @param id id of the searched user - */ - getUserNameById(id) { - var user = this.users.find((x) => x.id === id); - if (!user) { - return 'N/A'; - } - return user.name; - } - - /** - * Returns the title of the category that has the provided id. - * @param id id of the searched category - */ - getCategoryTitleById(id) { - var category = this.categories.find((x) => x.id === id); - if (!category) { - return 'N/A'; - } - return category.title; - } - - //#endregion getters - - //#region taskTableFunctions - /** - * Deletes a task by calling the delete method via the backendService and removing it from the tabel's items array. - * @param task task that will be deleted - */ - public deleteTask(task: ScrumTask) { - this.backendService.deleteTask(task).subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } - }); - const index = this.items.indexOf(task); - if (index !== -1) { - this.items.splice(index, 1); - } - } - //#endregion taskTableFunctions - - //#region sorters - /** - * Sorts the tabel's items by priority. - */ - sortByPrio() { - this.doNumericSort('priority', (task) => - getNumberForPriority(task.priority) - ); - } - - /** - * Sorts the tabel's items by userstoryId. - */ - sortByTasks() { - this.doNumericSort('userstory', (task) => task.userstoryId); - } - - /** - * Sorts the tabel's items by statusId - */ - sortByStatus() { - this.doNumericSort('statusId', (task) => task.statusId); - } - - /** - * Sorts the tabel's items by assignedtoid - */ - sortByAssigned() { - this.doNumericSort('assignedtoid', (task) => task.assignedtoId); - } - - /** - * Sorts the tabel's items by categoryId - */ - sortByCategory() { - this.doNumericSort('categoryId', (task) => task.categoryId); - } - //#endregion sorters - - //#region modals - /** - * Opens a TaskForm popup for editing a existing task or creating a new one. - * @param editTask optional: task to edit (only needed if a task should be edited, not newly created) - */ - public openTaskForm(editTask?: ScrumTask) { - const modalRef = this.modalService.open(TaskFormComponent, { - backdrop: 'static', - keyboard: true, - size: 'lg', - }); - if (editTask == null) { - modalRef.result.then((result) => { - this.items.push(result); - }); - } - modalRef.componentInstance.task = editTask; - } - //#endregion modals -} +import { Component } from '@angular/core'; +import { + BackendService, + ScrumTask, + ScrumStatus, + ScrumUser, + ScrumCategory, +} from '../../../services/backend.service'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { TaskFormComponent } from '../../task-form/task-form.component'; +import { TableComponentBase } from '../table-component.base'; +import { ActivatedRoute, ParamMap, Router } from '@angular/router'; +import { getNumberForPriority } from '../../../services/sorting.service'; + +@Component({ + selector: 'app-task-table', + templateUrl: './task-table.component.html', + styleUrls: ['./task-table.component.css'], +}) +export class TaskTableComponent extends TableComponentBase { + public filterUserstoryId: number | null = null; + public filterPriority: string | null = null; + public status: ScrumStatus[] = []; + public users: ScrumUser[] = []; + public categories: ScrumCategory[] = []; + + /** + * Constructor that establishes the initial backend communication. + * @param backendService backendService object for backend communication + * @param modalService angular modalService to handle modals for the Form popups + * @param route route object to extract parameters from + */ + constructor( + private backendService: BackendService, + private modalService: NgbModal, + protected route: ActivatedRoute + ) { + super(route); + + backendService.getTasks().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.items.push(...response.body); + } + }); + backendService.getAllStatus().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.status.push(...response.body); + } + }); + backendService.getUsers().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.users.push(...response.body); + } + }); + backendService.getCategories().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.categories.push(...response.body); + } + }); + } + + //#region getters + /** + * Returns a filtered list of all tasks that have a selected priority or belong to a certain userstory. + * If no pritority or userstory to be filtered for is defined it just returns all tasks. + */ + public get filteredItems() { + return this.items.filter( + (task) => + (this.filterUserstoryId === null || + task.userstoryId === this.filterUserstoryId) && + (this.filterPriority === null || task.priority.toLowerCase() == this.filterPriority.toLowerCase()) + ); + } + + /** + * Returns the title of the status that has the provided id. + * @param id id of the searched status + */ + getStatusTitleById(id) { + var status = this.status.find((x) => x.id === id); + if (!status) { + return 'N/A'; + } + return status.title; + } + + /** + * Returns the name of the iser that has the provided id. + * @param id id of the searched user + */ + getUserNameById(id) { + var user = this.users.find((x) => x.id === id); + if (!user) { + return 'N/A'; + } + return user.name; + } + + /** + * Returns the title of the category that has the provided id. + * @param id id of the searched category + */ + getCategoryTitleById(id) { + var category = this.categories.find((x) => x.id === id); + if (!category) { + return 'N/A'; + } + return category.title; + } + + //#endregion getters + + //#region taskTableFunctions + /** + * Deletes a task by calling the delete method via the backendService and removing it from the tabel's items array. + * @param task task that will be deleted + */ + public deleteTask(task: ScrumTask) { + this.backendService.deleteTask(task).subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } + }); + const index = this.items.indexOf(task); + if (index !== -1) { + this.items.splice(index, 1); + } + } + //#endregion taskTableFunctions + + //#region sorters + /** + * Sorts the tabel's items by priority. + */ + sortByPrio() { + this.doNumericSort('priority', (task) => + getNumberForPriority(task.priority) + ); + } + + /** + * Sorts the tabel's items by userstoryId. + */ + sortByTasks() { + this.doNumericSort('userstory', (task) => task.userstoryId); + } + + /** + * Sorts the tabel's items by statusId + */ + sortByStatus() { + this.doNumericSort('statusId', (task) => task.statusId); + } + + /** + * Sorts the tabel's items by assignedtoid + */ + sortByAssigned() { + this.doNumericSort('assignedtoid', (task) => task.assignedtoId); + } + + /** + * Sorts the tabel's items by categoryId + */ + sortByCategory() { + this.doNumericSort('categoryId', (task) => task.categoryId); + } + //#endregion sorters + + //#region modals + /** + * Opens a TaskForm popup for editing a existing task or creating a new one. + * @param editTask optional: task to edit (only needed if a task should be edited, not newly created) + */ + public openTaskForm(editTask?: ScrumTask) { + const modalRef = this.modalService.open(TaskFormComponent, { + backdrop: 'static', + keyboard: true, + size: 'lg', + }); + if (editTask == null) { + modalRef.result.then((result) => { + this.items.push(result); + }); + } + modalRef.componentInstance.task = editTask; + } + //#endregion modals +} 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 ecd92cf..fcaba81 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 @@ -1,190 +1,190 @@ -import { Component, Input } from '@angular/core'; -import { - BackendService, - ScrumTask, - ScrumUserstory, - ScrumStatus, - ScrumCategory, -} from '../../../services/backend.service'; -import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { TableComponentBase } from '../table-component.base'; -import { getNumberForPriority } from '../../../services/sorting.service'; -import { UserstoryFormComponent } from '../../userstory-form/userstory-form.component'; -import { ActivatedRoute, ParamMap, Router } from '@angular/router'; - -@Component({ - selector: 'app-userstory-inner-table', - templateUrl: './userstory-inner-table.component.html', - styleUrls: ['./userstory-inner-table.component.css'], -}) -export class UserstoryInnerTableComponent extends TableComponentBase { - public tasks: ScrumTask[] = []; - public filterPriority: string | null = null; - public status: ScrumStatus[] = []; - public categories: ScrumCategory[] = []; - - @Input() public items: ScrumUserstory[] = []; - - /** - * Constructor that establishes the initial backend communication. - * It also sets the tabel's items according to the "storys" input (needed for the dashboard). - * @param backendService backendService object for backend communication - * @param modalService angular modalService to handle modals for the Form popups - * @param route route object to extract parameters from - */ - constructor( - private backendService: BackendService, - private modalService: NgbModal, - protected route: ActivatedRoute - ) { - super(route); - - backendService.getUserstories().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.items.push(...response.body); - } - }); - backendService.getTasks().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.tasks.push(...response.body); - } - }); - backendService.getAllStatus().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.status.push(...response.body); - } - }); - backendService.getCategories().subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } else { - this.categories.push(...response.body); - } - }); - } - - //#region getters - - /** - * Returns a filtered list of all userstories that have a selected priority. - * If no pritority to be filtered for is defined it just returns all userstories. - */ - public get filteredItems() { - if (this.filterPriority == null) { - return this.items; - } - return this.items.filter((t) => t.priority == this.filterPriority); - } - - /** - * Returns the number of related tasks of a given userstory. - * The relation is defined by the userstoryId property of the task object and the id property of the userstory object. - * @param userstory The userstory for which the number of related tasks gets calculated - */ - public getNumberOfTasks(userstory: ScrumUserstory) { - return this.tasks.filter((t) => t.userstoryId === userstory.id).length; - } - - /** - * Returns the title of the status that has the provided id. - * @param id id of the searched status - */ - getStatusTitleById(id) { - var status = this.status.find((x) => x.id === id); - if (!status) { - return 'N/A'; - } - return status.title; - } - - /** - * Returns the title of the category that has the provided id. - * @param id id of the searched category - */ - getCategoryTitleById(id) { - var category = this.categories.find((x) => x.id === id); - if (!category) { - return 'N/A'; - } - return category.title; - } - - //#endregion getters - - //#region userstoryTableFunctions - /** - * Deletes a userstory by calling the delete method via the backendService and removing it from the tabel's items array. - * @param userstory userstory that will be deleted - */ - public deleteUserstory(userstory: ScrumUserstory) { - this.backendService.deleteUserstory(userstory).subscribe((response) => { - if (response.status > 399) { - alert('Fehler'); - } - }); - const index = this.items.indexOf(userstory); - if (index !== -1) { - this.items.splice(index, 1); - } - } - - //#endregion userstoryTableFunctions - - //#region sorters - /** - * Sorts the tabel's items by priority - */ - public sortByPrio() { - this.doNumericSort('priority', (us) => getNumberForPriority(us.priority)); - } - - /** - * Sorts the tabel's items by amount of related tasks - */ - public sortByTasks() { - this.doNumericSort('tasks', (us) => this.getNumberOfTasks(us)); - } - - /** - * Sorts the tabel's items by statusId - */ - public sortByStatus() { - this.doNumericSort('statusId', (us) => us.statusId); - } - - /** - * Sorts the tabel's items by categoryId - */ - public sortByCategory() { - this.doNumericSort('categoryId', (us) => us.categoryId); - } - - //#endregion sorters - - //#region modals - /** - * Opens a UserstoryForm popup for editing a existing userstory or creating a new one. - * @param editUserstory optional: userstory to edit (only needed if a userstory should be edited, not newly created) - */ - public openUserstoryForm(editUserstory?: ScrumUserstory) { - const modalRef = this.modalService.open(UserstoryFormComponent, { - backdrop: 'static', - keyboard: true, - size: 'lg', - }); - if (editUserstory == null) { - modalRef.result.then((result) => { - this.items.push(result); - }); - } - modalRef.componentInstance.userstory = editUserstory; - } - - //#endregion modals -} +import { Component, Input } from '@angular/core'; +import { + BackendService, + ScrumTask, + ScrumUserstory, + ScrumStatus, + ScrumCategory, +} from '../../../services/backend.service'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { TableComponentBase } from '../table-component.base'; +import { getNumberForPriority } from '../../../services/sorting.service'; +import { UserstoryFormComponent } from '../../userstory-form/userstory-form.component'; +import { ActivatedRoute, ParamMap, Router } from '@angular/router'; + +@Component({ + selector: 'app-userstory-inner-table', + templateUrl: './userstory-inner-table.component.html', + styleUrls: ['./userstory-inner-table.component.css'], +}) +export class UserstoryInnerTableComponent extends TableComponentBase { + public tasks: ScrumTask[] = []; + public filterPriority: string | null = null; + public status: ScrumStatus[] = []; + public categories: ScrumCategory[] = []; + + @Input() public items: ScrumUserstory[] = []; + + /** + * Constructor that establishes the initial backend communication. + * It also sets the tabel's items according to the "storys" input (needed for the dashboard). + * @param backendService backendService object for backend communication + * @param modalService angular modalService to handle modals for the Form popups + * @param route route object to extract parameters from + */ + constructor( + private backendService: BackendService, + private modalService: NgbModal, + protected route: ActivatedRoute + ) { + super(route); + + backendService.getUserstories().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.items.push(...response.body); + } + }); + backendService.getTasks().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.tasks.push(...response.body); + } + }); + backendService.getAllStatus().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.status.push(...response.body); + } + }); + backendService.getCategories().subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } else { + this.categories.push(...response.body); + } + }); + } + + //#region getters + + /** + * Returns a filtered list of all userstories that have a selected priority. + * If no pritority to be filtered for is defined it just returns all userstories. + */ + public get filteredItems() { + if (this.filterPriority == null) { + return this.items; + } + return this.items.filter((t) => t.priority.toLowerCase() == this.filterPriority.toLowerCase()); + } + + /** + * Returns the number of related tasks of a given userstory. + * The relation is defined by the userstoryId property of the task object and the id property of the userstory object. + * @param userstory The userstory for which the number of related tasks gets calculated + */ + public getNumberOfTasks(userstory: ScrumUserstory) { + return this.tasks.filter((t) => t.userstoryId === userstory.id).length; + } + + /** + * Returns the title of the status that has the provided id. + * @param id id of the searched status + */ + getStatusTitleById(id) { + var status = this.status.find((x) => x.id === id); + if (!status) { + return 'N/A'; + } + return status.title; + } + + /** + * Returns the title of the category that has the provided id. + * @param id id of the searched category + */ + getCategoryTitleById(id) { + var category = this.categories.find((x) => x.id === id); + if (!category) { + return 'N/A'; + } + return category.title; + } + + //#endregion getters + + //#region userstoryTableFunctions + /** + * Deletes a userstory by calling the delete method via the backendService and removing it from the tabel's items array. + * @param userstory userstory that will be deleted + */ + public deleteUserstory(userstory: ScrumUserstory) { + this.backendService.deleteUserstory(userstory).subscribe((response) => { + if (response.status > 399) { + alert('Fehler'); + } + }); + const index = this.items.indexOf(userstory); + if (index !== -1) { + this.items.splice(index, 1); + } + } + + //#endregion userstoryTableFunctions + + //#region sorters + /** + * Sorts the tabel's items by priority + */ + public sortByPrio() { + this.doNumericSort('priority', (us) => getNumberForPriority(us.priority)); + } + + /** + * Sorts the tabel's items by amount of related tasks + */ + public sortByTasks() { + this.doNumericSort('tasks', (us) => this.getNumberOfTasks(us)); + } + + /** + * Sorts the tabel's items by statusId + */ + public sortByStatus() { + this.doNumericSort('statusId', (us) => us.statusId); + } + + /** + * Sorts the tabel's items by categoryId + */ + public sortByCategory() { + this.doNumericSort('categoryId', (us) => us.categoryId); + } + + //#endregion sorters + + //#region modals + /** + * Opens a UserstoryForm popup for editing a existing userstory or creating a new one. + * @param editUserstory optional: userstory to edit (only needed if a userstory should be edited, not newly created) + */ + public openUserstoryForm(editUserstory?: ScrumUserstory) { + const modalRef = this.modalService.open(UserstoryFormComponent, { + backdrop: 'static', + keyboard: true, + size: 'lg', + }); + if (editUserstory == null) { + modalRef.result.then((result) => { + this.items.push(result); + }); + } + modalRef.componentInstance.userstory = editUserstory; + } + + //#endregion modals +}