+/**
+* @license
+* Copyright (C) 2017 "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 } from '@angular/core';
import { Observable } from 'rxjs/Observable';
styleUrls: ['./config-xds.component.scss'],
templateUrl: './config-xds.component.html',
})
-export class ConfigXdsComponent implements OnInit {
+export class ConfigXdsComponent {
// TODO: cleanup agentStatus$: Observable<IAgentStatus>;
- connecting = false;
+ applying = false;
xdsServerUrl = '';
- server: IXDServerCfg;
+ server: IXDServerCfg = { id: '', url: 'http://localhost:8000', connRetry: 10, connected: false };
configFormChanged = false;
private XdsConfigSvr: XDSConfigService,
private alert: AlertService,
) {
- }
-
- ngOnInit() {
// FIXME support multiple servers
+ this._updateServerCfg(this.XdsConfigSvr.getCurServer());
+ this.XdsConfigSvr.onCurServer().subscribe(svr => this._updateServerCfg(svr));
+ }
- this.server = this.XdsConfigSvr.getCurServer();
- this.xdsServerUrl = this.server.url;
+ private _updateServerCfg(svr: IXDServerCfg) {
+ if (!svr || svr.url === '') {
+ return;
+ }
+ this.xdsServerUrl = svr.url;
+ this.server = Object.assign({}, svr);
+ }
- this.XdsConfigSvr.onCurServer().subscribe(svr => {
- this.xdsServerUrl = svr.url;
- this.server = svr;
- });
+ isApplyBtnEnable(): boolean {
+ return this.xdsServerUrl !== '' && (!this.server.connected || this.configFormChanged);
}
onSubmit() {
return;
}
this.configFormChanged = false;
- this.connecting = true;
+ this.applying = true;
this.server.url = this.xdsServerUrl;
this.XdsConfigSvr.setCurServer(this.server)
.subscribe(cfg => {
- this.connecting = false;
- },
+ this.alert.info('XDS Server successfully connected (' + cfg.url + ')');
+ this.server = Object.assign({}, cfg);
+ this.applying = false;
+ },
err => {
- this.connecting = false;
+ this.applying = false;
this.alert.error(err);
});
}