Example #1
0
 .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];
   });
 })
Example #2
0
 $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;
   });
 };
Example #3
0
    .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();
            }
        });
    }])