diff --git a/src/app/components/board/board.component.scss b/src/app/components/board/board.component.scss index c8c6689..ac67536 100644 --- a/src/app/components/board/board.component.scss +++ b/src/app/components/board/board.component.scss @@ -144,7 +144,7 @@ section { } } -@media screen and (max-width: 910px) { +@media screen and (max-width: 897px) { .search { input { width: 220px; diff --git a/src/app/components/summary/summary.component.html b/src/app/components/summary/summary.component.html index 53a6e3c..4d44114 100644 --- a/src/app/components/summary/summary.component.html +++ b/src/app/components/summary/summary.component.html @@ -13,7 +13,7 @@
- 1 + {{ todoTasksCount }}

To-do

@@ -22,7 +22,7 @@
- 1 + {{ doneTasksCount }}

Done

@@ -52,19 +52,19 @@
- 5 + {{ allTasksCount }}

Task in Board

- 2 + {{ inprogressTasksCount }}

Task in Progress

- 2 + {{ awaitfeedbackTasksCount }}

Awaiting Feedback

diff --git a/src/app/components/summary/summary.component.ts b/src/app/components/summary/summary.component.ts index 6ff44cd..fa0202c 100644 --- a/src/app/components/summary/summary.component.ts +++ b/src/app/components/summary/summary.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { RouterModule } from '@angular/router'; +import { TaskService } from '../../services/task.service'; @Component({ selector: 'app-summary', @@ -8,4 +9,35 @@ import { RouterModule } from '@angular/router'; templateUrl: './summary.component.html', styleUrl: './summary.component.scss', }) -export class SummaryComponent {} +export class SummaryComponent { + allTasksCount: Number = 0; + todoTasksCount: Number = 0; + inprogressTasksCount: Number = 0; + awaitfeedbackTasksCount: Number = 0; + doneTasksCount: Number = 0; + + constructor(private taskService: TaskService) { + this.taskService.tasksLoaded.subscribe(() => { + this.updateTasksCount(); + this.updateAllTasksCount(); + }); + } + + updateAllTasksCount() { + this.allTasksCount = this.taskService.allTasks.length; + } + + updateTasksCount() { + this.todoTasksCount = this.countTasks('todo'); + this.inprogressTasksCount = this.countTasks('inprogress'); + this.awaitfeedbackTasksCount = this.countTasks('awaitfeedback'); + this.doneTasksCount = this.countTasks('done'); + } + + countTasks(status: string): number { + const filteredTasks = this.taskService.allTasks.filter( + (task) => task.status === status + ); + return filteredTasks.length; + } +} diff --git a/src/app/services/task.service.ts b/src/app/services/task.service.ts index 2cd6387..3aecdc6 100644 --- a/src/app/services/task.service.ts +++ b/src/app/services/task.service.ts @@ -1,4 +1,4 @@ -import { Injectable, inject } from '@angular/core'; +import { EventEmitter, Injectable, inject } from '@angular/core'; import { Firestore, collection, @@ -13,6 +13,7 @@ import { Task } from '../interfaces/task.interface'; }) export class TaskService { firestore: Firestore = inject(Firestore); + tasksLoaded: EventEmitter = new EventEmitter(); allTasks: Task[] = []; filteredTasks: Task[] = []; @@ -30,6 +31,7 @@ export class TaskService { const taskData = { ...(element.data() as Task), id: element.id }; this.allTasks.push(taskData); }); + this.tasksLoaded.emit(); }); }