diff options
Diffstat (limited to 'vid-webpack-master/src/app/shared')
6 files changed, 55 insertions, 13 deletions
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 3cd633de6..eb608652c 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 @@ export class GenericFormPopupComponent extends DialogComponent<PopupModel, boole } 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 07fc7ab22..e2922b2a2 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()">× </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 6a734161f..20655d54a 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 @@ export class InstantiationTemplatesModalComponent extends DialogComponent<string }; 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 211f59337..47f849059 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 @@ export class SearchElementsModalComponent extends DialogComponent<{ modalInforma 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 000000000..fd5fe0e65 --- /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 4c699825f..ab93d1ac8 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]; |