import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {TriggerService} from '../../services/trigger.service';
import {TriggerKey} from '../../model/triggerKey.model';
import {SimpleTrigger} from '../../model/simple-trigger.model';
import {MatDialog, MatDialogRef} from '@angular/material/dialog';
@Component({
template: `
Coming Soon
This feature is in roadmap and it will come with the next releases
`,
})
// tslint:disable-next-line:component-class-suffix
export class UnsupportedMultipleJobsDialog {
constructor(public dialogRef: MatDialogRef) {
}
closeDialog(): void {
this.dialogRef.close();
}
}
@Component({
selector: 'qrzmng-trigger-list',
templateUrl: './trigger-list.component.html',
styleUrls: ['./trigger-list.component.scss']
})
export class TriggerListComponent implements OnInit {
newTriggers: Array = new Array();
loading = true;
triggerKeys: Array = new Array();
@Output() onNewTriggerClicked = new EventEmitter();
triggerFormIsOpen = false;
selectedTrigger: TriggerKey;
@Output() onSelectedTrigger = new EventEmitter();
constructor(
private triggerService: TriggerService,
public dialog: MatDialog
) {
}
ngOnInit() {
this.loading = true;
this.fetchTriggers();
}
@Input()
set openedNewTriggerForm(triggerFormIsOpen: boolean) {
this.triggerFormIsOpen = triggerFormIsOpen;
}
getTriggerKeyList = () => {
const newTriggerKeys = this.newTriggers.map(simpleTrigger => simpleTrigger.triggerKeyDTO);
return newTriggerKeys.concat(this.triggerKeys);
}
private fetchTriggers() {
this.triggerService.fetchTriggers()
.subscribe((triggerKeys: Array) => {
this.triggerKeys = triggerKeys;
if (!triggerKeys || triggerKeys.length === 0) {
this.onNewTriggerBtnClicked();
} else {
this.selectTrigger(this.triggerKeys[0]);
}
})
}
selectTrigger(triggerKey: TriggerKey) {
this.selectedTrigger = triggerKey;
this.onSelectedTrigger.emit(triggerKey);
}
onNewTriggerBtnClicked() {
this.onNewTriggerClicked.emit();
// if (this.getTriggerKeyList() && this.getTriggerKeyList().length > 0) {
// this.dialog.open(UnsupportedMultipleJobsDialog)
// } else {
// this.onNewTriggerClicked.emit();
// }
}
onNewTrigger(newTrigger: SimpleTrigger) {
this.newTriggers = [newTrigger, ...this.newTriggers];
this.selectTrigger(newTrigger.triggerKeyDTO);
}
}