diff options
Diffstat (limited to 'webapp/src/app/pages/build/settings/project-select-dropdown.component.ts')
-rw-r--r-- | webapp/src/app/pages/build/settings/project-select-dropdown.component.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts b/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts new file mode 100644 index 0000000..da3580a --- /dev/null +++ b/webapp/src/app/pages/build/settings/project-select-dropdown.component.ts @@ -0,0 +1,40 @@ +import { Component, OnInit, Input } from '@angular/core'; + +import { IProject, ProjectService } from '../../../@core-xds/services/project.service'; + +@Component({ + selector: 'xds-project-select-dropdown', + template: ` + <div class="form-group"> + <label>Project</label> + <select class="form-control"> + <option *ngFor="let prj of projects" (click)="select(prj)">{{prj.label}}</option> + </select> + </div> + `, +}) +export class ProjectSelectDropdownComponent implements OnInit { + + projects: IProject[]; + curPrj: IProject; + + constructor(private prjSvr: ProjectService) { } + + ngOnInit() { + this.curPrj = this.prjSvr.getCurrent(); + this.prjSvr.Projects$.subscribe((s) => { + if (s) { + this.projects = s; + if (this.curPrj === null || s.indexOf(this.curPrj) === -1) { + this.prjSvr.setCurrent(this.curPrj = s.length ? s[0] : null); + } + } + }); + } + + select(s) { + this.prjSvr.setCurrent(this.curPrj = s); + } +} + + |