GUI -- Added "devices" scenario to display all device types.
- added "query" glyph.
- added glyphDefined() predicate to glyph service.
- made sure query glyph is displayed if a device type for which there is no corresponding glyph is encountered.
Change-Id: Id5339ad3b666b885e096ced57760c5f84d8bcfc2
diff --git a/web/gui/src/main/webapp/app/fw/svg/glyph.js b/web/gui/src/main/webapp/app/fw/svg/glyph.js
index c6d5338..28f262a 100644
--- a/web/gui/src/main/webapp/app/fw/svg/glyph.js
+++ b/web/gui/src/main/webapp/app/fw/svg/glyph.js
@@ -55,6 +55,15 @@
unknown: "M35,40a5,5,0,0,1,5-5h30a5,5,0,0,1,5,5v30a5,5,0,0,1-5,5" +
"h-30a5,5,0,0,1-5-5z",
+ query: "M51.4,69.9c0-0.9,0-1.6,0-2.1c0-2.7,0.4-5.1,1.2-7.1" +
+ "c0.6-1.5,1.5-3,2.8-4.5c0.9-1.1,2.6-2.7,5.1-4.8c2.4-2.1,4-3.8," +
+ "4.8-5.1 c0.7-1.3,1.1-2.6,1.1-4.1c0-2.7-1.1-5.1-3.2-7.1c-2.1-2" +
+ "-4.8-3.1-7.9-3.1c-3,0-5.5,0.9-7.5,2.8c-2,1.9-3.3,4.8-4,8.7l-7.2" +
+ "-0.8 c0.7-5.3,2.6-9.3,5.8-12.1c3.2-2.8,7.5-4.2,12.8-4.2c5.6,0," +
+ "10.1,1.5,13.4,4.5c3.3,3,5,6.7,5,10.9c0,2.5-0.6,4.8-1.8,6.8 " +
+ "s-3.5,4.6-6.9,7.6c-2.3,2-3.8,3.5-4.5,4.4c-0.7,1-1.2,2-1.6,3.3" +
+ "c-0.3,1.2-0.5,3.2-0.6,6H51.4z M51,83.8v-7.9h8v7.9H51z",
+
node: "M15,100a5,5,0,0,1-5-5v-65a5,5,0,0,1,5-5h80a5,5,0,0,1,5,5" +
"v65a5,5,0,0,1-5,5zM14,22.5l11-11a10,3,0,0,1,10-2h40a10,3,0,0,1," +
"10,2l11,11zM16,35a5,5,0,0,1,10,0a5,5,0,0,1-10,0z",
@@ -586,6 +595,10 @@
return glyphs.get(id);
}
+ function glyphDefined(id) {
+ return glyphs.has(id);
+ }
+
// Note: defs should be a D3 selection of a single <defs> element
function loadDefs(defs, glyphIds, noClear) {
var list = fs.isA(glyphIds) || ids(),
@@ -649,6 +662,7 @@
registerGlyphSet: registerGlyphSet,
ids: ids,
glyph: glyph,
+ glyphDefined: glyphDefined,
loadDefs: loadDefs,
addGlyph: addGlyph
};
diff --git a/web/gui/src/main/webapp/app/fw/svg/icon.js b/web/gui/src/main/webapp/app/fw/svg/icon.js
index dec0334..15b44bc 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.js
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.js
@@ -163,6 +163,7 @@
// Returns the D3 selection of the icon.
function addDeviceIcon(elem, glyphId) {
var cfg = config.device,
+ gid = gs.glyphDefined(glyphId) ? glyphId : 'query',
g = elem.append('g')
.attr('class', 'svgIcon deviceIcon');
@@ -175,7 +176,7 @@
});
g.append('use').attr({
- 'xlink:href': '#' + glyphId,
+ 'xlink:href': '#' + gid,
width: cfg.dim,
height: cfg.dim
});
diff --git a/web/gui/src/test/_karma/ev/devices/ev_10_addDevice_s9_ids.json b/web/gui/src/test/_karma/ev/devices/ev_10_addDevice_s9_ids.json
new file mode 100644
index 0000000..232d4ed
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_10_addDevice_s9_ids.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000009",
+ "type": "ids",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "ids",
+ "of:0000000000000009"
+ ],
+ "metaUi": {
+ "x": 200,
+ "y": 400
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_11_addDevice_s10_controller.json b/web/gui/src/test/_karma/ev/devices/ev_11_addDevice_s10_controller.json
new file mode 100644
index 0000000..abd24d6
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_11_addDevice_s10_controller.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:00000000000000010",
+ "type": "controller",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "controller",
+ "of:0000000000000010"
+ ],
+ "metaUi": {
+ "x": 350,
+ "y": 400
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_12_addDevice_s11_virtual.json b/web/gui/src/test/_karma/ev/devices/ev_12_addDevice_s11_virtual.json
new file mode 100644
index 0000000..1fe1837
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_12_addDevice_s11_virtual.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:00000000000000011",
+ "type": "virtual",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "virtual",
+ "of:0000000000000011"
+ ],
+ "metaUi": {
+ "x": 500,
+ "y": 400
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_13_addDevice_s12_fiber_switch.json b/web/gui/src/test/_karma/ev/devices/ev_13_addDevice_s12_fiber_switch.json
new file mode 100644
index 0000000..954376c
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_13_addDevice_s12_fiber_switch.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:00000000000000012",
+ "type": "fiber_switch",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "fiber_switch",
+ "of:0000000000000012"
+ ],
+ "metaUi": {
+ "x": 650,
+ "y": 400
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_14_addDevice_s13_microwave.json b/web/gui/src/test/_karma/ev/devices/ev_14_addDevice_s13_microwave.json
new file mode 100644
index 0000000..3d40cec
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_14_addDevice_s13_microwave.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:00000000000000013",
+ "type": "microwave",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "microwave",
+ "of:0000000000000013"
+ ],
+ "metaUi": {
+ "x": 300,
+ "y": 500
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_15_addDevice_s14_other.json b/web/gui/src/test/_karma/ev/devices/ev_15_addDevice_s14_other.json
new file mode 100644
index 0000000..e33532d
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_15_addDevice_s14_other.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:00000000000000014",
+ "type": "other",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "other",
+ "of:0000000000000014"
+ ],
+ "metaUi": {
+ "x": 450,
+ "y": 500
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_16_addDevice_s15_unmatched.json b/web/gui/src/test/_karma/ev/devices/ev_16_addDevice_s15_unmatched.json
new file mode 100644
index 0000000..1773c91
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_16_addDevice_s15_unmatched.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:00000000000000015",
+ "type": "-unmatched-",
+ "online": true,
+ "master": "ONOS-B",
+ "labels": [
+ "",
+ "-unmatched-",
+ "of:0000000000000015"
+ ],
+ "metaUi": {
+ "x": 600,
+ "y": 500
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_1_addInstance.json b/web/gui/src/test/_karma/ev/devices/ev_1_addInstance.json
new file mode 100644
index 0000000..20be9e2
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_1_addInstance.json
@@ -0,0 +1,14 @@
+{
+ "event": "addInstance",
+ "payload": {
+ "id": "ONOS",
+ "ip": "192.168.56.101",
+ "online": true,
+ "uiAttached": true,
+ "switches": 4,
+ "labels": [
+ "ONOS",
+ "192.168.56.101"
+ ]
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_2_addDevice_s1_switch.json b/web/gui/src/test/_karma/ev/devices/ev_2_addDevice_s1_switch.json
new file mode 100644
index 0000000..5f8ad66
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_2_addDevice_s1_switch.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000001",
+ "type": "switch",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "switch",
+ "of:0000000000000001"
+ ],
+ "metaUi": {
+ "x": 200,
+ "y": 200
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_3_addDevice_s2_router.json b/web/gui/src/test/_karma/ev/devices/ev_3_addDevice_s2_router.json
new file mode 100644
index 0000000..b6da44c
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_3_addDevice_s2_router.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000002",
+ "type": "router",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "router",
+ "of:0000000000000002"
+ ],
+ "metaUi": {
+ "x": 350,
+ "y": 200
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_4_addDevice_s3_roadm.json b/web/gui/src/test/_karma/ev/devices/ev_4_addDevice_s3_roadm.json
new file mode 100644
index 0000000..468749e
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_4_addDevice_s3_roadm.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000003",
+ "type": "roadm",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "roadm",
+ "of:0000000000000003"
+ ],
+ "metaUi": {
+ "x": 500,
+ "y": 200
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_5_addDevice_s4_otn.json b/web/gui/src/test/_karma/ev/devices/ev_5_addDevice_s4_otn.json
new file mode 100644
index 0000000..c8e234b
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_5_addDevice_s4_otn.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000004",
+ "type": "otn",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "otn",
+ "of:0000000000000004"
+ ],
+ "metaUi": {
+ "x": 650,
+ "y": 200
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_6_addDevice_s5_roadm_otn.json b/web/gui/src/test/_karma/ev/devices/ev_6_addDevice_s5_roadm_otn.json
new file mode 100644
index 0000000..c54cc4a
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_6_addDevice_s5_roadm_otn.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000005",
+ "type": "roadm_otn",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "roadm_otn",
+ "of:0000000000000005"
+ ],
+ "metaUi": {
+ "x": 300,
+ "y": 300
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_7_addDevice_s6_firewall.json b/web/gui/src/test/_karma/ev/devices/ev_7_addDevice_s6_firewall.json
new file mode 100644
index 0000000..19d50d4
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_7_addDevice_s6_firewall.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000006",
+ "type": "firewall",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "firewall",
+ "of:0000000000000006"
+ ],
+ "metaUi": {
+ "x": 450,
+ "y": 300
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_8_addDevice_s7_balancer.json b/web/gui/src/test/_karma/ev/devices/ev_8_addDevice_s7_balancer.json
new file mode 100644
index 0000000..d9a3b79
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_8_addDevice_s7_balancer.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000007",
+ "type": "balancer",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "balancer",
+ "of:0000000000000007"
+ ],
+ "metaUi": {
+ "x": 600,
+ "y": 300
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_9_addDevice_s8_ips.json b/web/gui/src/test/_karma/ev/devices/ev_9_addDevice_s8_ips.json
new file mode 100644
index 0000000..c89f565
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_9_addDevice_s8_ips.json
@@ -0,0 +1,18 @@
+{
+ "event": "addDevice",
+ "payload": {
+ "id": "of:0000000000000008",
+ "type": "ips",
+ "online": true,
+ "master": "ONOS",
+ "labels": [
+ "",
+ "ips",
+ "of:0000000000000008"
+ ],
+ "metaUi": {
+ "x": 750,
+ "y": 300
+ }
+ }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/scenario.json b/web/gui/src/test/_karma/ev/devices/scenario.json
new file mode 100644
index 0000000..ee3c1ea
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/scenario.json
@@ -0,0 +1,12 @@
+{
+ "comments": [
+ "Showing all device types"
+ ],
+ "title": "Show Device Types",
+ "params": {
+ "lastAuto": 16
+ },
+ "description": [
+ "Show all device types."
+ ]
+}