.success(function(node) { $scope.nodeLabel = node.label; $scope.foreignSource = node.foreignSource; $scope.foreignId = node.foreignId; angular.forEach($scope.dateKeys, function(key) { node.assetRecord[key] = uibDateParser.parse(node.assetRecord[key], $scope.dateFormat); }); $scope.master = angular.copy(node.assetRecord); $scope.asset = angular.copy(node.assetRecord); angular.forEach($scope.infoKeys, function(k) { $scope.asset[k] = node[k]; }); })
$scope.setStylesForSnmpInterfaces = function() { angular.forEach($scope.snmpInterfaces, function(intf) { var cssClass = undefined; if (intf.ifAdminStatus !== 1) { cssClass = 'onms-interface-status-unknown'; } else { if (intf.ifOperStatus === 1) { cssClass = 'onms-interface-status-up'; } else { cssClass = 'onms-interface-status-down'; } } intf.backgroundClass = cssClass; }); };
.controller('StatusController', ['$scope', '$location', '$window', '$log', 'StatusService', function($scope, $location, $window, $log, StatusService) { $scope.setStrategy = function (newStrategy) { if (angular.equals($scope.query.strategy, newStrategy) === false) { $scope.query.strategy = newStrategy; $scope.refresh(); } }; $scope.setType = function (newType) { if (angular.equals($scope.query.type, newType) === false) { $scope.query.type = newType; $scope.refresh(); } }; $scope.resetFilter = function() { $scope.severityFilter = {}; }; $scope.changeOrderBy = function(newOrderBy) { if ($scope.query.orderBy === newOrderBy) { if ($scope.query.order === 'asc') { $scope.query.order = 'desc'; } else { $scope.query.order = 'asc'; } } else { $scope.query.orderBy = newOrderBy; $scope.query.order = 'asc'; } $scope.refresh(); }; $scope.updateFilterAndRefreshIfNecessary = function() { var newList = toList($scope.severityFilter); var oldList = $scope.query.severityFilter; // Otherwise only update if the severityFilter changed if (angular.equals(oldList, newList) === false) { $scope.query.page = 1; $scope.refresh(); } }; $scope.updateLocation = function() { // Update URL parameters to make refresh work var location = $location.search(); location['severityFilter'] = $scope.query.severityFilter; location['strategy'] = $scope.query.strategy; $location.search(location); }; $scope.loadData = function(itemTransformer) { var parameters = $scope.query || {}; // update severity filter parameters.severityFilter = []; for (var property in $scope.severityFilter) { if ($scope.severityFilter.hasOwnProperty(property)) { var propertyValue = $scope.severityFilter[property]; if (propertyValue === true) { parameters.severityFilter.push(property); } } } $scope.query.severityFilter = parameters.severityFilter; $scope.updateLocation(); StatusService.query( { severityFilter: parameters.severityFilter || [], limit: parameters.limit || 20, offset: (parameters.page -1) * parameters.limit || 0, orderBy: parameters.orderBy, order: parameters.order, type: parameters.type, strategy: parameters.strategy }, function(data, headers) { if (itemTransformer !== null) { $scope.items = itemTransformer(data); } else { $scope.items = data; } var contentRange = elementList.parseContentRange(headers('Content-Range')); $scope.query.totalItems = contentRange.total; }, function(response) { switch(response.status) { case 500: // on error, simply reset everything case 404: // If we didn't find any elements, then clear the list $scope.items = []; $scope.query.page = 1; break; case 401: case 403: // Handle session timeout by reloading page completely $window.location.href = $location.absUrl(); break; default: break; } return undefined; } ); }; $scope.refresh = function() { $log.info('Please overwrite in child controller'); }; // Default values $scope.items = []; $scope.query = { severityFilter: [], page: 1, limit: 20, totalItems: 0, orderBy: 'severity', order: 'desc' }; $scope.query.strategy = $location.search().strategy; $scope.query.type = $location.search().type; $scope.severityFilter = {}; // Update severityFilter based on url query if ($location.search().severityFilter !== undefined) { var severityFilter = $location.search().severityFilter; if (typeof severityFilter === 'string') { severityFilter = [severityFilter]; } angular.forEach(severityFilter, function(severity) { $scope.severityFilter[severity] = true; }); } $scope.$watch('severityFilter', function() { $scope.updateFilterAndRefreshIfNecessary(); }, true); $scope.$watch('query.page', function(newOffset, oldOffset) { if (newOffset !== oldOffset) { $scope.refresh(); } }); }])