First version of policy editor components
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / policy / ric-selector / ric-selector.component.ts
1 import { Component, Input, OnInit } from '@angular/core';
2 import { AbstractControl, ControlContainer, FormBuilder, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';
3 import { Ric, Rics } from 'src/app/interfaces/ric';
4 import { PolicyService } from 'src/app/services/policy/policy.service';
5
6 @Component({
7   selector: 'nrcp-ric-selector',
8   templateUrl: './ric-selector.component.html',
9   styleUrls: ['./ric-selector.component.scss'],
10   viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }]
11
12 })
13 export class RicSelectorComponent implements OnInit {
14
15   @Input() instanceForm: FormGroup;
16   @Input() policyTypeName: string = '';
17   ric: string;
18   allRics: string[] = [];
19
20   constructor(
21     private dataService: PolicyService,
22     private formBuilder: FormBuilder) {
23   }
24
25   ngOnInit(): void {
26     this.instanceForm.addControl(
27       'ricSelector', new FormControl(this.ric, [
28         Validators.required
29       ]));
30
31     console.log('Ric:', this.ric);
32     this.fetchRics();
33   }
34
35   get selectedRic(): string { return this.ric; }
36
37   get ricSelector(): AbstractControl {
38     return this.instanceForm.get('ricSelector');
39   }
40
41   private fetchRics() {
42     console.log('fetchRics ', this.policyTypeName);
43     const self: RicSelectorComponent = this;
44     this.dataService.getRics(this.policyTypeName).subscribe(
45       {
46         next(value: Rics) {
47           value.rics.forEach(ric => {
48             self.allRics.push(ric.ric_id)
49           });
50           console.log(value);
51         }
52       });
53   }
54 }