Add query params options to iframe
Added query params support to the designers iframe
Change-Id: I742b4717f5418deb6b7cc6bea143eb7521eed1c0
Issue-ID: SDC-959
Signed-off-by: Idan Amit <ia096e@intl.att.com>
diff --git a/catalog-ui/src/app/app.ts b/catalog-ui/src/app/app.ts
index f3bfbb9..8de2db9 100644
--- a/catalog-ui/src/app/app.ts
+++ b/catalog-ui/src/app/app.ts
@@ -153,7 +153,7 @@
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 b66008f..b52696a 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 @@
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 @@
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 380e093..b2545c8 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 @@
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 3ae9805..9dcad66 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 2f4e1da..e145188 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 @@
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 7abb81a..9af6ae7 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>