diff options
Diffstat (limited to 'webapp/src/app/@core-xds/services/xdsagent.service.ts')
-rw-r--r-- | webapp/src/app/@core-xds/services/xdsagent.service.ts | 71 |
1 files changed, 55 insertions, 16 deletions
diff --git a/webapp/src/app/@core-xds/services/xdsagent.service.ts b/webapp/src/app/@core-xds/services/xdsagent.service.ts index 27e14cf..033185b 100644 --- a/webapp/src/app/@core-xds/services/xdsagent.service.ts +++ b/webapp/src/app/@core-xds/services/xdsagent.service.ts @@ -133,8 +133,10 @@ export class XDSAgentService { protected projectDel$ = new Subject<IXDSProjectConfig>(); protected projectChange$ = new Subject<IXDSProjectConfig>(); - protected sdkInstall$ = new Subject<ISdkManagementMsg>(); - protected sdkRemove$ = new Subject<ISdkManagementMsg>(); + protected sdkAdd$ = new Subject<ISdk>(); + protected sdkRemove$ = new Subject<ISdk>(); + protected sdkChange$ = new Subject<ISdk>(); + protected sdkManagement$ = new Subject<ISdkManagementMsg>(); private baseUrl: string; private wsUrl: string; @@ -249,6 +251,8 @@ export class XDSAgentService { } }); + /*** Project events ****/ + this.socket.on('event:project-add', (ev) => { if (ev && ev.data && ev.data.id) { this.projectAdd$.next(Object.assign({}, ev.data)); @@ -280,32 +284,59 @@ export class XDSAgentService { } }); - this.socket.on('event:sdk-install', (ev) => { - if (ev && ev.data && ev.data.sdk) { - const evt = <ISdkManagementMsg>ev.data; - this.sdkInstall$.next(Object.assign({}, evt)); + /*** SDK Events ***/ - if (ev.sessionID !== '' && ev.sessionID !== this.httpSessionID && evt.sdk.name) { - this.alert.info('SDK "' + evt.sdk.name + '" has been installed by another tool.'); + this.socket.on('event:sdk-add', (ev) => { + if (ev && ev.data && ev.data.id) { + const evt = <ISdk>ev.data; + this.sdkAdd$.next(Object.assign({}, evt)); + + if (ev.sessionID !== '' && ev.sessionID !== this.httpSessionID && evt.name) { + this.alert.info('SDK "' + evt.name + '" has been added by another tool.'); } } else if (isDevMode) { - /* tslint:disable:no-console */ - console.log('Warning: received event:sdk-install with unknown data: ev=', ev); + console.log('Warning: received event:sdk-add with unknown data: ev=', ev); } }); this.socket.on('event:sdk-remove', (ev) => { + if (ev && ev.data && ev.data.id) { + const evt = <ISdk>ev.data; + this.sdkRemove$.next(Object.assign({}, evt)); + + if (ev.sessionID !== '' && ev.sessionID !== this.httpSessionID && evt.name) { + this.alert.info('SDK "' + evt.name + '" has been removed by another tool.'); + } + } else if (isDevMode) { + console.log('Warning: received event:sdk-remove with unknown data: ev=', ev); + } + }); + + this.socket.on('event:sdk-state-change', (ev) => { + if (ev && ev.data && ev.data.id) { + const evt = <ISdk>ev.data; + this.sdkChange$.next(Object.assign({}, evt)); + + } else if (isDevMode) { + console.log('Warning: received event:sdk-state-change with unknown data: ev=', ev); + } + }); + + + this.socket.on('event:sdk-management', (ev) => { if (ev && ev.data && ev.data.sdk) { const evt = <ISdkManagementMsg>ev.data; - this.sdkRemove$.next(Object.assign({}, evt)); + this.sdkManagement$.next(Object.assign({}, evt)); if (ev.sessionID !== '' && ev.sessionID !== this.httpSessionID && evt.sdk.name) { - this.alert.info('SDK "' + evt.sdk.name + '" has been removed by another tool.'); + this.alert.info('SDK "' + evt.sdk.name + '" has been installed by another tool.'); } } else if (isDevMode) { - console.log('Warning: received event:sdk-remove with unknown data: ev=', ev); + /* tslint:disable:no-console */ + console.log('Warning: received event:sdk-install with unknown data: ev=', ev); } }); + } /** @@ -323,14 +354,22 @@ export class XDSAgentService { return this.projectChange$.asObservable(); } - onSdkInstall(): Observable<ISdkManagementMsg> { - return this.sdkInstall$.asObservable(); + onSdkAdd(): Observable<ISdk> { + return this.sdkAdd$.asObservable(); } - onSdkRemove(): Observable<ISdkManagementMsg> { + onSdkRemove(): Observable<ISdk> { return this.sdkRemove$.asObservable(); } + onSdkChange(): Observable<ISdk> { + return this.sdkChange$.asObservable(); + } + + onSdkManagement(): Observable<ISdkManagementMsg> { + return this.sdkManagement$.asObservable(); + } + /** ** Misc / Version ***/ |