diff options
Diffstat (limited to 'framework/src/onos/web/gui/src/main/webapp')
4 files changed, 39 insertions, 2 deletions
diff --git a/framework/src/onos/web/gui/src/main/webapp/app/fw/svg/glyph.js b/framework/src/onos/web/gui/src/main/webapp/app/fw/svg/glyph.js index 28f262a1..d8dce362 100644 --- a/framework/src/onos/web/gui/src/main/webapp/app/fw/svg/glyph.js +++ b/framework/src/onos/web/gui/src/main/webapp/app/fw/svg/glyph.js @@ -49,6 +49,8 @@ // otn, roadm_otn, firewall, balancer, ips, ids, // controller, virtual, fiber_switch, other + // NOTE: when adding glyphs, please also update TopoConstants.Glyphs class. + glyphDataSet = { _viewbox: "0 0 110 110", diff --git a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoD3.js b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoD3.js index d29748b1..1f061dd6 100644 --- a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoD3.js +++ b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoD3.js @@ -218,6 +218,24 @@ .attr('transform', sus.translate(dx, dy)); } + function updateDeviceBadge(d) { + // TODO: Fix this WIP + var node = d.el, + bsel; + + if (d.badge) { + bsel = node.append('g') + .classed('badge', true) + .attr('transform', sus.translate(-14, -14)); + + bsel.append('circle') + .attr('r', 14); + bsel.append('text') + .attr('transform', sus.translate(-5, 3)) + .text('42'); + } + } + function updateHostLabel(d) { var label = trimLabel(hostLabel(d)); d.el.select('text').text(label); @@ -241,6 +259,7 @@ var node = d.el; node.classed('online', d.online); updateDeviceLabel(d); + updateDeviceBadge(d); api.posNode(d, true); } diff --git a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoForce.js b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoForce.js index dbe8f9f5..f00b87fa 100644 --- a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoForce.js +++ b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoForce.js @@ -860,6 +860,16 @@ }); } + function clearNodeDeco() { + node.selectAll('g.badge').remove(); + } + + function removeNodeBadges() { + network.nodes.forEach(function (d) { + d.badge = null; + }); + } + function updateLinkLabelModel() { // create the backing data for showing labels.. var data = []; @@ -923,6 +933,8 @@ function mkOverlayApi() { return { + clearNodeDeco: clearNodeDeco, + removeNodeBadges: removeNodeBadges, clearLinkTrafficStyle: clearLinkTrafficStyle, removeLinkLabels: removeLinkLabels, findLinkById: tms.findLinkById, diff --git a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoOverlay.js b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoOverlay.js index 74fa2f24..9a3b4358 100644 --- a/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoOverlay.js +++ b/framework/src/onos/web/gui/src/main/webapp/app/view/topo/topoOverlay.js @@ -294,7 +294,8 @@ unsupLink( key, [less] ) */ - // TODO: clear node highlighting + api.clearNodeDeco(); + api.removeNodeBadges(); api.clearLinkTrafficStyle(); api.removeLinkLabels(); @@ -319,8 +320,11 @@ }); data.devices.forEach(function (device) { - var ddata = api.findNodeById(device.id); + var ddata = api.findNodeById(device.id), + badgeData = device.badge || null; + if (ddata && !ddata.el.empty()) { + ddata.badge = badgeData; if (!device.subdue) { api.unsupNode(ddata.id, less); } |