diff options
6 files changed, 43 insertions, 11 deletions
diff --git a/catalog-ui/src/app/app.ts b/catalog-ui/src/app/app.ts index f3bfbb9c52..8de2db97ff 100644 --- a/catalog-ui/src/app/app.ts +++ b/catalog-ui/src/app/app.ts @@ -153,7 +153,7 @@ angular.module('sdcApp').directive('ng2SearchWithAutocomplete', inputs: ['searchPlaceholder', 'searchBarClass', 'autoCompleteValues'], outputs: ['searchChanged', 'searchButtonClicked'] }) as angular.IDirectiveFactory); -angular.module('sdcApp').directive('designerFrame', downgradeComponent( {component: DesignerFrameComponent, inputs: ['designer']} ) as angular.IDirectiveFactory); +angular.module('sdcApp').directive('designerFrame', downgradeComponent( {component: DesignerFrameComponent, inputs: ['designer', 'queryParams']} ) as angular.IDirectiveFactory); ng1appModule.config([ '$stateProvider', diff --git a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts b/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts index b66008f022..b52696a287 100644 --- a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts +++ b/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts @@ -1,4 +1,5 @@ import {Component, OnInit, Input} from "@angular/core"; +import { URLSearchParams } from '@angular/http'; import {Designer} from "app/models"; @Component({ @@ -10,9 +11,12 @@ import {Designer} from "app/models"; export class DesignerFrameComponent implements OnInit { @Input() designer: Designer; + @Input() queryParams: Object; designerUrl: string; + private urlSearchParams: URLSearchParams; constructor() { + this.urlSearchParams = new URLSearchParams(); } ngOnInit(): void { @@ -21,5 +25,14 @@ export class DesignerFrameComponent implements OnInit { this.designer.designerHost + ":" + this.designer.designerPort + this.designer.designerPath; + + if (this.queryParams && !_.isEmpty(this.queryParams)) { + _.forOwn(this.queryParams, (value, key) => { + this.urlSearchParams.set(key, value); + }); + + this.designerUrl += '?'; + this.designerUrl += this.urlSearchParams.toString(); + } } } diff --git a/catalog-ui/src/app/view-models/designers/designers-view-model.ts b/catalog-ui/src/app/view-models/designers/designers-view-model.ts index 380e093cb2..b2545c8ba2 100644 --- a/catalog-ui/src/app/view-models/designers/designers-view-model.ts +++ b/catalog-ui/src/app/view-models/designers/designers-view-model.ts @@ -1,14 +1,13 @@ import {Designer, IUserProperties} from "app/models"; import {CacheService} from "app/services"; -import {MenuItemGroup} from "app/utils"; import {DesignersService} from "../../ng2/services/designers.service"; interface IDesignerViewModelScope extends ng.IScope { designer: Designer - topNavMenuModel:Array<MenuItemGroup>; - user:IUserProperties; - version:string; + user: IUserProperties; + version: string; + queryParams: Object; } export class DesignersViewModel { @@ -31,8 +30,11 @@ export class DesignersViewModel { this.$scope.designer = this.designersService.getDesignerByStateUrl(this.$stateParams.path); this.$scope.version = this.cacheService.get('version'); - this.$scope.topNavMenuModel = []; this.$scope.user = this.cacheService.get('user'); + + this.$scope.queryParams = { + userId: this.$scope.user.userId + }; } } diff --git a/catalog-ui/src/app/view-models/designers/designers-view.html b/catalog-ui/src/app/view-models/designers/designers-view.html index 3ae980589d..9dcad66019 100644 --- a/catalog-ui/src/app/view-models/designers/designers-view.html +++ b/catalog-ui/src/app/view-models/designers/designers-view.html @@ -1,7 +1,7 @@ <div class="sdc-catalog-container"> - <top-nav [menuModel]="topNavMenuModel" [version]="version" [hideSearch]="true"></top-nav> + <top-nav [version]="version" [hide-search]="true"></top-nav> - <designer-frame [designer]="designer"></designer-frame> + <designer-frame [designer]="designer" [query-params]="queryParams"></designer-frame> </div> diff --git a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts index 2f4e1dafac..e145188c00 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts @@ -1,20 +1,26 @@ -import {Designer} from "app/models"; +import {Designer, IUserProperties} from "app/models"; +import {CacheService} from "app/services"; import {DesignersService} from "../../../../ng2/services/designers.service"; +import {IWorkspaceViewModelScope} from "../../workspace-view-model"; -interface IDesignerTabViewModelScope extends ng.IScope { +interface IDesignerTabViewModelScope extends IWorkspaceViewModelScope { designer: Designer; + user:IUserProperties; + queryParams: Object; } export class DesignersTabViewModel { static '$inject' = [ '$scope', '$stateParams', + 'Sdc.Services.CacheService', 'DesignersService' ]; constructor(private $scope:IDesignerTabViewModelScope, private $stateParams:any, + private cacheService:CacheService, private designersService:DesignersService) { this.initScope(); @@ -22,5 +28,16 @@ export class DesignersTabViewModel { private initScope = ():void => { this.$scope.designer = this.designersService.getDesignerByStateUrl(this.$stateParams.path); + + this.$scope.user = this.cacheService.get('user'); + + this.$scope.queryParams = { + userId: this.$scope.user.userId, + contextType: this.$scope.component.componentType, + uuid: this.$scope.component.uuid, + lifecycleState: this.$scope.component.lifecycleState, + isOwner: this.$scope.component.lastUpdaterUserId === this.$scope.user.userId + }; + } } diff --git a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html b/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html index 7abb81a694..9af6ae7e30 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html +++ b/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html @@ -1,5 +1,5 @@ <div class="workspace-designers"> - <designer-frame [designer]="designer"></designer-frame> + <designer-frame [designer]="designer" [query-params]="queryParams"></designer-frame> </div> |