From 87a25ac66ac8768b299fda43df9bd8316086eb8e Mon Sep 17 00:00:00 2001 From: Chneemann Date: Wed, 16 Apr 2025 20:06:38 +0200 Subject: [PATCH] feat: add task priority constants and labels for task management --- .../add-task/add-task.component.html | 65 +++++++---------- .../components/add-task/add-task.component.ts | 70 +++++++++++++------ src/app/constants/task-priority.constants.ts | 13 ++++ src/app/interfaces/task.interface.ts | 15 +++- src/app/services/task.service.ts | 23 ++---- src/assets/i18n/de.json | 8 ++- src/assets/i18n/en.json | 8 ++- 7 files changed, 115 insertions(+), 87 deletions(-) create mode 100644 src/app/constants/task-priority.constants.ts diff --git a/src/app/components/add-task/add-task.component.html b/src/app/components/add-task/add-task.component.html index ab1358a..fb36e56 100644 --- a/src/app/components/add-task/add-task.component.html +++ b/src/app/components/add-task/add-task.component.html @@ -25,6 +25,7 @@ }" >
+
{{ "addTask.title" | translate }}* @@ -49,6 +50,8 @@ }
+ +
{{ "addTask.description" | translate @@ -75,14 +78,19 @@ }
+ +
+
+
+
{{ "addTask.priority" | translate }}
+ @for (priority of PRIORITIES; track priority) { - - + }
+ +
{{ "addTask.category" | translate }}* @@ -195,6 +180,8 @@ }
+ +
{{ "addTask.subtask" | translate }}
= { + [TaskPriority.LOW]: 'taskPriority.low', + [TaskPriority.MEDIUM]: 'taskPriority.medium', + [TaskPriority.URGENT]: 'taskPriority.urgent', +}; diff --git a/src/app/interfaces/task.interface.ts b/src/app/interfaces/task.interface.ts index e0a8bae..b98791e 100644 --- a/src/app/interfaces/task.interface.ts +++ b/src/app/interfaces/task.interface.ts @@ -9,15 +9,26 @@ export enum TaskStatus { DONE = 'done', } +export enum TaskPriority { + LOW = 'low', + MEDIUM = 'medium', + URGENT = 'urgent', +} + +export enum TaskCategory { + USER_STORY = 'User Story', + TECHNICAL_TASK = 'Technical Task', +} + // Interfaces export interface Task { id?: string; title: string; description: string; - category: string; + category: TaskCategory; status: TaskStatus; - priority: string; + priority: TaskPriority; subtasks: Subtask[]; assignees: Assignee[]; userData: UserSummary[]; diff --git a/src/app/services/task.service.ts b/src/app/services/task.service.ts index 961a599..84c9ec1 100644 --- a/src/app/services/task.service.ts +++ b/src/app/services/task.service.ts @@ -1,30 +1,19 @@ import { Injectable } from '@angular/core'; import { Observable, of } from 'rxjs'; import { ApiService } from './api.service'; -import { Task, TaskStatus } from '../interfaces/task.interface'; +import { + Task, + TaskCategory, + TaskPriority, + TaskStatus, +} from '../interfaces/task.interface'; import { catchError, map, switchMap } from 'rxjs/operators'; import { UserSummary } from '../interfaces/user.interface'; @Injectable({ providedIn: 'root' }) export class TaskService { - private readonly statuses: TaskStatus[] = [ - TaskStatus.TODO, - TaskStatus.IN_PROGRESS, - TaskStatus.AWAIT_FEEDBACK, - TaskStatus.DONE, - ]; - private readonly priorities = ['low', 'medium', 'high']; - constructor(private apiService: ApiService) {} - getStatuses(): TaskStatus[] { - return this.statuses; - } - - getPriorities(): string[] { - return this.priorities; - } - getTasks(): Observable { return this.fetchTasks(); } diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index a2bed9d..2eb48d4 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -129,6 +129,11 @@ "awaitFeedback": "Warte auf Rückmeldung", "done": "Erledigt" }, + "taskPriority": { + "low": "Niedrig", + "medium": "Mittel", + "urgent": "Dringend" + }, "addTask": { "headline": "Aufgabe", "title": "Titel", @@ -140,9 +145,6 @@ "date": "Stichtag", "priority": "Priorität", "creator": "Ersteller", - "urgent": "Dringend", - "medium": "Mittel", - "low": "Niedrig", "category": "Kategorie", "categorySelection": "Kategorie wählen", "subtask": "Unteraufgaben", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 7f52719..704f3b6 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -129,6 +129,11 @@ "awaitFeedback": "Await feedback", "done": "Done" }, + "taskPriority": { + "urgent": "Urgent", + "medium": "Medium", + "low": "Low" + }, "addTask": { "headline": "Add Task", "title": "Title", @@ -140,9 +145,6 @@ "date": "Due date", "priority": "Priority", "creator": "Creator", - "urgent": "Urgent", - "medium": "Medium", - "low": "Low", "category": "Category", "categorySelection": "Select task category", "subtask": "Subtasks",