aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts')
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts149
1 files changed, 132 insertions, 17 deletions
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts
index e2e31e904..3c3f09b5d 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/pnf/pnf.model.info.extended.ts
@@ -3,7 +3,6 @@ import {ComponentInfoType} from "../../../component-info/component-info-model";
import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
import {ITreeNode} from "angular-tree-component/dist/defs/api";
import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
-
import {PNFModel} from "../../../../../shared/models/pnfModel";
import {SharedTreeService} from "../../shared.tree.service";
import * as _ from "lodash";
@@ -17,19 +16,35 @@ import {
import {DialogService} from "ng2-bootstrap-modal";
import {PnfPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/pnf/pnf.popup.service";
import {PnfTreeNode} from "../../../../../shared/models/pnfTreeNode";
+import {changeInstanceCounter, removeInstance} from "../../../../../shared/storeUtil/utils/general/general.actions";
+import {MessageBoxData} from "../../../../../shared/components/messageBox/messageBox.data";
+import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
+import {IframeService} from "../../../../../shared/utils/iframe.service";
+import {DuplicateService} from "../../../duplicate/duplicate.service";
+import {ModalService} from "../../../../../shared/components/customModal/services/modal.service";
+import {
+ deleteActionPnfInstance,
+ undoDeleteActionPnfInstance,
+ updatePnfPosition
+} from "../../../../../shared/storeUtil/utils/pnf/pnf.actions";
+import {DynamicInputsService} from "../../dynamicInputs.service";
+import {InputType} from "../../../../../shared/models/inputTypes";
-
-export class PnfModelInfoExtended implements ILevelNodeInfo{
+export class PnfModelInfoExtended implements ILevelNodeInfo {
constructor(
private _store: NgRedux<AppState>,
private _sharedTreeService: SharedTreeService,
private _dialogService: DialogService,
- private _pnfPopupService: PnfPopupService
- ){}
+ private _pnfPopupService: PnfPopupService,
+ private _iframeService: IframeService,
+ private _duplicateService: DuplicateService,
+ private modalService: ModalService,
+ private _dynamicInputsService: DynamicInputsService
+ ) {}
name: string = 'pnfs';
- type: string ='PNF';
+ type: string = 'PNF';
typeName: string = 'PNF';
childNames: string[];
componentInfoType = ComponentInfoType.PNF;
@@ -60,15 +75,109 @@ export class PnfModelInfoExtended implements ILevelNodeInfo{
return _.uniq(_.flatten(result));
}
- getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function; visible: Function; enable: Function } } {
- return {};
+ getMenuAction(node: ITreeNode, serviceModelId: string): { [methodName: string]: { method: Function, visible: Function, enable: Function } } {
+ return <any>{
+ edit: {
+ method: (node, serviceModelId) => {
+ this._iframeService.addClassOpenModal('content');
+ this._dialogService.addDialog(GenericFormPopupComponent, {
+ type: PopupType.PNF,
+ uuidData: <any>{
+ serviceId: serviceModelId,
+ modelName: node.data.modelName,
+ pnfStoreKey: node.data.pnfStoreKey,
+ modelId: node.data.modelId,
+ type: node.data.type,
+ popupService: this._pnfPopupService
+ },
+ node: node,
+ isUpdateMode: true
+ });
+ },
+ visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ },
+ showAuditInfo: {
+ method: (node, serviceModelId) => {
+ const instance = this._store.getState().service.serviceInstance[serviceModelId].pnfs[node.data.pnfStoreKey];
+ this._sharedTreeService.openAuditInfoModal(node, serviceModelId, instance, 'PNF', this);
+ },
+ visible: (node) => this._sharedTreeService.shouldShowAuditInfo(node),
+ enable: (node) => this._sharedTreeService.shouldShowAuditInfo(node)
+ },
+ remove: {
+ method: (node, serviceModelId) => {
+ if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+ let storeKey: string = node.data.pnfStoreKey;
+ this._store.dispatch(removeInstance(node.data.pnfStoreKey, serviceModelId, storeKey, node));
+ this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node));
+ this._sharedTreeService.selectedNF = null;
+ } else {
+ let messageBoxData: MessageBoxData = new MessageBoxData(
+ "Remove PNF", // modal title
+ "You are about to remove this PNF from this service. Are you sure you want to remove it?",
+ <any>"warning",
+ <any>"md",
+ [
+ {
+ text: "Remove PNF",
+ size: "large",
+ callback: this.removePnf.bind(this, node, serviceModelId),
+ closeModal: true
+ },
+ {text: "Don’t Remove", size: "medium", closeModal: true}
+ ]);
+
+ MessageBoxService.openModal.next(messageBoxData);
+ }
+ },
+ visible: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ enable: (node) => this._sharedTreeService.shouldShowRemoveAndEdit(node),
+ },
+ delete: {
+ method: (node, serviceModelId) => {
+ if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+ this._store.dispatch(deleteActionPnfInstance(node.data.pnfStoreKey, serviceModelId));
+ } else {
+ this._sharedTreeService.shouldShowDeleteInstanceWithChildrenModal(node, serviceModelId, (node, serviceModelId) => {
+ this._sharedTreeService.removeDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
+ this._store.dispatch(deleteActionPnfInstance(node.data.pnfStoreKey, serviceModelId));
+ });
+ });
+ }
+ },
+ visible: (node) => this._sharedTreeService.shouldShowDelete(node, serviceModelId),
+ enable: (node) => this._sharedTreeService.shouldShowDelete(node, serviceModelId)
+ },
+ undoDelete: {
+ method: (node, serviceModelId) => {
+ if ((!_.isNil(node.data.children) && node.data.children.length === 0) || _.isNil(node.data.children)) {
+ this._store.dispatch(undoDeleteActionPnfInstance(node.data.pnfStoreKey, serviceModelId));
+ } else {
+ this._sharedTreeService.undoDeleteAllChild(node, serviceModelId, (node, serviceModelId) => {
+ this._store.dispatch(undoDeleteActionPnfInstance(node.data.pnfStoreKey, serviceModelId));
+ });
+ }
+ },
+ visible: (node) => this._sharedTreeService.shouldShowUndoDelete(node),
+ enable: (node, serviceModelId) => this._sharedTreeService.shouldShowUndoDelete(node) && !this._sharedTreeService.isServiceOnDeleteMode(serviceModelId)
+ }
+ }
+ }
+
+ removePnf(this, node, serviceModelId) {
+ this._store.dispatch(removeInstance(node.data.modelName, serviceModelId, node.data.pnfStoreKey, node));
+ this._store.dispatch(changeInstanceCounter(node.data.modelUniqueId, serviceModelId, -1, node));
+ this._sharedTreeService.selectedNF = null;
}
getModel = (instanceModel: any): PNFModel => {
return new PNFModel(instanceModel);
};
- getNextLevelObject(): any { return null; }
+ getNextLevelObject(): any {
+ return null;
+ }
getNodeCount(node: ITreeNode, serviceModelId: string): number {
let map = null;
@@ -90,17 +199,20 @@ export class PnfModelInfoExtended implements ILevelNodeInfo{
getTooltip = (): string => 'PNF';
-
getType = (): string => 'PNF';
-
hasMissingData(instance, dynamicInputs: any, isEcompGeneratedNaming: boolean): boolean {
- return false;
+ return this._sharedTreeService.hasMissingData(instance, dynamicInputs, isEcompGeneratedNaming, [InputType.PLATFORM]);
}
- isEcompGeneratedNaming(currentModel): boolean {
- return false;
- }
+ /***********************************************************
+ * return if user should provide instance name or not.
+ * @param currentModel - current Model object
+ ************************************************************/
+ isEcompGeneratedNaming = (currentModel): boolean => {
+ const ecompGeneratedNaming = currentModel.properties.ecomp_generated_naming;
+ return ecompGeneratedNaming === "true";
+ };
onClickAdd(node, serviceModelId: string): void {
this._dialogService.addDialog(GenericFormPopupComponent, {
@@ -130,9 +242,12 @@ export class PnfModelInfoExtended implements ILevelNodeInfo{
return new AvailableNodeIcons(showAddIcon, isReachedLimit)
}
- updateDynamicInputsDataFromModel = (currentModel): any => [];
+ updateDynamicInputsDataFromModel = (currentModel): any => {
+ let displayInputs = _.isNil(currentModel) ? [] : currentModel.inputs;
+ return _.isEmpty(displayInputs) ? [] : this._dynamicInputsService.getArbitraryInputs(displayInputs);
+ };
updatePosition(that, node, instanceId): void {
+ that.store.dispatch(updatePnfPosition(node, instanceId, node.vnfStoreKey));
}
-
}