67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
// vim: set tw=80 ts=2 sw=2 sts=2:
|
|
import { Component, Input, ViewChild } from '@angular/core';
|
|
|
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
|
|
|
import { Schedule } from './schedule';
|
|
import { ScheduleFormComponent } from './scheduleForm.component';
|
|
|
|
@Component({
|
|
selector: 'schedule-edit-modal',
|
|
template: `
|
|
<div class="modal-header">
|
|
<h3 class="modal-title" id="modal-title">{{ title() }}</h3>
|
|
</div>
|
|
|
|
<div class="modal-body" id="modal-body">
|
|
<schedule-form [schedule]="schedule" (submit)="submit()" #scheduleForm="scheduleForm"></schedule-form>
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
<button class="btn btn-primary" [disabled]="!scheduleForm.form.valid" (click)="submit()">
|
|
Save
|
|
</button>
|
|
|
|
<button class="btn btn-default" (click)="cancel()">
|
|
Cancel
|
|
</button>
|
|
</div>
|
|
`
|
|
})
|
|
export class ScheduleEditModalComponent {
|
|
@Input() schedule: Schedule;
|
|
@ViewChild('scheduleForm') scheduleForm: ScheduleFormComponent;
|
|
|
|
valid: boolean = false;
|
|
|
|
constructor(private activeModal: NgbActiveModal) {}
|
|
|
|
title(): string {
|
|
if(this.schedule.id) {
|
|
return "Schedule #" + this.schedule.id;
|
|
} else {
|
|
return "New schedule";
|
|
}
|
|
}
|
|
|
|
submit(): void {
|
|
let formModel = this.scheduleForm.form.value;
|
|
let schedule = Object.assign({}, this.schedule);
|
|
|
|
schedule.id = this.schedule.id;
|
|
schedule.start_date = formModel.startDate;
|
|
schedule.stop_date = formModel.stopDate;
|
|
schedule.day = formModel.day;
|
|
schedule.frequency = formModel.frequency;
|
|
schedule.label = formModel.label;
|
|
schedule.value = formModel.value;
|
|
schedule.category = formModel.category;
|
|
|
|
this.activeModal.close(schedule);
|
|
}
|
|
|
|
cancel(): void {
|
|
this.activeModal.dismiss("closed");
|
|
}
|
|
}
|