GUI -- Cleaned up directives - onos-sortable-header and icon no longer use isolate scope. Icon directive moved to icon.js. Deleted unneeded TableService.

Change-Id: I53970176b9ca021d1aa7d844ccd961cbf6ac6b51
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 164fc4c..c536a66 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.js
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.js
@@ -227,6 +227,19 @@
     // === DEFINE THE MODULE
 
     angular.module('onosSvg')
+        .directive('icon', ['IconService', function (is) {
+            return {
+                restrict: 'A',
+                link: function (scope, element, attrs) {
+                    attrs.$observe('iconId', function () {
+                        var div = d3.select(element[0]);
+                        div.selectAll('*').remove();
+                        is.loadEmbeddedIcon(div, attrs.iconId, attrs.iconSize);
+                    });
+                }
+            };
+        }])
+
         .factory('IconService', ['$log', 'FnService', 'GlyphService',
             'SvgUtilService',
 
diff --git a/web/gui/src/main/webapp/app/fw/widget/table.js b/web/gui/src/main/webapp/app/fw/widget/table.js
index 9bdf1c1..21baaa3 100644
--- a/web/gui/src/main/webapp/app/fw/widget/table.js
+++ b/web/gui/src/main/webapp/app/fw/widget/table.js
@@ -189,44 +189,26 @@
 
         .directive('onosSortableHeader', ['$log', 'IconService',
             function (_$log_, _is_) {
-            return {
-                scope: {
-                    sortCallback: '&',
-                    sortParams: '='
-                },
-                link: function (scope, element) {
-                    $log = _$log_;
-                    is = _is_;
-                    var header = d3.select(element[0]);
-                        sortIconAPI = is.sortIcons();
+            return function (scope, element) {
+                $log = _$log_;
+                is = _is_;
+                var header = d3.select(element[0]);
+                    sortIconAPI = is.sortIcons();
 
-                    // when a header is clicked, change its sort direction
-                    // and get sorting order to send to the server.
-                    header.selectAll('td').on('click', function () {
-                        var col = d3.select(this);
+                header.selectAll('td').on('click', function () {
+                    var col = d3.select(this);
 
-                        if (col.attr('sortable') === '') {
-                            updateSortDirection(col);
-                            scope.$apply(function () {
-                                scope.sortParams = sortRequestParams();
-                            });
-                            scope.sortCallback({
-                                requestParams: scope.sortParams
-                            });
-                        }
-                    });
-                }
-            };
-        }])
+                    if (col.attr('sortable') === '') {
+                        updateSortDirection(col);
+                        scope.sortParams = sortRequestParams();
+                        scope.sortCallback(scope.sortParams);
+                    }
+                });
 
-        .factory('TableService', ['IconService',
-
-            function (is) {
-                sortIconAPI = is.sortIcons();
-
-                return {
-                    resetSort: resetSort
-                };
+                scope.$on('$destroy', function () {
+                    resetSort();
+                });
+            }
         }]);
 
 }());
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 4f418e7..1196dee 100644
--- a/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
+++ b/web/gui/src/main/webapp/app/fw/widget/tableBuilder.js
@@ -21,7 +21,7 @@
     'use strict';
 
     // injected refs
-    var $log, $interval, fs, wss, ts;
+    var $log, $interval, fs, wss;
 
     // constants
     var refreshInterval = 2000;
@@ -98,7 +98,6 @@
         // Cleanup on destroyed scope
         o.scope.$on('$destroy', function () {
             wss.unbindHandlers(handlers);
-            ts.resetSort();
             stopRefresh();
         });
 
@@ -108,14 +107,13 @@
 
     angular.module('onosWidget')
         .factory('TableBuilderService',
-        ['$log', '$interval', 'FnService', 'WebSocketService', 'TableService',
+        ['$log', '$interval', 'FnService', 'WebSocketService',
 
-            function (_$log_, _$interval_, _fs_, _wss_, _ts_) {
+            function (_$log_, _$interval_, _fs_, _wss_) {
                 $log = _$log_;
                 $interval = _$interval_;
                 fs = _fs_;
                 wss = _wss_;
-                ts = _ts_;
 
                 return {
                     buildTable: buildTable