Fixed build page when no project exists
[src/xds/xds-agent.git] / webapp / src / app / pages / build / settings / project-select-dropdown.component.ts
1 import { Component, OnInit, Input } from '@angular/core';
2 import { Observable } from 'rxjs/Observable';
3
4 import { IProject, ProjectService } from '../../../@core-xds/services/project.service';
5
6 @Component({
7   selector: 'xds-project-select-dropdown',
8   template: `
9       <div class="form-group">
10       <label>Project</label>
11       <select class="form-control" [(ngModel)]="curPrj" (click)="select()">
12         <option  *ngFor="let prj of projects$ | async" [ngValue]="prj">{{ prj.label }}</option>
13       </select>
14     </div>
15     `,
16 })
17 export class ProjectSelectDropdownComponent implements OnInit {
18
19   projects$: Observable<IProject[]>;
20   curPrj: IProject;
21
22   constructor(private projectSvr: ProjectService) { }
23
24   ngOnInit() {
25     this.curPrj = this.projectSvr.getCurrent();
26     this.projects$ = this.projectSvr.projects$;
27     this.projectSvr.curProject$.subscribe(p => this.curPrj = p);
28   }
29
30   select() {
31     if (this.curPrj) {
32       this.projectSvr.setCurrentById(this.curPrj.id);
33     }
34   }
35 }
36
37