refactor: move TaskStatus, TaskPriority, and TaskCategory enums from interface to constants

This commit is contained in:
Chneemann 2025-04-17 04:17:18 +02:00
parent e4c8fcb7f0
commit 01afbe7926
9 changed files with 33 additions and 50 deletions

View file

@ -2,13 +2,7 @@ import { CommonModule } from '@angular/common';
import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { FormsModule, NgForm } from '@angular/forms'; import { FormsModule, NgForm } from '@angular/forms';
import { AssignedComponent } from './assigned/assigned.component'; import { AssignedComponent } from './assigned/assigned.component';
import { import { Subtask, Task } from '../../interfaces/task.interface';
Subtask,
Task,
TaskCategory,
TaskPriority,
TaskStatus,
} from '../../interfaces/task.interface';
import { OverlayService } from '../../services/overlay.service'; import { OverlayService } from '../../services/overlay.service';
import { FormBtnComponent } from '../../shared/components/buttons/form-btn/form-btn.component'; import { FormBtnComponent } from '../../shared/components/buttons/form-btn/form-btn.component';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
@ -22,11 +16,14 @@ import { HeadlineComponent } from '../../shared/components/headline/headline.com
import { import {
PRIORITIES, PRIORITIES,
PRIORITY_LABELS, PRIORITY_LABELS,
TaskPriority,
} from '../../constants/task-priority.constants'; } from '../../constants/task-priority.constants';
import { import {
CATEGORIES, CATEGORIES,
CATEGORY_LABELS, CATEGORY_LABELS,
TaskCategory,
} from '../../constants/task-category.constants'; } from '../../constants/task-category.constants';
import { TaskStatus } from '../../constants/task-status.constants';
@Component({ @Component({
selector: 'app-add-task', selector: 'app-add-task',

View file

@ -9,11 +9,7 @@ import { Router } from '@angular/router';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { TaskHighlightedComponent } from './task/task-highlighted/task-highlighted.component'; import { TaskHighlightedComponent } from './task/task-highlighted/task-highlighted.component';
import { ApiService } from '../../services/api.service'; import { ApiService } from '../../services/api.service';
import { import { Task, TaskMoveEvent } from '../../interfaces/task.interface';
Task,
TaskMoveEvent,
TaskStatus,
} from '../../interfaces/task.interface';
import { TaskService } from '../../services/task.service'; import { TaskService } from '../../services/task.service';
import { LoadingSpinnerComponent } from '../../shared/components/loading-spinner/loading-spinner.component'; import { LoadingSpinnerComponent } from '../../shared/components/loading-spinner/loading-spinner.component';
import { debounceTime, finalize, Subject, take, takeUntil } from 'rxjs'; import { debounceTime, finalize, Subject, take, takeUntil } from 'rxjs';
@ -21,7 +17,11 @@ import { UpdateNotifierService } from '../../services/update-notifier.service';
import { ToastNotificationService } from '../../services/toast-notification.service'; import { ToastNotificationService } from '../../services/toast-notification.service';
import { ResizeService } from '../../services/resize.service'; import { ResizeService } from '../../services/resize.service';
import { HeadlineComponent } from '../../shared/components/headline/headline.component'; import { HeadlineComponent } from '../../shared/components/headline/headline.component';
import { STATUS_LABELS, STATUSES } from '../../constants/task-status.constants'; import {
STATUS_LABELS,
STATUSES,
TaskStatus,
} from '../../constants/task-status.constants';
import { import {
CATEGORIES, CATEGORIES,
CATEGORY_LABELS, CATEGORY_LABELS,

View file

@ -1,12 +1,9 @@
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { Component, EventEmitter, Input, Output } from '@angular/core';
import { import { Task, TaskMoveEvent } from '../../../../interfaces/task.interface';
Task,
TaskMoveEvent,
TaskStatus,
} from '../../../../interfaces/task.interface';
import { import {
STATUS_LABELS, STATUS_LABELS,
STATUSES, STATUSES,
TaskStatus,
} from '../../../../constants/task-status.constants'; } from '../../../../constants/task-status.constants';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';

View file

@ -1,4 +1,7 @@
import { TaskCategory } from '../interfaces/task.interface'; export enum TaskCategory {
USER_STORY = 'User Story',
TECHNICAL_TASK = 'Technical Task',
}
export const CATEGORIES: TaskCategory[] = [ export const CATEGORIES: TaskCategory[] = [
TaskCategory.USER_STORY, TaskCategory.USER_STORY,

View file

@ -1,4 +1,8 @@
import { TaskPriority } from '../interfaces/task.interface'; export enum TaskPriority {
LOW = 'low',
MEDIUM = 'medium',
URGENT = 'urgent',
}
export const PRIORITIES: TaskPriority[] = [ export const PRIORITIES: TaskPriority[] = [
TaskPriority.LOW, TaskPriority.LOW,

View file

@ -1,4 +1,9 @@
import { TaskStatus } from '../interfaces/task.interface'; export enum TaskStatus {
TODO = 'todo',
IN_PROGRESS = 'inProgress',
AWAIT_FEEDBACK = 'awaitFeedback',
DONE = 'done',
}
export const STATUSES: TaskStatus[] = [ export const STATUSES: TaskStatus[] = [
TaskStatus.TODO, TaskStatus.TODO,

View file

@ -1,27 +1,8 @@
import { TaskCategory } from '../constants/task-category.constants';
import { TaskPriority } from '../constants/task-priority.constants';
import { TaskStatus } from '../constants/task-status.constants';
import { UserSummary } from './user.interface'; import { UserSummary } from './user.interface';
// Enums
export enum TaskStatus {
TODO = 'todo',
IN_PROGRESS = 'inProgress',
AWAIT_FEEDBACK = 'awaitFeedback',
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 { export interface Task {
id?: string; id?: string;
title: string; title: string;

View file

@ -1,5 +1,6 @@
import { Injectable, EventEmitter } from '@angular/core'; import { Injectable, EventEmitter } from '@angular/core';
import { Task, TaskStatus } from '../interfaces/task.interface'; import { Task } from '../interfaces/task.interface';
import { TaskStatus } from '../constants/task-status.constants';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',

View file

@ -1,12 +1,7 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { ApiService } from './api.service'; import { ApiService } from './api.service';
import { import { Task } from '../interfaces/task.interface';
Task,
TaskCategory,
TaskPriority,
TaskStatus,
} from '../interfaces/task.interface';
import { catchError, map, switchMap } from 'rxjs/operators'; import { catchError, map, switchMap } from 'rxjs/operators';
import { UserSummary } from '../interfaces/user.interface'; import { UserSummary } from '../interfaces/user.interface';