X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=webapp%2Fsrc%2Fapp%2Fpages%2Fconfig%2Fconfig-xds%2Fconfig-xds.component.ts;h=58c8b7d177b8b4620972167fd061b0f2e8b696b2;hb=82ede02a56e12026b2dfb1baeacabfbd564006b1;hp=ffd236daaa1f3d686c4494c3034dc5585d7bff29;hpb=38c0c21a969e621c725245ce91c78e77076c5ce7;p=src%2Fxds%2Fxds-agent.git 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 index ffd236d..58c8b7d 100644 --- a/webapp/src/app/pages/config/config-xds/config-xds.component.ts +++ b/webapp/src/app/pages/config/config-xds/config-xds.component.ts @@ -1,3 +1,21 @@ +/** +* @license +* Copyright (C) 2017 "IoT.bzh" +* Author Sebastien Douheret +* +* 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'; @@ -15,12 +33,12 @@ import 'rxjs/add/operator/catch'; styleUrls: ['./config-xds.component.scss'], templateUrl: './config-xds.component.html', }) -export class ConfigXdsComponent implements OnInit { +export class ConfigXdsComponent { // TODO: cleanup agentStatus$: Observable; - connecting = false; + applying = false; xdsServerUrl = ''; - server: IXDServerCfg; + server: IXDServerCfg = { id: '', url: 'http://localhost:8000', connRetry: 10, connected: false }; configFormChanged = false; @@ -28,18 +46,21 @@ export class ConfigXdsComponent implements OnInit { 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() { @@ -47,14 +68,16 @@ export class ConfigXdsComponent implements OnInit { 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); }); }