diff options
author | Ittay Stern <ittay.stern@att.com> | 2018-08-29 17:01:32 +0300 |
---|---|---|
committer | Ittay Stern <ittay.stern@att.com> | 2019-02-18 18:35:30 +0200 |
commit | 6f900cc45d7dd7f97430812b86b5c1d1693c8ae3 (patch) | |
tree | 936005c364dc5a7264d6304d4777c3d83494db22 /vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts | |
parent | 67d99f816cc583643c35193197594cf78d8ce60a (diff) |
merge from ecomp a88f0072 - Modern UI
Issue-ID: VID-378
Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6
Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts')
-rw-r--r-- | vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts new file mode 100644 index 000000000..6e4391572 --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-header/drawing-board-header.component.ts @@ -0,0 +1,187 @@ +import {Component, ViewChild} from '@angular/core'; +import {ContextMenuComponent, ContextMenuService} from 'ngx-contextmenu'; +import {DialogService} from 'ng2-bootstrap-modal'; +import {MsoService} from '../../../shared/services/msoService/mso.service' +import * as _ from 'lodash'; +import {ActivatedRoute} from '@angular/router'; +import {ServiceInstance} from "../../../shared/models/serviceInstance"; +import {OwningEntity} from "../../../shared/models/owningEntity"; +import {MessageBoxData} from "../../../shared/components/messageBox/messageBox.data"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../shared/store/reducers"; +import {IframeService} from "../../../shared/utils/iframe.service"; +import { + GenericFormPopupComponent, + PopupType +} from "../../../shared/components/genericFormPopup/generic-form-popup.component"; +import {ServicePopupService} from "../../../shared/components/genericFormPopup/genericFormServices/service/service.popup.service"; +import {SdcUiCommon} from "onap-ui-angular"; +import {DrawingBoardModes} from "../drawing-board.modes"; +import {DrawingBoardHeaderService} from "./drawing-board-header.service"; +import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions"; +import {DrawingBoardPermissions} from "../../guards/servicePlanningGuard/drawingBoardGuard"; +import {MessageBoxService} from "../../../shared/components/messageBox/messageBox.service"; + +@Component({ + selector: 'drawing-board-header', + providers: [MsoService], + templateUrl: './drawing-board-header.component.html', + styleUrls: ['./drawing-board-header.component.scss'] +}) + +export class DrawingBoardHeader { + serviceName: string; + numServicesToDeploy: number; + status: string = 'Designing a new service'; + serviceModelId: string; + jobId: string; + parentElementClassName = 'content'; + mode : DrawingBoardModes = DrawingBoardModes.CREATE; + serviceOrchStatus: string; + isDeleted: boolean = false; + store : NgRedux<AppState>; + drawingBoardPermissions : DrawingBoardPermissions; + drawingBoardHeaderService : DrawingBoardHeaderService; + isServiceFailed: boolean; + serviceStatusMessage: string; + constructor(private _contextMenuService: ContextMenuService, private dialogService: DialogService, + private _iframeService : IframeService, + private route: ActivatedRoute, private msoService: MsoService, + private _servicePopupService : ServicePopupService, + private _drawingBoardHeaderService : DrawingBoardHeaderService, + private _store: NgRedux<AppState>, + private _drawingBoardPermissions : DrawingBoardPermissions) { + this.store = _store; + this.drawingBoardPermissions = _drawingBoardPermissions; + this.drawingBoardHeaderService = _drawingBoardHeaderService; + this.mode = (!_.isNil(this.route.routeConfig.path) && this.route.routeConfig.path !== "") ? this.route.routeConfig.path as DrawingBoardModes : DrawingBoardModes.CREATE; + this.route + .queryParams + .subscribe((params) => { + this.serviceModelId = params['serviceModelId']; + this.jobId = params['jobId']; + if (_.has(this.store.getState().service.serviceHierarchy, this.serviceModelId)) { + this.setValuesFromStore(); + this.store.subscribe(() => { + this.setValuesFromStore(); + }); + } + }); + } + + + @ViewChild(ContextMenuComponent) public contextMenu: ContextMenuComponent; + + editViewEdit(): void { + window.parent.location.assign(this._drawingBoardHeaderService.generateOldViewEditPath()); + } + + isPermitted() : boolean { + return this.drawingBoardPermissions.isEditPermitted; +} + + getModeName():string { + switch (this.mode) { + case DrawingBoardModes.CREATE: + return 'IN DESIGN'; + case DrawingBoardModes.VIEW: + case DrawingBoardModes.RETRY: + return 'VIEW ONLY'; + case DrawingBoardModes.EDIT: + case DrawingBoardModes.RETRY_EDIT: + return 'IN EDITING'; + default: + return 'IN DESIGN'; + } + + } + public onContextMenu($event: MouseEvent, item: any): void { + this._contextMenuService.show.next({ + contextMenu: this.contextMenu, + event: $event, + item: item, + }); + $event.preventDefault(); + $event.stopPropagation(); + } + + private setValuesFromStore() { + if(!_.isNil(this.store.getState().service.serviceInstance) && !_.isNil(this.store.getState().service.serviceInstance[this.serviceModelId])){ + const serviceInstance = this.store.getState().service.serviceInstance[this.serviceModelId]; + this.numServicesToDeploy = serviceInstance.bulkSize; + this.serviceName = serviceInstance.instanceName || '<Automatically Assigned>'; + this.serviceOrchStatus = serviceInstance.orchStatus || ""; + this.isServiceFailed = serviceInstance.isFailed; + this.serviceStatusMessage = serviceInstance.statusMessage; + } + } + + public editService(): void { + this._iframeService.addClassOpenModal(this.parentElementClassName); + this.dialogService.addDialog(GenericFormPopupComponent, { + type: PopupType.SERVICE, + uuidData: <any>{ + type : PopupType.SERVICE, + isMacro : this.store.getState().service.serviceHierarchy[this.serviceModelId].service.instantiationType === 'Macro', + serviceId: this.serviceModelId, + popupService: this._servicePopupService + }, + isUpdateMode: true + }); + } + + extractOwningEntityNameAccordingtoId(id:String): string { + let owningEntityName; + _.forEach(this.store.getState().service.categoryParameters.owningEntityList,(owningEntity: OwningEntity) => { + if (owningEntity.id === id) { + owningEntityName = owningEntity.name; + + }}); + return owningEntityName; + } + + extractServiceFields(): any { + let instanceFields : ServiceInstance; + instanceFields = this.store.getState().service.serviceInstance[this.serviceModelId]; + if (instanceFields.action === ServiceInstanceActions.Create) { + instanceFields.subscriberName = this.store.getState().service.subscribers.find(sub => sub.id === instanceFields.globalSubscriberId).name; + instanceFields.owningEntityName = this.extractOwningEntityNameAccordingtoId(instanceFields.owningEntityId); + } + return _.omit(instanceFields,'optionalGroupMembersMap'); + } + + + public deployService(): void { + let instanceFields = this.extractServiceFields(); + if (this.mode !== DrawingBoardModes.RETRY_EDIT) { + instanceFields.rollbackOnFailure = instanceFields.rollbackOnFailure === 'true'; + this.msoService.submitMsoTask(instanceFields).subscribe((result) => { + window.parent.postMessage("navigateToInstantiationStatus", '*'); + }); + } else { + this.msoService.retryBulkMsoTask(this.jobId, instanceFields).subscribe((result) => { + window.parent.postMessage("navigateToInstantiationStatus", '*'); + }); + } + } + + closePage() { + let messageBoxData : MessageBoxData = new MessageBoxData( + "Delete Instantiation", // modal title + "You are about to stop the instantiation process of this service. \nAll data will be lost. Are you sure you want to stop?", + SdcUiCommon.ModalType.warning, + SdcUiCommon.ModalSize.medium, + [ + {text:"Stop Instantiation", size:"large", callback: this.navigate.bind(this), closeModal:true}, + {text:"Cancel", size:"medium", closeModal:true} + ]); + + MessageBoxService.openModal.next(messageBoxData); + } + + + + navigate(){ + window.parent.postMessage("navigateTo", "*"); + } +} |