summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorikram <ikram@research.att.com>2020-07-13 15:28:31 -0400
committerikram <ikram@research.att.com>2020-07-13 15:28:31 -0400
commit9ba0b8ccfa546a2fd76e0fc2ff68a748abe64848 (patch)
treeacca2b9fe43cd198ebc3c60ea15df2cfa1aa0031
parenta205bcdfd37ce8afcabd093a461b14a40a065ba4 (diff)
Visualization of the VF Module Sequencing
Issue-ID: VID-860 In this user story, we plan to allow the user to visually see the sequence numbers when a VF module is added from the left panel of the drawing board onto the right one. Note: The idea that the sequence change when a VF Module is dragged up and down is not part of the scope of this story - we will deliver that separately. This is only about the default sequencing that the drawing board renders when a new VF module is created into the 'instance' part of the drawing board from the 'model' part of the drawing board. Signed-off-by: ikram <ikram@research.att.com> Change-Id: Iadd5cef1012f8ef5c670bbd2c46950680a9e6b0e
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html23
-rw-r--r--vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts4
-rw-r--r--vid-webpack-master/src/app/shared/models/vfModuleTreeNode.ts1
-rw-r--r--vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts2
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts14
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts8
6 files changed, 44 insertions, 8 deletions
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
index 0ebee903c..59905bd75 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/drawing-board-tree/drawing-board-tree.html
@@ -36,6 +36,19 @@
<div class="failed-msg" [attr.data-tests-id]="'failed-error-message'" *ngIf="node?.data?.isFailed">Failed
</div>
</custom-popover>
+ <div *ngIf= "node?.data?.type == 'VFmodule'" class="instance-type" style="position: relative;border: 1px solid #D2D2CD;">
+ <div *ngIf="node?.data?.action == 'Create' && node?.data?.type == 'VFmodule'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div>
+ <div><span title="{{node.data.position}}"
+ [attr.data-tests-id]="'node-position-indicator'">{{node?.data?.position}}</span></div>
+ <div *ngIf="isLinkedInstance(node?.data)">
+ <custom-icon
+ [ngClass]="'link'"
+ class="icon-link"
+ [size]="'small'"
+ [name]="'link'">
+ </custom-icon>
+ </div>
+ </div>
<div class="instance-type" style="position: relative;border: 1px solid #D2D2CD;">
<div *ngIf="node?.data?.action == 'Create'" class="notShowOnViewMode notShowOnCreateMode newIcon"></div>
<div><span title="{{node.data.type}}"
@@ -67,11 +80,11 @@
<span>Limit</span><span>{{node?.data?.limitMembers}}</span>
</div>
<div class="model-actions notShowOnViewMode" *ngIf="isPaused(node)" style="border-right: none;">
- <custom-icon
- [size]="'large'"
- [name]="'pause-upon-completion'"
- [testId]="'pause-upon-completion'">
- </custom-icon>
+ <custom-icon
+ [size]="'large'"
+ [name]="'pause-upon-completion'"
+ [testId]="'pause-upon-completion'">
+ </custom-icon>
</div>
<div class="model-actions notShowOnViewMode">
<span class="icon-browse"
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
index 607519ab3..f7bf35abd 100644
--- a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
+++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts
@@ -99,7 +99,7 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
newVfModule.isFailed = _.isNil(instance.isFailed) ? false : instance.isFailed;
newVfModule.statusMessage = !_.isNil(instance.statusMessage) ? instance.statusMessage : "";
newVfModule.pauseInstantiation = instance.pauseInstantiation;
-
+ newVfModule.position = instance.position;
newVfModule = this._sharedTreeService.addingStatusProperty(newVfModule);
return newVfModule;
}
@@ -424,7 +424,7 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
}
updatePosition(that, node, instanceId, parentStoreKey): void {
- that.store.dispatch(updateVFModulePosition(node, instanceId, parentStoreKey));
+ this._store.dispatch(updateVFModulePosition(node, instanceId, parentStoreKey));
}
diff --git a/vid-webpack-master/src/app/shared/models/vfModuleTreeNode.ts b/vid-webpack-master/src/app/shared/models/vfModuleTreeNode.ts
index e3d1b79b0..166d90f62 100644
--- a/vid-webpack-master/src/app/shared/models/vfModuleTreeNode.ts
+++ b/vid-webpack-master/src/app/shared/models/vfModuleTreeNode.ts
@@ -10,6 +10,7 @@ export class VfModuleTreeNode extends TreeNodeModel{
menuActions: { [p: string]: { method: Function; visible: Function; enable: Function } };
isFailed: boolean;
statusMessage?: string;
+ position: number;
constructor(vfModuleInstance: VfModuleInstance, vfModuleModel: VfModule, vfModuleModelName: string, dynamicInputs: any, isEcompGeneratedNaming: boolean, dynamicModelName : string){
super(vfModuleInstance,vfModuleModel);
diff --git a/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts b/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts
index 3b3092a4c..79cd0682e 100644
--- a/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts
+++ b/vid-webpack-master/src/app/shared/services/defaultDataServiceGenerator/default.data.generator.service.ts
@@ -329,6 +329,8 @@ export class DefaultDataGeneratorService {
],
'trackById': DefaultDataGeneratorService.createRandomTrackById(),
'rollbackOnFailure' : isALaCarte ? true : null,
+ 'position': vfModule.position
+
};
}
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts
index c192ece48..cc2ed4fe3 100644
--- a/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts
+++ b/vid-webpack-master/src/app/shared/storeUtil/utils/reducersHelper.ts
@@ -28,3 +28,17 @@ function resetUpgradeStatus(newState: any, serviceUuid: string){
newState.serviceInstance[serviceUuid].upgradedVFMSonsCounter = 0;
newState.serviceInstance[serviceUuid].isUpgraded = false;
}
+
+export function calculatePosition(newState :any,serviceUuid: string, vnfStoreKey :string) {
+
+ let totalNumOfVfModules =(Object.keys(newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules).length);
+ totalNumOfVfModules = 0;
+ _.forOwn(newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules, (vfModuleInstance) => {
+ _.forOwn(vfModuleInstance, (module) => {
+ module.position = totalNumOfVfModules +1;
+ totalNumOfVfModules= totalNumOfVfModules+1;
+ })
+ });
+
+
+}
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts
index 294536de6..fa6bd9ecb 100644
--- a/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts
+++ b/vid-webpack-master/src/app/shared/storeUtil/utils/vfModule/vfModule.reducers.ts
@@ -18,6 +18,7 @@ import {VfModuleMap} from "../../../models/vfModulesMap";
import {ServiceState} from "../main.reducer";
import {PauseStatus, ServiceInstanceActions} from "../../../models/serviceInstanceActions";
import {updateServiceValidationCounter} from "../reducersHelper";
+import {calculatePosition} from "../reducersHelper";
export function vfModuleReducer(state: ServiceState , action: Action) : ServiceState{
@@ -34,12 +35,15 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS
let vfModulesMap = newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules[vfModuleId] || new VfModuleMap();
let randomId = generateId();
vfInstance.action = ServiceInstanceActions.Create;
- vfModulesMap[vfModuleId + randomId] = vfInstance;
+ let dynamicName = vfModuleId + randomId;
+ vfModulesMap[dynamicName] = vfInstance;
updateUniqueNames(null, vfInstance.instanceName, newState.serviceInstance[serviceUuid]);
updateUniqueNames(null, vfInstance.volumeGroupName, newState.serviceInstance[serviceUuid]);
updateServiceValidationCounter(newState, false, vfInstance['isMissingData'], serviceUuid);
newState.serviceInstance[serviceUuid].vnfs[vnfStoreKey].vfModules[vfModuleId] = vfModulesMap;
+ //update position of newly added VF module
+ calculatePosition(newState,serviceUuid, vnfStoreKey);
return newState;
}
case VfModuleActions.UPDATE_VF_MODULE: {
@@ -60,6 +64,8 @@ export function vfModuleReducer(state: ServiceState , action: Action) : ServiceS
updateUniqueNames(vfModulesMap[updateVFModuleInstanceAction.dynamicModelName].volumeGroupName, vfInstance.volumeGroupName, newState.serviceInstance[serviceUuid]);
vfModulesMap[updateVFModuleInstanceAction.dynamicModelName] = vfInstance;
newState.serviceInstance[serviceUuid].vnfs[vnfId].vfModules[vfModuleId] = vfModulesMap;
+ //retain the position of newly added VF module -- change logic
+ calculatePosition(newState,serviceUuid, vnfStoreKey);
return newState;
}
case VfModuleActions.REMOVE_VNF_MODULE_INSTANCE: {