diff options
author | Idan Amit <ia096e@intl.att.com> | 2018-10-09 18:45:52 +0300 |
---|---|---|
committer | Michael Lando <michael.lando@intl.att.com> | 2018-10-10 14:16:02 +0000 |
commit | 3504f84909d1ee1963931e63bed694a533a84cd3 (patch) | |
tree | 76c0d4a298aac90efee26a8a9b4a96137aec187f /catalog-ui/src/app/ng2/services/plugins.service.ts | |
parent | 1eda33de6c88b9c1d6259e74b50c55ab1bb9357a (diff) |
Plugin load by the UI
Changed the original plugin API to only return the plugins list
Changed the plugin Iframe to check if the plugin is online on every init
Change-Id: I7916668de17c49a2639047ef243939889a933067
Issue-ID: SDC-1400
Signed-off-by: Idan Amit <ia096e@intl.att.com>
Diffstat (limited to 'catalog-ui/src/app/ng2/services/plugins.service.ts')
-rw-r--r-- | catalog-ui/src/app/ng2/services/plugins.service.ts | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/catalog-ui/src/app/ng2/services/plugins.service.ts b/catalog-ui/src/app/ng2/services/plugins.service.ts index 7a85b6e1b6..2a3b68fe25 100644 --- a/catalog-ui/src/app/ng2/services/plugins.service.ts +++ b/catalog-ui/src/app/ng2/services/plugins.service.ts @@ -1,10 +1,19 @@ -import { Injectable } from '@angular/core'; -import {Plugin, PluginsConfiguration} from "app/models"; +import { Injectable, Inject } from '@angular/core'; +import {Observable} from 'rxjs/Observable'; +import {Http, Response} from '@angular/http'; +import {IApi, IAppConfigurtaion, Plugin, Plugins, PluginsConfiguration} from "app/models"; +import {ISdcConfig, SdcConfigToken} from "../config/sdc-config.config"; @Injectable() export class PluginsService { - constructor() { + private baseUrl; + public configuration: IAppConfigurtaion; + public api: IApi; + + constructor(private http: Http, @Inject(SdcConfigToken) private sdcConfig:ISdcConfig) { + this.api = this.sdcConfig.api; + this.baseUrl = this.api.root + this.sdcConfig.api.component_api_root; } public getPluginByStateUrl = (stateUrl: string) => { @@ -20,4 +29,12 @@ export class PluginsService { plugin.pluginDisplayOptions["context"].displayRoles.includes(userRole) && plugin.pluginDisplayOptions["context"].displayContext.indexOf(contextType) !== -1 }; + + public isPluginOnline = (pluginId: string): Observable<boolean> => { + let url:string = this.api.no_proxy_root + this.api.GET_plugin_online_state.replace(':pluginId', pluginId); + return this.http.get(url).map((res: Response) => { + return res.json() + }) + .catch(error => Observable.of(false)); + } } |