summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts')
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts129
1 files changed, 129 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
new file mode 100644
index 000000000..17f761c41
--- /dev/null
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.service.ts
@@ -0,0 +1,129 @@
+import {Injectable} from "@angular/core";
+import {ITreeNode} from "angular-tree-component/dist/defs/api";
+import * as _ from 'lodash';
+import {NgRedux} from "@angular-redux/store";
+import {AppState} from "../../../shared/store/reducers";
+import {FeatureFlagsService, Features} from "../../../shared/services/featureFlag/feature-flags.service";
+import {ServiceInstanceActions} from "../../../shared/models/serviceInstanceActions";
+
+@Injectable()
+export class DrawingBoardTreeService {
+ constructor(private store: NgRedux<AppState>){}
+ isVFModuleMissingData(node: ITreeNode, serviceModelId : string): boolean {
+ if(node.data.type === 'VFmodule' &&!_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs) && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey])){
+ if(!_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules)
+ && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName])
+ && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName][node.data.dynamicModelName])){
+
+ return this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.parent.data.vnfStoreKey].vfModules[node.data.modelName][node.data.dynamicModelName].isMissingData;
+ }
+ }
+ return false;
+ }
+
+ isVNFMissingData(node : ITreeNode, serviceModelId : string) : boolean {
+ if(node.data.type == 'VF' && !_.isNil(this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.data.vnfStoreKey])){
+ return this.store.getState().service.serviceInstance[serviceModelId].vnfs[node.data.vnfStoreKey].isMissingData;
+ }
+ }
+
+ isViewEditFlagTrue():boolean{
+ return FeatureFlagsService.getFlagState(Features.FLAG_1902_NEW_VIEW_EDIT, this.store);
+ }
+
+ /**********************************************
+ return all drawing board context menu options
+ ***********************************************/
+ generateContextMenuOptions() : TreeNodeContextMenuModel[]{
+ return [
+ new TreeNodeContextMenuModel('edit', 'context-menu-edit', 'Edit', 'edit-file-o'),
+ new TreeNodeContextMenuModel('duplicate', 'context-menu-duplicate', 'Duplicate', 'copy-o'),
+ new TreeNodeContextMenuModel('showAuditInfo', 'context-menu-showAuditInfo', 'Show audit info', 'eye-o'),
+ new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'),
+ new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'),
+ new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'),
+ new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete')
+ ];
+ }
+
+
+ /*******************************************************************
+ delete or remove all service child's on delete existing service
+ *******************************************************************/
+ deleteActionService(nodes : ITreeNode[], serviceModelId : string){
+ if(!_.isNil(nodes)){
+ for(let node of nodes){
+ node.data = node;
+ if(!_.isNil(node.children)){
+ node.children.map((child)=>{
+ child.data = child;
+ child.parent = node;
+ });
+ }
+
+ let menuActionsName : string = node.data.action === ServiceInstanceActions.Create ? 'remove' : 'delete';
+ if(!_.isNil(node.data.menuActions) && !_.isNil(node.data.menuActions[menuActionsName])){
+ node.data.menuActions[menuActionsName]['method'](node, serviceModelId)
+ }
+
+ }
+ }
+ }
+ /*******************************************************************
+ undo delete all service child's on undo delete existing service
+ *******************************************************************/
+ undoDeleteActionService(nodes : ITreeNode[], serviceModelId : string){
+ if(!_.isNil(nodes)){
+ for(let node of nodes){
+ node.data = node;
+ if(!_.isNil(node.children)){
+ node.children.map((child)=>{
+ child.data = child;
+ child.parent = node;
+ });
+ }
+
+ if(!_.isNil(node.data.menuActions) && !_.isNil(node.data.menuActions['undoDelete'])){
+ node.data.menuActions['undoDelete']['method'](node, serviceModelId)
+ }
+ }
+ }
+ }
+
+ /***********************************************************
+ return true if should add line hover the instance name
+ ***********************************************************/
+ isTextDecoration(node) : boolean{
+ return !_.isNil(node.data) && !_.isNil(node.data.action) && node.data.action.split('_').pop() === 'Delete';
+ }
+
+
+ /******************************************
+ should create object of instances action
+ ******************************************/
+ generateServiceActionObject(nodes){
+ let obj = {};
+ let index = 0;
+ for(let node of nodes){
+ obj[index] = {};
+ index++;
+ }
+ }
+}
+
+export class TreeNodeContextMenuModel {
+ methodName: string;
+ dataTestId: string;
+ label: string;
+ iconClass: string;
+
+ constructor(methodName: string,
+ dataTestId: string,
+ label: string,
+ iconClass: string) {
+ this.methodName = methodName;
+ this.dataTestId = dataTestId;
+ this.label = label;
+ this.iconClass = iconClass;
+ }
+}