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 { FirebaseService } from '../../services/firebase.service';
import { Task } from '../../interfaces/task.interface'; import { Task } from '../../interfaces/task.interface';
import { OverlayService } from '../../services/overlay.service'; import { OverlayService } from '../../services/overlay.service';
import { empty } from 'rxjs';
@Component({ @Component({
selector: 'app-add-task', selector: 'app-add-task',
@ -179,12 +180,19 @@ export class AddTaskComponent {
this.firebaseService.addNewTask(taskWithoutId); this.firebaseService.addNewTask(taskWithoutId);
this.removeTaskData(); this.removeTaskData();
} else { } else {
this.closeOverlay(); 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']) @HostListener('document:click', ['$event'])
checkOpenNavbar(event: MouseEvent) { checkOpenNavbar(event: MouseEvent) {

View file

@ -7,6 +7,7 @@ import {
deleteDoc, deleteDoc,
doc, doc,
onSnapshot, onSnapshot,
setDoc,
updateDoc, updateDoc,
} from '@angular/fire/firestore'; } from '@angular/fire/firestore';
import { Task } from '../interfaces/task.interface'; import { Task } from '../interfaces/task.interface';
@ -51,7 +52,7 @@ export class FirebaseService implements OnDestroy {
return this.filteredTasks; return this.filteredTasks;
} }
async updateTask(taskId: any, index: number) { async updateTask(taskId: string, index: number) {
await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), { await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), {
status: this.allTasks[index].status, status: this.allTasks[index].status,
}).catch((err) => { }).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), { await updateDoc(doc(collection(this.firestore, 'tasks'), taskId), {
subtasksDone: array, subtasksDone: array,
}).catch((err) => { }).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) { async addNewTask(task: Task) {
await addDoc(collection(this.firestore, 'tasks'), task) await addDoc(collection(this.firestore, 'tasks'), task)
.catch((err) => { .catch((err) => {

View file

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

View file

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