53 lines
1.8 KiB
TypeScript
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;
|
|
}
|
|
}
|
|
}
|