diff --git a/src/app/components/board/board.component.html b/src/app/components/board/board.component.html
index 26e8458..ddd1dc0 100644
--- a/src/app/components/board/board.component.html
+++ b/src/app/components/board/board.component.html
@@ -32,7 +32,16 @@
>
-
+
0; else noTask">
+
+
+
+
+ No tasks
+
-
+
0; else noTask">
+
+
+
+
+ No tasks
+
-
+
0; else noTask"
+ >
+
+
+
+
+ No tasks
+
-
+
0; else noTask">
+
+
+
+
+ No tasks
+
diff --git a/src/app/components/board/board.component.scss b/src/app/components/board/board.component.scss
index 0a91098..68a7049 100644
--- a/src/app/components/board/board.component.scss
+++ b/src/app/components/board/board.component.scss
@@ -121,3 +121,22 @@ section {
padding-left: 0;
}
}
+
+/*------------- EMPTY TASK -------------*/
+
+.empty-task {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ max-width: 243px;
+ height: 48px;
+ border-radius: 10px;
+ border: 1px dashed var(--gray);
+ background-color: var(--very-light-gray2);
+ box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.16);
+ font-size: 16px;
+ font-weight: 400;
+ color: var(--gray);
+ margin: 15.5px 0;
+}
diff --git a/src/app/components/board/board.component.ts b/src/app/components/board/board.component.ts
index 8420eba..8b4416e 100644
--- a/src/app/components/board/board.component.ts
+++ b/src/app/components/board/board.component.ts
@@ -15,27 +15,27 @@ import { TaskComponent } from './task/task.component';
export class BoardComponent {
@ViewChild('searchField') searchField!: ElementRef;
- allTasks: Task[] = [];
-
constructor(
public dragDropService: DragDropService,
private taskService: TaskService
) {}
ngOnInit() {
- this.dragDropService.itemDropped.subscribe(({ index, status }) => {
- this.handleItemDropped(index, status);
+ this.dragDropService.itemDropped.subscribe(({ id, status }) => {
+ this.handleItemDropped(id, status);
});
}
- getTask() {
- return this.taskService.allTasks;
+ getTask(status: string) {
+ return this.taskService.allTasks.filter((task) => task.status === status);
}
- handleItemDropped(index: number, status: string): void {
- let firebaseId = this.taskService.allTasks[index].id;
- this.taskService.allTasks[index].status = status;
- this.taskService.updateTask(firebaseId, index);
+ handleItemDropped(id: string, status: string): void {
+ const index = this.taskService.allTasks.findIndex((task) => task.id === id);
+ if (index !== -1) {
+ this.taskService.allTasks[index].status = status;
+ this.taskService.updateTask(id, index);
+ }
this.searchField.nativeElement.value = '';
}
diff --git a/src/app/components/board/task/task.component.html b/src/app/components/board/task/task.component.html
index 34736df..3719a0b 100644
--- a/src/app/components/board/task/task.component.html
+++ b/src/app/components/board/task/task.component.html
@@ -1,62 +1,41 @@
-
-
-
diff --git a/src/app/components/board/task/task.component.scss b/src/app/components/board/task/task.component.scss
index eaf337e..dbcf3e6 100644
--- a/src/app/components/board/task/task.component.scss
+++ b/src/app/components/board/task/task.component.scss
@@ -3,24 +3,6 @@ section {
margin: 15.5px 0;
}
-.empty-task {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- min-width: 246px;
- height: 48px;
- border-radius: 10px;
- border: 1px dashed var(--gray);
- background-color: var(--very-light-gray2);
- box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.16);
- font-size: 16px;
- font-weight: 400;
- color: var(--gray);
- width: 246px;
- margin: 15.5px 0;
-}
-
.content {
position: relative;
display: flex;
diff --git a/src/app/components/board/task/task.component.ts b/src/app/components/board/task/task.component.ts
index fbf867b..612ebe1 100644
--- a/src/app/components/board/task/task.component.ts
+++ b/src/app/components/board/task/task.component.ts
@@ -11,7 +11,6 @@ import { TaskService } from '../../../services/task.service';
styleUrl: './task.component.scss',
})
export class TaskComponent {
- @Input() index: number | undefined;
@Input() task: any;
categoryColors = new Map([
@@ -28,13 +27,13 @@ export class TaskComponent {
// Subtasks
- completedSubtasks(index: number) {
- const subtasks = this.taskService.allTasks[index].subtasksDone;
+ completedSubtasks() {
+ const subtasks = this.task.subtasksDone;
return subtasks.filter((subtask: boolean) => subtask === true).length;
}
- completedSubtasksPercent(index: number): number {
- const subtasks = this.taskService.allTasks[index].subtasksDone;
+ completedSubtasksPercent(): number {
+ const subtasks = this.task.subtasksDone;
const completedSubtasksCount = subtasks.filter(
(subtask: boolean) => subtask === true
).length;
diff --git a/src/app/services/drag-drop.service.ts b/src/app/services/drag-drop.service.ts
index f76bc26..c3a898e 100644
--- a/src/app/services/drag-drop.service.ts
+++ b/src/app/services/drag-drop.service.ts
@@ -4,12 +4,12 @@ import { Injectable, EventEmitter } from '@angular/core';
providedIn: 'root',
})
export class DragDropService {
- itemDropped = new EventEmitter<{ index: number; status: string }>();
+ itemDropped = new EventEmitter<{ id: string; status: string }>();
constructor() {}
- startDragging(event: DragEvent, index: number) {
- event.dataTransfer?.setData('text/plain', index.toString());
+ startDragging(event: DragEvent, id: string) {
+ event.dataTransfer?.setData('text/plain', id);
}
allowDrop(event: DragEvent) {
@@ -20,9 +20,9 @@ export class DragDropService {
event.preventDefault();
const dataTransfer = event.dataTransfer;
if (dataTransfer) {
- const index = +dataTransfer.getData('text/plain');
- if (!isNaN(index)) {
- this.itemDropped.emit({ index, status });
+ const id = dataTransfer.getData('text/plain');
+ if (id) {
+ this.itemDropped.emit({ id, status });
}
}
}
diff --git a/src/app/services/task.service.ts b/src/app/services/task.service.ts
index 41df52e..64c44db 100644
--- a/src/app/services/task.service.ts
+++ b/src/app/services/task.service.ts
@@ -26,7 +26,10 @@ export class TaskService {
return onSnapshot(this.getTaskRef(), (list) => {
this.allTasks = [];
list.forEach((element) => {
- this.allTasks.push(element.data());
+ const taskData = element.data();
+ taskData['id'] = element.id;
+ this.allTasks.push(taskData);
+ this.filteredTasks.push(taskData);
});
});
}