aboutsummaryrefslogtreecommitdiffstats
path: root/webapp/src/app/pages/config/config-xds/config-xds.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/app/pages/config/config-xds/config-xds.component.ts')
-rw-r--r--webapp/src/app/pages/config/config-xds/config-xds.component.ts63
1 files changed, 63 insertions, 0 deletions
diff --git a/webapp/src/app/pages/config/config-xds/config-xds.component.ts b/webapp/src/app/pages/config/config-xds/config-xds.component.ts
new file mode 100644
index 0000000..ffd236d
--- /dev/null
+++ b/webapp/src/app/pages/config/config-xds/config-xds.component.ts
@@ -0,0 +1,63 @@
+import { Component, OnInit } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+
+import { XDSConfigService } from '../../../@core-xds/services/xds-config.service';
+import { IXDServerCfg } from '../../../@core-xds/services/xdsagent.service';
+import { AlertService, IAlert } from '../../../@core-xds/services/alert.service';
+import { NotificationsComponent } from '../../notifications/notifications.component';
+
+// Import RxJs required methods
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/catch';
+
+@Component({
+ selector: 'xds-config-xds',
+ styleUrls: ['./config-xds.component.scss'],
+ templateUrl: './config-xds.component.html',
+})
+export class ConfigXdsComponent implements OnInit {
+
+ // TODO: cleanup agentStatus$: Observable<IAgentStatus>;
+ connecting = false;
+ xdsServerUrl = '';
+ server: IXDServerCfg;
+
+ configFormChanged = false;
+
+ constructor(
+ private XdsConfigSvr: XDSConfigService,
+ private alert: AlertService,
+ ) {
+ }
+
+ ngOnInit() {
+ // FIXME support multiple servers
+
+ this.server = this.XdsConfigSvr.getCurServer();
+ this.xdsServerUrl = this.server.url;
+
+ this.XdsConfigSvr.onCurServer().subscribe(svr => {
+ this.xdsServerUrl = svr.url;
+ this.server = svr;
+ });
+ }
+
+ onSubmit() {
+ if (!this.configFormChanged && this.server.connected) {
+ return;
+ }
+ this.configFormChanged = false;
+ this.connecting = true;
+ this.server.url = this.xdsServerUrl;
+ this.XdsConfigSvr.setCurServer(this.server)
+ .subscribe(cfg => {
+ this.connecting = false;
+ },
+ err => {
+ this.connecting = false;
+ this.alert.error(err);
+ });
+ }
+
+}
+