timemanager/frontend/src/app/tasks/task-series-creator/task-series-creator.component.ts
Sebastian Böckelmann aafb5886db
All checks were successful
Java CI with Maven / build-and-push-frontend (push) Successful in 8s
Java CI with Maven / build-and-push-backend (push) Successful in 8s
Frontend Form for generating repeating tasks weekly
2024-03-16 09:30:48 +01:00

53 lines
1.8 KiB
TypeScript

import {Component, Inject} from '@angular/core';
import {FormBuilder, Validators} from "@angular/forms";
import {TaskEntityInfo, TaskRepeatDayInfo, TaskseriesService} from "../../../api";
import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
import DeadlineStrategyEnum = TaskRepeatDayInfo.DeadlineStrategyEnum;
import * as moment from "moment";
@Component({
selector: 'app-task-series-creator',
templateUrl: './task-series-creator.component.html',
styleUrls: ['./task-series-creator.component.css']
})
export class TaskSeriesCreatorComponent {
dailyFormGroup = this._formBuilder.group({
offsetCtrl: ['', Validators.required],
deadlineStrategyCtrl: ['', Validators.required]
})
endDateFormGroup = this._formBuilder.group({
endDateCtrl: ['', Validators.required]
})
constructor(private _formBuilder: FormBuilder,
private taskSeriesService: TaskseriesService,
@Inject(MAT_DIALOG_DATA) public task: TaskEntityInfo,
private dialogRef: MatDialogRef<TaskSeriesCreatorComponent>) {
}
save() {
this.taskSeriesService.tasksTaskIDTaskseriesDailyPost(this.task.taskID,{
offset: Number(this.dailyFormGroup.get('offsetCtrl')!.value!),
deadlineStrategy: this.convertDeadlineStrategyCtrlToDeadlineEnum(),
endingDate: moment( this.endDateFormGroup.get('endDateCtrl')!.value!).format('YYYY-MM-DDTHH:mm:ss.SSSZ')
}).subscribe({
next: resp => {
this.dialogRef.close();
}
})
}
convertDeadlineStrategyCtrlToDeadlineEnum() {
const deadlineStrategy = this.dailyFormGroup.get('deadlineStrategyCtrl')!.value;
if(deadlineStrategy === DeadlineStrategyEnum.EqualStart) {
return DeadlineStrategyEnum.EqualStart;
} else {
return DeadlineStrategyEnum.FitStart;
}
}
}