diff --git a/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.html b/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.html index 3254d08..360abbe 100644 --- a/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.html +++ b/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.html @@ -2,4 +2,31 @@
+ +
+
+
+

Title*

+ +
+ @if (!title.valid && title.touched) { +

You must enter a title.

+ } +
+
+
+
diff --git a/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.scss b/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.scss index bf7881f..c8388e2 100644 --- a/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.scss +++ b/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.scss @@ -11,3 +11,52 @@ section { justify-content: right; margin-bottom: 32px; } + +.content { + height: calc(700px - 104px); + overflow-y: auto; +} + +input, +textarea, +select { + font-size: 20px; + font-weight: 400; + border-radius: 10px; + border: 1px solid var(--light-gray); + padding: 12px 21px; + width: calc(100% - 48px); + resize: none; +} + +input:invalid, +textarea:invalid, +select:invalid { + border: 1px dashed red; +} + +input:valid, +textarea:valid, +select:valid { + border: 1px solid black; +} + +p { + font-size: 20px; + font-weight: 400; + padding-bottom: 6px; +} + +.red-dot { + color: var(--light-red); +} + +.error-msg { + height: 24px; + padding: 6px; + p { + color: var(--red); + font-size: 12px; + font-weight: 400; + } +} diff --git a/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.ts b/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.ts index d72d77d..5d1fea6 100644 --- a/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.ts +++ b/src/app/shared/components/overlay/task-edit-overlay/task-edit-overlay.component.ts @@ -1,25 +1,83 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FirebaseService } from '../../../../services/firebase.service'; import { OverlayService } from '../../../../services/overlay.service'; import { BtnCloseComponent } from '../../buttons/btn-close/btn-close.component'; +import { FormsModule, NgForm } from '@angular/forms'; +import { Task } from '../../../../interfaces/task.interface'; @Component({ selector: 'app-task-edit-overlay', standalone: true, - imports: [BtnCloseComponent], + imports: [BtnCloseComponent, FormsModule], templateUrl: './task-edit-overlay.component.html', styleUrl: './task-edit-overlay.component.scss', }) -export class TaskEditOverlayComponent { +export class TaskEditOverlayComponent implements OnInit { @Input() overlayData: string = ''; @Output() closeDialogEmitter = new EventEmitter(); + taskDataEdit: Task = { + title: '', + description: '', + category: '', + status: 'todo', + priority: 'medium', + subtasksTitle: [], + subtasksDone: [], + assigned: [], + date: '', + }; + constructor( public firebaseService: FirebaseService, private overlayService: OverlayService ) {} + ngOnInit() { + const taskData = this.getTaskData(this.overlayData)[0]; + this.taskDataEdit.title = taskData.title; + this.taskDataEdit.description = taskData.description; + this.taskDataEdit.category = taskData.category; + this.taskDataEdit.status = taskData.status; + this.taskDataEdit.priority = taskData.priority; + this.taskDataEdit.subtasksTitle = taskData.subtasksTitle; + this.taskDataEdit.subtasksDone = taskData.subtasksDone; + this.taskDataEdit.assigned = taskData.assigned; + this.taskDataEdit.date = taskData.date; + } + closeDialog() { this.closeDialogEmitter.emit(''); + this.removeTaskData(); + } + + getTaskData(taskId: string) { + return this.firebaseService + .getAllTasks() + .filter((task) => task.id === taskId); + } + + saveTaskData() { + localStorage.setItem('taskDataEdit', JSON.stringify(this.taskDataEdit)); + } + + removeTaskData() { + localStorage.removeItem('taskDataEdit'); + this.clearFormData(); + } + + clearFormData() { + this.taskDataEdit.title = ''; + this.taskDataEdit.description = ''; + this.taskDataEdit.date = ''; + this.taskDataEdit.category = ''; + this.taskDataEdit.assigned = []; + this.taskDataEdit.subtasksTitle = []; + this.taskDataEdit.subtasksDone = []; + } + + onSubmit(ngForm: NgForm) { + if (ngForm.submitted && ngForm.form.valid) { + } } }