Add query params options to iframe 77/29377/2
authorIdan Amit <ia096e@intl.att.com>
Sun, 28 Jan 2018 12:01:47 +0000 (14:01 +0200)
committerMichael Lando <ml636r@att.com>
Mon, 29 Jan 2018 06:54:57 +0000 (06:54 +0000)
Added query params support to the designers iframe

Change-Id: I742b4717f5418deb6b7cc6bea143eb7521eed1c0
Issue-ID: SDC-959
Signed-off-by: Idan Amit <ia096e@intl.att.com>
catalog-ui/src/app/app.ts
catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts
catalog-ui/src/app/view-models/designers/designers-view-model.ts
catalog-ui/src/app/view-models/designers/designers-view.html
catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts
catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html

index f3bfbb9..8de2db9 100644 (file)
@@ -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',
index b66008f..b52696a 100644 (file)
@@ -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();
+        }
     }
 }
index 380e093..b2545c8 100644 (file)
@@ -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
+        };
     }
 }
index 3ae9805..9dcad66 100644 (file)
@@ -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>
index 2f4e1da..e145188 100644 (file)
@@ -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
+        };
+
     }
 }
index 7abb81a..9af6ae7 100644 (file)
@@ -1,5 +1,5 @@
 <div class="workspace-designers">
 
-    <designer-frame [designer]="designer"></designer-frame>
+    <designer-frame [designer]="designer" [query-params]="queryParams"></designer-frame>
 
 </div>