Newer
Older
import { Component, OnInit } from '@angular/core';
import { Process } from '../processes/process.model';
import { ActivatedRoute } from '@angular/router';
import { ProcessDataService } from '../../core/data/processes/process-data.service';
import { getFirstSucceededRemoteDataPayload } from '../../core/shared/operators';
import { Observable } from 'rxjs';
import { map, switchMap } from 'rxjs/operators';
import { LinkService } from '../../core/cache/builders/link.service';
import { followLink } from '../../shared/utils/follow-link-config.model';
import { Script } from '../scripts/script.model';
@Component({
selector: 'ds-new-process',
templateUrl: './new-process.component.html',
styleUrls: ['./new-process.component.scss'],
})
export class NewProcessComponent implements OnInit {
/**
* Emits preselected process if there is one
*/
/**
* Emits preselected script if there is one
*/
constructor(private route: ActivatedRoute, private processService: ProcessDataService, private linkService: LinkService) {
/**
* If there's an id parameter, use this the process with this identifier as presets for the form
*/
ngOnInit() {
const id = this.route.snapshot.queryParams.id;
if (id) {
this.fromExisting$ = this.processService.findById(id).pipe(getFirstSucceededRemoteDataPayload());
this.script$ = this.fromExisting$.pipe(
map((process: Process) => this.linkService.resolveLink<Process>(process, followLink('script'))),
switchMap((process: Process) => process.script),
getFirstSucceededRemoteDataPayload()
);