diff --git a/app/components/dashboard/dashboardController.js b/app/components/dashboard/dashboardController.js index 642ccc1aa..5c348d8fb 100644 --- a/app/components/dashboard/dashboardController.js +++ b/app/components/dashboard/dashboardController.js @@ -1,5 +1,6 @@ angular.module('dashboard', []) - .controller('DashboardController', ['$scope', 'Container', 'Image', 'Settings', 'LineChart', function ($scope, Container, Image, Settings, LineChart) { +.controller('DashboardController', ['$scope', 'Config', 'Container', 'Image', 'Settings', 'LineChart', +function ($scope, Config, Container, Image, Settings, LineChart) { $scope.containerData = {}; @@ -17,30 +18,52 @@ angular.module('dashboard', []) }); }; - Container.query({all: 1}, function (d) { - var running = 0; - var ghost = 0; - var stopped = 0; + function fetchDashboardData() { + Container.query({all: 1}, function (d) { + var running = 0; + var ghost = 0; + var stopped = 0; - // TODO: centralize that - var containers = d.filter(function (container) { - return container.Image !== 'swarm'; + var containers = d; + if (hiddenLabels) { + containers = hideContainers(d); + } + + for (var i = 0; i < containers.length; i++) { + var item = containers[i]; + if (item.Status === "Ghost") { + ghost += 1; + } else if (item.Status.indexOf('Exit') !== -1) { + stopped += 1; + } else { + running += 1; + } + } + $scope.containerData.running = running; + $scope.containerData.stopped = stopped; + $scope.containerData.ghost = ghost; + + buildCharts(containers); }); + } - for (var i = 0; i < containers.length; i++) { - var item = containers[i]; - if (item.Status === "Ghost") { - ghost += 1; - } else if (item.Status.indexOf('Exit') !== -1) { - stopped += 1; - } else { - running += 1; + var hideContainers = function (containers) { + return containers.filter(function (container) { + var filterContainer = false; + hiddenLabels.forEach(function(label, index) { + if (_.has(container.Labels, label.name) && + container.Labels[label.name] === label.value) { + filterContainer = true; + } + }); + if (!filterContainer) { + return container; } - } - $scope.containerData.running = running; - $scope.containerData.stopped = stopped; - $scope.containerData.ghost = ghost; + }); + }; - buildCharts(containers); + Config.$promise.then(function (c) { + hiddenLabels = c.hiddenLabels; + fetchDashboardData(); }); }]); diff --git a/app/components/swarm/swarm.html b/app/components/swarm/swarm.html index cf4a186fe..35e3ca6af 100644 --- a/app/components/swarm/swarm.html +++ b/app/components/swarm/swarm.html @@ -54,10 +54,6 @@