fill data
This commit is contained in:
parent
ce37e7ebae
commit
9482c7d553
4 changed files with 42 additions and 8 deletions
|
|
@ -144,7 +144,7 @@ section {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 910px) {
|
@media screen and (max-width: 897px) {
|
||||||
.search {
|
.search {
|
||||||
input {
|
input {
|
||||||
width: 220px;
|
width: 220px;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<img src="./../../../assets/img/summary/pencil.svg" alt="" />
|
<img src="./../../../assets/img/summary/pencil.svg" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<span>1</span>
|
<span>{{ todoTasksCount }}</span>
|
||||||
<p>To-do</p>
|
<p>To-do</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
<img src="./../../../assets/img/summary/rake.svg" alt="" />
|
<img src="./../../../assets/img/summary/rake.svg" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<span>1</span>
|
<span>{{ doneTasksCount }}</span>
|
||||||
<p>Done</p>
|
<p>Done</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -52,19 +52,19 @@
|
||||||
<div class="bottom-frame">
|
<div class="bottom-frame">
|
||||||
<div class="tasks" routerLink="/board">
|
<div class="tasks" routerLink="/board">
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<span>5</span>
|
<span>{{ allTasksCount }}</span>
|
||||||
<p>Task in Board</p>
|
<p>Task in Board</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tasks" routerLink="/board">
|
<div class="tasks" routerLink="/board">
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<span>2</span>
|
<span>{{ inprogressTasksCount }}</span>
|
||||||
<p>Task in Progress</p>
|
<p>Task in Progress</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tasks" routerLink="/board">
|
<div class="tasks" routerLink="/board">
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<span>2</span>
|
<span>{{ awaitfeedbackTasksCount }}</span>
|
||||||
<p>Awaiting Feedback</p>
|
<p>Awaiting Feedback</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { TaskService } from '../../services/task.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-summary',
|
selector: 'app-summary',
|
||||||
|
|
@ -8,4 +9,35 @@ import { RouterModule } from '@angular/router';
|
||||||
templateUrl: './summary.component.html',
|
templateUrl: './summary.component.html',
|
||||||
styleUrl: './summary.component.scss',
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Injectable, inject } from '@angular/core';
|
import { EventEmitter, Injectable, inject } from '@angular/core';
|
||||||
import {
|
import {
|
||||||
Firestore,
|
Firestore,
|
||||||
collection,
|
collection,
|
||||||
|
|
@ -13,6 +13,7 @@ import { Task } from '../interfaces/task.interface';
|
||||||
})
|
})
|
||||||
export class TaskService {
|
export class TaskService {
|
||||||
firestore: Firestore = inject(Firestore);
|
firestore: Firestore = inject(Firestore);
|
||||||
|
tasksLoaded: EventEmitter<void> = new EventEmitter<void>();
|
||||||
|
|
||||||
allTasks: Task[] = [];
|
allTasks: Task[] = [];
|
||||||
filteredTasks: Task[] = [];
|
filteredTasks: Task[] = [];
|
||||||
|
|
@ -30,6 +31,7 @@ export class TaskService {
|
||||||
const taskData = { ...(element.data() as Task), id: element.id };
|
const taskData = { ...(element.data() as Task), id: element.id };
|
||||||
this.allTasks.push(taskData);
|
this.allTasks.push(taskData);
|
||||||
});
|
});
|
||||||
|
this.tasksLoaded.emit();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue