task data update & delete task

This commit is contained in:
Chneemann 2024-04-23 10:10:31 +02:00
parent 5439ad21b5
commit 8ed2e3644a
4 changed files with 36 additions and 5 deletions

View file

@ -6,6 +6,7 @@ import { User } from '../../interfaces/user.interface';
import { FirebaseService } from '../../services/firebase.service';
import { Task } from '../../interfaces/task.interface';
import { OverlayService } from '../../services/overlay.service';
import { empty } from 'rxjs';
@Component({
selector: 'app-add-task',
@ -179,12 +180,19 @@ export class AddTaskComponent {
this.firebaseService.addNewTask(taskWithoutId);
this.removeTaskData();
} else {
if (this.getTaskData(overlayData).length > 0) {
const { id, ...taskWithoutId } = this.taskData;
this.firebaseService.replaceTaskData(overlayData, taskWithoutId);
this.closeOverlay();
}
}
}
}
deleteTaskData(overlayData: string) {}
deleteTaskData(overlayData: string) {
this.firebaseService.deleteTask(overlayData);
this.closeOverlay();
}
@HostListener('document:click', ['$event'])
checkOpenNavbar(event: MouseEvent) {

View file

@ -7,6 +7,7 @@ import {
deleteDoc,
doc,
onSnapshot,
setDoc,
updateDoc,
} from '@angular/fire/firestore';
import { Task } from '../interfaces/task.interface';
@ -51,7 +52,7 @@ export class FirebaseService implements OnDestroy {
return this.filteredTasks;
}
async updateTask(taskId: any, index: number) {
async updateTask(taskId: string, index: number) {
await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), {
status: this.allTasks[index].status,
}).catch((err) => {
@ -59,7 +60,7 @@ export class FirebaseService implements OnDestroy {
});
}
async updateSubTask(taskId: any, array: boolean[]) {
async updateSubTask(taskId: string, array: boolean[]) {
await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), {
subtasksDone: array,
}).catch((err) => {
@ -67,6 +68,23 @@ export class FirebaseService implements OnDestroy {
});
}
async replaceTaskData(taskId: string, newData: Task) {
await setDoc(
doc(collection(this.firestore, 'tasks'), taskId),
newData
).catch((err) => {
console.error(err);
});
}
async deleteTask(taskId: string) {
await deleteDoc(doc(collection(this.firestore, 'tasks'), taskId)).catch(
(err) => {
console.error(err);
}
);
}
async addNewTask(task: Task) {
await addDoc(collection(this.firestore, 'tasks'), task)
.catch((err) => {

View file

@ -83,7 +83,7 @@
</div>
</div>
<div class="btns">
<div class="btn btn-delete">
<div class="btn btn-delete" (click)="deleteTask(overlayData)">
<img src="./../../../../../assets/img/contact/delete.svg" alt="" />
<p>Delete</p>
</div>

View file

@ -33,6 +33,11 @@ export class TaskOverlayComponent {
this.overlayService.setOverlayData('taskOverlayEdit', overlayData);
}
deleteTask(overlayData: string) {
this.firebaseService.deleteTask(overlayData);
this.closeDialog();
}
getTaskData(taskId: string) {
return this.firebaseService
.getAllTasks()