From 927fb189d16f96e031b5b92dc963ace22a1d6577 Mon Sep 17 00:00:00 2001 From: Idan Amit Date: Sun, 28 Jan 2018 14:01:47 +0200 Subject: 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 --- catalog-ui/src/app/app.ts | 2 +- .../ui/designer/designer-frame.component.ts | 13 +++++++++++++ .../view-models/designers/designers-view-model.ts | 12 +++++++----- .../app/view-models/designers/designers-view.html | 4 ++-- .../tabs/designers/designers-tab-view-model.ts | 21 +++++++++++++++++++-- .../tabs/designers/designers-tab-view.html | 2 +- 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; - 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 @@
- + - +
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 @@
- +
-- cgit 1.2.3-korg