diff options
Diffstat (limited to 'vid-webpack-master/src/app/shared/components/messageBox')
4 files changed, 31 insertions, 58 deletions
diff --git a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.component.ts b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.component.ts index 08e199cf5..c610110fd 100644 --- a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.component.ts +++ b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.component.ts @@ -30,7 +30,7 @@ import { Component } from '@angular/core'; import { MessageBoxData} from './messageBox.data'; import { MessageBoxService } from './messageBox.service'; -import { SdcUiComponents } from 'sdc-ui/lib/angular'; +import { SdcUiServices} from "onap-ui-angular"; @Component({ selector: 'message-box', @@ -38,12 +38,17 @@ import { SdcUiComponents } from 'sdc-ui/lib/angular'; }) export class MessageBoxComponent { - modalService: SdcUiComponents.ModalService; - - constructor(modalService: SdcUiComponents.ModalService, private _messageBoxService : MessageBoxService) { + modalService: SdcUiServices.ModalService; + isOpened : boolean = false; + constructor(modalService: SdcUiServices.ModalService, private _messageBoxService : MessageBoxService) { this.modalService = modalService; + MessageBoxService.openModal.subscribe((messageBoxData: MessageBoxData) => { - modalService.openModal(this._messageBoxService.setConfig(messageBoxData)) + if(this.isOpened) return; + this.isOpened = true; + modalService.openModal(this._messageBoxService.setConfig(messageBoxData)).onDestroy(()=>{ + this.isOpened = false; + }) }); } } diff --git a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.data.ts b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.data.ts index 165140ba7..e67b1f76f 100644 --- a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.data.ts +++ b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.data.ts @@ -1,13 +1,14 @@ -import { Subject } from 'rxjs/Subject'; +import { SdcUiCommon} from "onap-ui-angular"; +import {IModalButtonComponent} from "onap-ui-angular/dist/modals/models/modal-config"; export class MessageBoxData { title?: string; message?: string; - size : ModalSize; - type: ModalType; - buttons: Array<IModalButtonComponent>; + size : SdcUiCommon.ModalSize; + type: SdcUiCommon.ModalType; + buttons: IModalButtonComponent[]; - constructor(title: string, message: string, type: ModalType, size : ModalSize, buttons: Array<IModalButtonComponent>) { + constructor(title: string, message: string, type: SdcUiCommon.ModalType, size : SdcUiCommon.ModalSize, buttons: IModalButtonComponent[]) { this.title = title; this.message = message; this.size = size; @@ -15,37 +16,3 @@ export class MessageBoxData { this.buttons = buttons; } } - -export interface IModalConfig { - size?: string; - title?: string; - message?: string; - buttons?: Array<IModalButtonComponent>; - type?: string; -} -export interface IButtonComponent { - text: string; - disabled?: boolean; - type?: string; - size?: string; -} -export interface IModalButtonComponent extends IButtonComponent { - callback?: Function; - closeModal?: boolean; -} -export enum ModalType { - alert = "alert", - error = "error", - standard = "info", - custom = "custom", -} -export enum ModalSize { - xlarge = "xl", - large = "l", - medium = "md", - small = "sm", - xsmall = "xsm", -} - - - diff --git a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.spec.ts b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.spec.ts index 89562ac54..1d0e18ffb 100644 --- a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.spec.ts +++ b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.spec.ts @@ -3,35 +3,37 @@ import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; - import { MessageBoxService } from './messageBox.service'; -import {MessageBoxData, ModalSize, ModalType } from './messageBox.data'; +import {MessageBoxData} from './messageBox.data'; +import { SdcUiCommon} from "onap-ui-angular"; describe('MessageBoxService', () => { let injector; let service: MessageBoxService; let httpMock: HttpTestingController; - beforeEach(() => { + beforeAll(done => (async () => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [MessageBoxService] }); + await TestBed.compileComponents(); injector = getTestBed(); service = injector.get(MessageBoxService); httpMock = injector.get(HttpTestingController); - }); + + })().then(done).catch(done.fail)); describe('#setConfig', () => { - it('should return <IModalConfig>', (done: DoneFn) => { + test('should return <IModalConfig>', () => { let title = "Delete Instantiation"; let message = "You are about to stop the instantiation process of this service. \nAll data will be lost. Are you sure you want to stop?"; let messageBoxData : MessageBoxData = new MessageBoxData( title, message, - ModalType.alert, - ModalSize.medium, + SdcUiCommon.ModalType.warning, + SdcUiCommon.ModalSize.medium, [ {text:"Stop Instantiation", size:"large", closeModal:true}, {text:"Cancel", size:"medium", closeModal:true} @@ -41,9 +43,8 @@ describe('MessageBoxService', () => { expect(result.title).toEqual(title); expect(result.message).toEqual(message); expect(result.buttons.length).toEqual(2); - expect(result.type).toEqual(ModalType.alert); - expect(result.size).toEqual(ModalSize.medium); - done(); + expect(result.type).toEqual(SdcUiCommon.ModalType.warning); + expect(result.size).toEqual(SdcUiCommon.ModalSize.medium); }); }); }); diff --git a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.ts b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.ts index eaa012d3b..d73631a43 100644 --- a/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.ts +++ b/vid-webpack-master/src/app/shared/components/messageBox/messageBox.service.ts @@ -1,18 +1,18 @@ import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; -import { IModalConfig, MessageBoxData, ModalSize, ModalType } from './messageBox.data'; +import {MessageBoxData} from "./messageBox.data"; +import { SdcUiCommon} from "onap-ui-angular"; @Injectable() export class MessageBoxService { static openModal: Subject<MessageBoxData> = new Subject<MessageBoxData>(); - setConfig(messageBoxData: MessageBoxData) : IModalConfig{ + setConfig(messageBoxData: MessageBoxData) : SdcUiCommon.IModalConfig{ return { - size : ModalSize.medium, + size : SdcUiCommon.ModalSize.medium, title : messageBoxData.title, type : messageBoxData.type, message : messageBoxData.message, buttons: messageBoxData.buttons }; } - } |