angular.module('portainer.docker') .controller('DashboardController', ['$scope', '$q', 'ContainerService', 'ImageService', 'NetworkService', 'VolumeService', 'SystemService', 'ServiceService', 'StackService', 'EndpointService', 'Notifications', 'EndpointProvider', 'StateManager', function ($scope, $q, ContainerService, ImageService, NetworkService, VolumeService, SystemService, ServiceService, StackService, EndpointService, Notifications, EndpointProvider, StateManager) { $scope.dismissInformationPanel = function(id) { StateManager.dismissInformationPanel(id); }; $scope.offlineMode = false; function initView() { var endpointMode = $scope.applicationState.endpoint.mode; var endpointId = EndpointProvider.endpointID(); $q.all({ containers: ContainerService.containers(1), images: ImageService.images(false), volumes: VolumeService.volumes(), networks: NetworkService.networks(true, true, true), services: endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER' ? ServiceService.services() : [], stacks: StackService.stacks(true, endpointMode.provider === 'DOCKER_SWARM_MODE' && endpointMode.role === 'MANAGER', endpointId), info: SystemService.info(), endpoint: EndpointService.endpoint(endpointId) }) .then(function success(data) { $scope.containers = data.containers; $scope.images = data.images; $scope.volumeCount = data.volumes.length; $scope.networkCount = data.networks.length; $scope.serviceCount = data.services.length; $scope.stackCount = data.stacks.length; $scope.info = data.info; $scope.endpoint = data.endpoint; $scope.offlineMode = EndpointProvider.offlineMode(); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to load dashboard data'); }); } initView(); }]);