join/src/app/shared/components/overlay/task-overlay/task-overlay.component.ts
2024-05-19 12:11:56 +02:00

116 lines
3 KiB
TypeScript

import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { FirebaseService } from '../../../../services/firebase.service';
import { BtnCloseComponent } from '../../buttons/btn-close/btn-close.component';
import { CommonModule } from '@angular/common';
import { OverlayService } from '../../../../services/overlay.service';
import { ActivatedRoute, Router } from '@angular/router';
import { BtnBackComponent } from '../../buttons/btn-back/btn-back.component';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'app-task-overlay',
standalone: true,
imports: [BtnCloseComponent, CommonModule, BtnBackComponent, TranslateModule],
templateUrl: './task-overlay.component.html',
styleUrl: './task-overlay.component.scss',
})
export class TaskOverlayComponent implements OnInit {
@Input() overlayData: string = '';
@Output() closeDialogEmitter = new EventEmitter<string>();
overlayMobile: boolean = false;
constructor(
public firebaseService: FirebaseService,
private overlayService: OverlayService,
private router: Router,
private route: ActivatedRoute
) {}
categoryColors = new Map<string, string>([
['User Story', '#0038ff'],
['Technical Task', '#20d7c2'],
]);
closeDialog() {
this.closeDialogEmitter.emit('');
}
ngOnInit() {
if (this.overlayData == '') {
if (this.route.params.subscribe()) {
this.route.params.subscribe((params) => {
this.overlayData = params['id'];
this.overlayMobile = true;
});
}
}
}
editTask(overlayData: string) {
this.closeDialog();
setTimeout(() => {
if (window.innerWidth >= 650) {
this.overlayService.setOverlayData('taskOverlayEdit', overlayData);
} else {
this.router.navigate(['/task-edit', overlayData]);
}
}, 10);
}
deleteTask(overlayData: string) {
this.firebaseService.deleteTask(overlayData);
this.closeDialog();
}
getTaskData(taskId: string) {
return this.firebaseService
.getAllTasks()
.filter((task) => task.id === taskId);
}
getSubTaskStatus(taskId: string, index: number) {
const subtask = this.firebaseService
.getAllTasks()
.filter((task) => task.id === taskId);
return subtask[0].subtasksDone[index];
}
toggleSubtaskStatus(
taskId: string,
index: number,
array: boolean[],
status: boolean
) {
status ? (array[index] = false) : (array[index] = true);
this.firebaseService.updateSubTask(taskId, array);
}
capitalizeFirstLetter(data: string) {
return data.charAt(0).toUpperCase() + data.slice(1);
}
timeConverter(dateString: string) {
var a = new Date(dateString);
var months = [
'Jan.',
'Feb.',
'Mar.',
'Apr.',
'May.',
'Jun.',
'Jul.',
'Aug.',
'Sep.',
'Oct.',
'Nov.',
'Dec.',
];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var time = month + ' ' + date + ', ' + year;
return time;
}
}