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