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); } }