Show Templates popup when deploying from "SDC Catalog"

Issue-ID: VID-739
Signed-off-by: Yoav Schneiderman <yoav.schneiderman@intl.att.com>
Change-Id: I99fe7eff025341da9b8f8555c8fda4528c2c1426
Signed-off-by: Yoav Schneiderman <yoav.schneiderman@intl.att.com>
diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.ts b/vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.ts
index 3cd633d..eb60865 100644
--- a/vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.ts
+++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/generic-form-popup.component.ts
@@ -70,11 +70,7 @@
   }
 
   closeDialog(that): void {
-    this._iframeService.removeClassCloseModal(that.parentElementClassName);
-    this.dialogService.removeDialog(this);
-    setTimeout(() => {
-      window.parent.postMessage("closeIframe", "*");
-    }, 15);
+    this._iframeService.closeIframe(this.dialogService, this);
   }
 
   shouldShowNotification(): boolean {
diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html
index 07fc7ab..e2922b2 100644
--- a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html
+++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.html
@@ -2,6 +2,7 @@
   <div class="modal-content">
     <div class="modal-header">
       <button type="button"
+              [attr.data-tests-id]="'closeModal'"
               class="close"
               (click)="closeModal()">&times;
       </button>
diff --git a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts
index 6a73416..20655d5 100644
--- a/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts
+++ b/vid-webpack-master/src/app/shared/components/genericFormPopup/instantiationTemplatesModal/instantiation.templates.modal.component.ts
@@ -68,6 +68,6 @@
   };
 
   closeModal(): void {
-    this.dialogService.removeDialog(this);
+    this._iframeService.closeIframe(this.dialogService, this);
   }
 }
diff --git a/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts b/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts
index 211f593..47f8490 100644
--- a/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts
+++ b/vid-webpack-master/src/app/shared/components/searchMembersModal/search-elements-modal.component.ts
@@ -60,11 +60,7 @@
 
   closeDialog(): void {
     this._iframeService.removeFullScreen();
-    this._iframeService.removeClassCloseModal(this.parentElementClassName);
-    this.dialogService.removeDialog(this);
-    setTimeout(() => {
-      window.parent.postMessage("closeIframe", "*");
-    }, 15);
+    this._iframeService.closeIframe(this.dialogService, this);
   }
 
   selectedMembersAmountChange(selectedMembersAmount: number): void {
diff --git a/vid-webpack-master/src/app/shared/utils/iframe.service.spec.ts b/vid-webpack-master/src/app/shared/utils/iframe.service.spec.ts
new file mode 100644
index 0000000..fd5fe0e
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/utils/iframe.service.spec.ts
@@ -0,0 +1,40 @@
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {IframeService} from "./iframe.service";
+import {DialogService} from "ng2-bootstrap-modal";
+
+export class DialogServiceMock extends DialogService {
+  removeDialog: (that) => ({})
+}
+
+describe('Iframe service', () => {
+  let injector;
+  let service: IframeService;
+  beforeAll(done => (async () => {
+    TestBed.configureTestingModule({
+      providers : [
+        IframeService
+      ]
+    });
+    await TestBed.compileComponents();
+
+    injector = getTestBed();
+    service = injector.get(IframeService);
+
+  })().then(done).catch(done.fail));
+
+
+  test('service should be defined', ()=>{
+    expect(service).toBeDefined();
+  });
+
+  test('closeIframe: should call removeClassCloseModal', ()=>{
+    const dialogService = new DialogServiceMock(null, null, null, null);
+    spyOn(service, 'removeClassCloseModal');
+    spyOn(dialogService, 'removeDialog');
+    service.closeIframe(dialogService, {})
+
+    expect(service.removeClassCloseModal).toBeCalledWith('content');
+    expect(dialogService.removeDialog).toBeCalledWith({});
+  });
+
+});
diff --git a/vid-webpack-master/src/app/shared/utils/iframe.service.ts b/vid-webpack-master/src/app/shared/utils/iframe.service.ts
index 4c69982..ab93d1a 100644
--- a/vid-webpack-master/src/app/shared/utils/iframe.service.ts
+++ b/vid-webpack-master/src/app/shared/utils/iframe.service.ts
@@ -1,22 +1,31 @@
 import {Injectable} from "@angular/core";
+import {DialogService} from "ng2-bootstrap-modal";
 
 @Injectable()
 export class IframeService {
 
   addClassOpenModal(elementClassName: string) {
-    var parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0];
+    const parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0];
     if (parentBodyElement)  {
       parentBodyElement.classList.add("modal-open");
     }
   }
 
   removeClassCloseModal(elementClassName: string) {
-    var parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0];
+    const parentBodyElement = parent.document.getElementsByClassName(elementClassName)[0];
     if (parentBodyElement)  {
       parentBodyElement.classList.remove("modal-open");
     }
   }
 
+  closeIframe(dialogService : DialogService, that){
+    this.removeClassCloseModal('content');
+    dialogService.removeDialog(that);
+    setTimeout(() => {
+      window.parent.postMessage("closeIframe", "*");
+    }, 15);
+  }
+
 
   addFullScreen(){
     let parentBodyElement =  parent.document.getElementsByClassName('service-model-content')[0];