From 6beb446925c967aca92f5513adf36c5db77c00d6 Mon Sep 17 00:00:00 2001 From: TATTAVARADA Date: Thu, 27 Apr 2017 07:53:18 -0400 Subject: [PORTAL-7] Rebase This rebasing includes common libraries and common overlays projects abstraction of components Change-Id: Ia1efa4deacdc5701e6205104ac021a6c80ed60ba Signed-off-by: st782s --- .../webapp/app/fusion/scripts/network/net_map.js | 947 +++++++++++++++++++++ 1 file changed, 947 insertions(+) create mode 100644 ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network') diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js new file mode 100644 index 00000000..49599503 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/network/net_map.js @@ -0,0 +1,947 @@ +var graph,paper; +var zoomIndex = 1; +var recentCallFlow; +var recentCallFlowStep; +var hash_map = new Object(); +var hashVertexDomainXMap = new Object(); + +var globalCollapseDomanString = ""; +var changeIcon = false; +var colorSet = ["#0000FF","#8A2BE2","#DEB887", + "#5F9EA0","#7FFF00","#D2691E","#6495ED","#DC143C", + "#000000","#A9A9A9","#BDB76B", + "#FF1493","#48D1CC","#A52A2A","#FF7F50","#DAA520","#32CD32"]; +var colorIndex = 0; +String.prototype.startsWith = function (str) +{ + return this.indexOf(str) == 0; +} + +String.prototype.replaceAt=function(index, character) { + return this.substr(0, index) + character + this.substr(index+character.length); +} +function getColor(id1,id2) { + + var color = colorSet[colorIndex]; + colorIndex++; + return color; +} +///////////////////////////////////////////////////////////////////////////////////// + $('.legend-toggle').click(function (a) { + + $('.legend-toggle .toggle').hasClass("on")?($('.legend-toggle .toggle').removeClass("on"),$("#legend").fadeOut(350)):($('.legend-toggle .toggle').addClass("on"),$("#legend").fadeIn(350)); + + }); + + $('.symbols-toggle').click(function (a) { + + $('.symbols-toggle .toggle').hasClass("on")?($('.symbols-toggle .toggle').removeClass("on"),$("#symbols").fadeOut(350)):($('.symbols-toggle .toggle').addClass("on"),$("#symbols").fadeIn(350)); + }); + + + +plotNodes = function(domain) { + + if(domain.containerList) { + + var containerList = domain.containerList; + + for(var i=0; i' + ''); + + +} + +plotContainer = function(container, cssType) { + + attributes = container; + //console.log(attributes); + if(cssType === 'domain'){ + $('#networkModelContainer').append('

' + attributes.name + '

'); + $('#networkModelContainer').append('
' + '
'); + + + }else if(attributes.visibilityType==='invisible'){ + + $('#networkModelContainer').append('

' + attributes.name + '

'); + + }else{ + + if(!recentCallFlow){ + $('#networkModelContainer').append('
' + '
'); + //$('#networkModelContainer').append('

'+ attributes.name + '

'); + plotHeader(attributes,cssType); + }else{ + $('#networkModelContainer').append('
' + '
'); + //$('#networkModelContainer').append('

'+ attributes.name + '

'); + plotHeader(attributes,cssType); + } + + } + + plotNodes(container); + + } + +plotContainerIcon = function(container, cssType) { + attributes = container; + //console.log(attributes); + if(cssType === 'domain'){ + $('#networkModelContainer').append('

' + attributes.name + '

'); + $('#networkModelContainer').append('
' + '
'); + + }else if(attributes.visibilityType==='invisible'){ + + $('#networkModelContainer').append('

' + attributes.name + '

'); + } + else{ + if(!recentCallFlow){ + $('#networkModelContainer').append('
' + '
'); + //$('#networkModelContainer').append('

'+ attributes.name + '

'); + plotHeader(attributes,cssType); + }else{ + $('#networkModelContainer').append('
' + '
'); + //$('#networkModelContainer').append('

'+ attributes.name + '

'); + plotHeader(attributes,cssType); + } + } + + plotNodesIcon(container); + +} + +joint.shapes.basic.newRect = joint.shapes.basic.Generic.extend({ + + markup: '', + + defaults: joint.util.deepSupplement({ + + type: 'basic.newRect', + attrs: { + 'rect': { fill: 'white', stroke: 'black', 'follow-scale': true, width: 80, height: 40}, + 'text': { 'font-size': 14, 'ref-x': .5, 'ref-y': .5, ref: 'rect', 'y-alignment': 'middle', 'x-alignment': 'middle'} + }, + shortname: 'Transcoder', + description: 'Reconciles mismatched CODECs', + longname: 'ACME SBC device providing dedicated Transcoder function', + vendor: 'ORACLE ACME', + primary_function: 'Allows endpoints utilizing different CODECs to communicate', + key_interface: 'SBC, MSC', + network_domain: 'Universal Services Platform - Access Module Group - ISA Core Office', + +}, joint.shapes.basic.Generic.prototype.defaults)}); + +plotHeader = function(attributes,cssType){ + + var nameLength = attributes.name.length; + var headName; + if (nameLength>22){ + headName = attributes.name.substring(0,12) + "-\n" + attributes.name.substring(12); + + }else{ + headName = attributes.name; + } + + var thisElement = new joint.shapes.basic.newRect({ + position: { x: attributes.left+10, y: attributes.top + 4 }, + size: { width: attributes.width-20, height: 15 }, + attrs: { + rect: { fill: "gray" ,stroke: "gray",opacity:"0.8"}, + text: { text: headName, fill: 'black' ,'font-size':10, 'font-weight':'700','text-transform': 'capitalize'} + + } + }); + if(cssType==="outContainer"){ + + thisElement.attr({ + rect:{fill:"#e7e7e7", stroke: "#e7e7e7",opacity:"0.8"} + }); + + }else{ + + thisElement.attr({ + rect:{fill:"ghostwhite", stroke: "ghostwhite",opacity:"0.8"} + }); + + + } + graph.addCells([thisElement]); + +} +plotElement = function(element) { + + if(element.left){ + if(!element.id.startsWith("com.att.trinity.ue")){ + left = element.left ; + var thisColor = element.bgColor; + var thisElement = new joint.shapes.basic.newRect({ + id:element.id, + position: { x: element.left, y: element.top }, + size: { width: element.width, height: element.height*2 }, + + attrs: { + rect: { fill: "lightgray" ,stroke: "gray"}, + text: { text: element.name.replace(" ","\n"), fill: 'black' ,'font-size': 9, 'font-weight': 'bold','font-variant': 'small-caps', 'text-transform': 'capitalize'} + + } + + }); + if(!recentCallFlow){ + thisElement.attr({ + rect:{fill:element.bgColor, stroke: thisColor} + }); + + } + //thisElement.attr({rect:{style:{"pointer-events":"none"}}}); + thisElement.set('bg-color', (element.bgColor!= null?element.bgColor:"blue")); + thisElement.set('icon_path', (element.imgFileName != null? element.imgFileName: "static/img/map/icons/sgw-icon.png")); + thisElement.set('shortname', element.name); + thisElement.set('description', element.details.description); + thisElement.set('longname', element.details.display_longname); + thisElement.set('vendor', element.details.vendor); + thisElement.set('primary_function', element.details.primary_function); + thisElement.set('key_interface', element.details.key_interfaces); + thisElement.set('location', element.details.location); + thisElement.set('network_function', (element.details.network_function=="V")? "Virtual" : "Physical" ); + if(element.borderType == 'dashed'){ + + thisElement.attr({ + rect: {stroke: 'black','stroke-width':"2",'stroke-dasharray': "5,2" }, + }); + + } + + + hash_map[element.name+'']=thisElement.name; + graph.addCells([thisElement]); + + }else{ + plotElementIcon(element); + } + } + +} + +joint.shapes.basic.DecoratedRect = joint.shapes.basic.Generic.extend({ + + markup: '', + + defaults: joint.util.deepSupplement({ + + type: 'basic.DecoratedRect', + size: { width: 100, height: 60 }, + attrs: { + 'rect': { fill: 'lightgray', width: 100, height: 60 }, + 'text': { 'font-size': 14, text: '', 'ref-x': .5, 'ref-y': .5, ref: 'rect', 'y-alignment': 'middle', 'x-alignment': 'middle', fill: 'black'}, + 'image': { ref: 'rect', width: 35, height: 25} + }, + shortname: 'Transcoder', + description: 'Reconciles mismatched CODECs', + longname: 'ACME SBC device providing dedicated Transcoder function', + vendor: 'ORACLE ACME', + primary_function: 'Allows endpoints utilizing different CODECs to communicate', + key_interface: 'SBC, MSC', + network_domain: 'Universal Services Platform - Access Module Group - ISA Core Office', + + }, joint.shapes.basic.Generic.prototype.defaults) +}); + +plotElementIcon = function(element) { + + + if(element.left){ + + left = element.left ; + uetop = element.top; + if(element.id.startsWith("com.att.trinity.ue")) { + uetop = element.top - 30; + } else { + uetop = element.top ; + } + var thisElement = new joint.shapes.basic.DecoratedRect({ + id:element.id, + position: { x: element.left, y: uetop }, + size: { width:element.width, height: element.height*2 }, + // style:{'pointer-events':'none'}, + attrs: { + //image: { 'xlink:href': 'static/img/map/icons/sgw-icon.png' + image: { 'xlink:href': element.imgFileName} + //rect:{style:{"pointer-events":"none"}} + // style:{'pointer-events':'none'} + // 'pointer-events':'none' + } + }); + // thisElement.attr({rect:{style:{"pointer-events":"none"}}}); + thisElement.set('bg-color', element.bgColor); + thisElement.set('icon_path', element.imgFileName); + thisElement.set('shortname', element.name); + thisElement.set('description', element.details.description); + thisElement.set('longname', element.details.display_longname); + thisElement.set('vendor', element.details.vendor); + thisElement.set('primary_function', element.details.primary_function); + thisElement.set('key_interface', element.details.key_interfaces); + thisElement.set('location', element.details.location); + thisElement.set('network_function', (element.details.network_function=="V")? "Virtual" : "Physical"); + + if(!recentCallFlow ){ + thisElement.attr({ + rect:{fill:element.bgColor } + }); + + } + if(element.borderType == 'dashed'){ + + thisElement.attr({ + rect: {stroke: 'lightskyblue','stroke-width':"2",'stroke-dasharray': "5,2" }, + }); + + } + if(element.id.startsWith("com.att.trinity.ue")){ + thisElement.attr({ + rect: {fill: 'white', style:{'pointer-events':'none'}}, + image: { style:{'pointer-events':'none'}} + }); + + //thisElement.css('pointer-events', 'none'); + // paper.thisElement.css('pointer-events', 'none'); + } + hash_map[element.name+'']=thisElement.name; + graph.addCells([thisElement]); + + } + +} + + +plotNetMapCallFlow = function(callFlow, callFlowStep, collapsedDomainString, expandedDomainString, icon) { + + init(); + + recentCallFlow = callFlow; //callFlow != null ? callFlow : recentCallFlow; + recentCallFlowStep = callFlowStep; //callFlowStep != null ? callFlowStep : recentCallFlowStep; + + // $.get( "static/trisim_files/network_map.yml", function( data ) { + + if(callFlow != null &&callFlow.title != null) { + + $(".map-title").html(callFlow.title); + + }else{ + $(".map-title").html("Network Map"); + + } + $.post('network_model.htm?action=layout', { + collapsedDomains : collapsedDomainString, + expandedDomains : expandedDomainString + }, function(data) { + var yamlObject = jsyaml.load(data); + + var layout = yamlObject.domainList; + for(var i=0; i -1)|| (globalCollapseDomanString.indexOf("RAN") > -1)|| (globalCollapseDomanString.indexOf("EPC") > -1)) { + hashVertexDomainXMap["USP"] = -999; + hashVertexDomainXMap["RAN"] = -999; + hashVertexDomainXMap["EPC"] = -999; + } + + } + + + addCollapseEvents(); //onclick="alert(\'hello\')" + //console.log(yamlObject); + //addLink('EATF','SDG'); + if(icon == false) + $('.icons-toggle .toggle').removeClass("on"); + + + if(callFlow != null && callFlow.id != null) { + + // var callFlowLinkFile = callFlow + "_" + callFlowStep + ".yml"; + + $.post('network_model.htm?action=callflow', { + callFlowName : callFlow.id, + callFlowStep : callFlowStep + }, function( data ) { + + try{ + var yamlObject = jsyaml.load(data); + //addLink("EATF","MRF"); + var layout = yamlObject.linkList; + + var hashLinkElements = new Object(); + for(var i=0; i