1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-21 14:29:40 +02:00

feat(global): hide containers with labels using -l flag (#19)

This commit is contained in:
Anthony Lapenna 2016-06-24 10:11:49 +12:00 committed by GitHub
parent cd12243b0f
commit 808694d6b5
3 changed files with 95 additions and 19 deletions

View file

@ -1,6 +1,6 @@
angular.module('containers', [])
.controller('ContainersController', ['$scope', 'Container', 'Settings', 'Messages', 'ViewSpinner',
function ($scope, Container, Settings, Messages, ViewSpinner) {
.controller('ContainersController', ['$scope', 'Container', 'Settings', 'Messages', 'ViewSpinner', 'Config',
function ($scope, Container, Settings, Messages, ViewSpinner, Config) {
$scope.state = {};
$scope.state.displayAll = Settings.displayAll;
@ -18,9 +18,11 @@ function ($scope, Container, Settings, Messages, ViewSpinner) {
ViewSpinner.spin();
$scope.state.selectedItemCount = 0;
Container.query(data, function (d) {
$scope.containers = d.filter(function (container) {
return container.Image !== 'swarm';
}).map(function (container) {
var containers = d;
if (hiddenLabels) {
containers = hideContainers(d);
}
$scope.containers = containers.map(function (container) {
return new ContainerViewModel(container);
});
ViewSpinner.stop();
@ -134,5 +136,26 @@ function ($scope, Container, Settings, Messages, ViewSpinner) {
batch($scope.containers, Container.remove, "Removed");
};
update({all: Settings.displayAll ? 1 : 0});
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;
console.log('Hide: ' + container.Names[0]);
}
});
if (!filterContainer) {
return container;
}
});
};
var hiddenLabels;
Config.$promise.then(function (c) {
hiddenLabels = c.hiddenLabels;
update({all: Settings.displayAll ? 1 : 0});
});
}]);