ONOS-3129 : GUI Intents to Topo :: part 1 - making intent table rows selectable; adding topo button.

Change-Id: Iac53411c2a5af9f093d822d49a76b3cd5117fbf1
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 15b44bc..1253636 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.js
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.js
@@ -37,6 +37,8 @@
         play: 'play',
         stop: 'stop',
 
+        topo: 'topo',
+
         refresh: 'refresh',
         garbage: 'garbage',
 
diff --git a/web/gui/src/main/webapp/app/fw/widget/table.css b/web/gui/src/main/webapp/app/fw/widget/table.css
index 18b81ba..356ac0f 100644
--- a/web/gui/src/main/webapp/app/fw/widget/table.css
+++ b/web/gui/src/main/webapp/app/fw/widget/table.css
@@ -81,7 +81,7 @@
 }
 
 .light div.summary-list tr.selected {
-    background-color: deepskyblue;
+    background-color: deepskyblue !important;
 }
 
 .dark div.summary-list tr.selected {
diff --git a/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js b/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
index 24161bb..6a5ffb1 100644
--- a/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
+++ b/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
@@ -47,6 +47,7 @@
             resp = o.tag + 'DataResponse',
             onSel = fs.isF(o.selCb),
             onResp = fs.isF(o.respCb),
+            idKey = o.idKey || 'id',
             oldTableData = [],
             loaded = false,
             refreshPromise, loadingPromise;
@@ -104,7 +105,8 @@
 
         // === selecting a row functions ----------------
         function selCb($event, selRow) {
-            o.scope.selId = (o.scope.selId === selRow.id) ? null : selRow.id;
+            var selId = selRow[idKey];
+            o.scope.selId = (o.scope.selId === selId) ? null : selId;
             onSel && onSel($event, selRow);
         }
         o.scope.selectCallback = selCb;