Added target and terminal support in Dashboard
[src/xds/xds-agent.git] / webapp / src / app / pages / targets / settings / target-select-dropdown.component.ts
diff --git a/webapp/src/app/pages/targets/settings/target-select-dropdown.component.ts b/webapp/src/app/pages/targets/settings/target-select-dropdown.component.ts
new file mode 100644 (file)
index 0000000..c124054
--- /dev/null
@@ -0,0 +1,57 @@
+/**
+* @license
+* Copyright (C) 2018 "IoT.bzh"
+* Author Sebastien Douheret <sebastien@iot.bzh>
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+import { Component, OnInit, Input } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+
+import { ITarget, TargetService } from '../../../@core-xds/services/target.service';
+
+@Component({
+  selector: 'xds-target-select-dropdown',
+  template: `
+    <div class="form-group row">
+      <label class="col-sm-3 form-control-label" style="margin-top:  auto; margin-bottom:  auto;">Target</label>
+      <div class="col-sm-9">
+        <select class="form-control" style="min-width: 10rem;" [(ngModel)]="curTgt" (click)="select()">
+          <option  *ngFor="let tgt of targets$ | async" [ngValue]="tgt">{{ tgt.name }}</option>
+        </select>
+      </div>
+    </div>
+  `,
+})
+export class TargetSelectDropdownComponent implements OnInit {
+
+  targets$: Observable<ITarget[]>;
+  curTgt: ITarget;
+
+  constructor(private targetSvr: TargetService) { }
+
+  ngOnInit() {
+    this.curTgt = this.targetSvr.getCurrent();
+    this.targets$ = this.targetSvr.targets$;
+    this.targetSvr.curTarget$.subscribe(p => this.curTgt = p);
+  }
+
+  select() {
+    if (this.curTgt) {
+      this.targetSvr.setCurrentById(this.curTgt.id);
+    }
+  }
+}
+
+