import {Component, Inject, OnInit} from '@angular/core'; import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; import {TaskEntityInfo, TaskRepeatDayInfo, TaskRepeatWeekDayInfo, TaskseriesService} from "../../../api"; import * as moment from "moment"; import {FormArray, FormBuilder, FormGroup, Validators} from "@angular/forms"; import DeadlineStrategyEnum = TaskRepeatDayInfo.DeadlineStrategyEnum; @Component({ selector: 'app-task-weekly-series-creator', templateUrl: './task-weekly-series-creator.component.html', styleUrls: ['./task-weekly-series-creator.component.css'] }) export class TaskWeeklySeriesCreatorComponent implements OnInit{ repeatingOffsetForm: FormGroup | undefined availableDeadlineStrategys: DeadlineStrategyEnum[] = ["DEADLINE_EQUAL_START", "DEADLINE_FIT_START"] constructor(private dialogRef: MatDialogRef, private taskRepeatingService: TaskseriesService, @Inject(MAT_DIALOG_DATA) public tasks: TaskEntityInfo[], private formbuilder: FormBuilder) { } ngOnInit(): void { this.repeatingOffsetForm = this.formbuilder.group({ offsets: this.formbuilder.array(this.tasks.map(task => this.formbuilder.group({ offsetCtrl: ['', [Validators.required, Validators.min(1)]] }))), deadlineStrategyCtrl: ['', Validators.required], endingDateCtrl: ['', Validators.required] }) } getDayOfWeek(date: string) { return moment(date).format("dddd") } formatDate(date: string): string { return moment(date).format("dd, DD. MMMM YYYY") } removeTaskFromRepeatingList(task: TaskEntityInfo, formIndex: number) { this.tasks = this.tasks.filter(t => t.taskID !== task.taskID); this.deleteOffset(formIndex) } get offsets() { return this.repeatingOffsetForm!.controls["offsets"] as FormArray } deleteOffset(taskIndex: number) { this.offsets.removeAt(taskIndex); } saveRepeatingTask() { const weekDayInfos: TaskRepeatWeekDayInfo[] = [] const formArrayValues: {offsetCtrl: string}[] = this.offsets.value for(let i=0; i { this.dialogRef.close(true) } }) } cancel() { this.dialogRef.close(false); } }