2014-11-12 17:54:49 +00:00
|
|
|
angular.module('containers', [])
|
|
|
|
.controller('ContainersController', ['$scope', 'Container', 'Settings', 'Messages', 'ViewSpinner',
|
|
|
|
function($scope, Container, Settings, Messages, ViewSpinner) {
|
|
|
|
$scope.predicate = '-Created';
|
|
|
|
$scope.toggle = false;
|
|
|
|
$scope.displayAll = Settings.displayAll;
|
|
|
|
|
|
|
|
var update = function(data) {
|
|
|
|
ViewSpinner.spin();
|
|
|
|
Container.query(data, function(d) {
|
|
|
|
$scope.containers = d.map(function(item) {
|
|
|
|
return new ContainerViewModel(item); });
|
|
|
|
ViewSpinner.stop();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
var batch = function(items, action, msg) {
|
|
|
|
ViewSpinner.spin();
|
|
|
|
var counter = 0;
|
|
|
|
var complete = function() {
|
|
|
|
counter = counter -1;
|
|
|
|
if (counter === 0) {
|
|
|
|
ViewSpinner.stop();
|
|
|
|
update({all: Settings.displayAll ? 1 : 0});
|
|
|
|
}
|
|
|
|
};
|
|
|
|
angular.forEach(items, function(c) {
|
|
|
|
if (c.Checked) {
|
2015-02-09 19:06:28 +00:00
|
|
|
if(action === Container.start){
|
2015-02-08 18:59:26 +00:00
|
|
|
Container.get({id: c.Id}, function(d) {
|
|
|
|
c = d;
|
|
|
|
counter = counter + 1;
|
|
|
|
action({id: c.Id, HostConfig: c.HostConfig || {}}, function(d) {
|
|
|
|
Messages.send("Container " + msg, c.Id);
|
|
|
|
var index = $scope.containers.indexOf(c);
|
|
|
|
complete();
|
|
|
|
}, function(e) {
|
|
|
|
Messages.error("Failure", e.data);
|
|
|
|
complete();
|
|
|
|
});
|
|
|
|
}, function(e) {
|
|
|
|
if (e.status === 404) {
|
|
|
|
$('.detail').hide();
|
|
|
|
Messages.error("Not found", "Container not found.");
|
|
|
|
} else {
|
|
|
|
Messages.error("Failure", e.data);
|
|
|
|
}
|
|
|
|
complete();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
counter = counter + 1;
|
|
|
|
action({id: c.Id}, function(d) {
|
|
|
|
Messages.send("Container " + msg, c.Id);
|
|
|
|
var index = $scope.containers.indexOf(c);
|
|
|
|
complete();
|
|
|
|
}, function(e) {
|
|
|
|
Messages.error("Failure", e.data);
|
|
|
|
complete();
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2014-11-12 17:54:49 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
if (counter === 0) {
|
|
|
|
ViewSpinner.stop();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.toggleSelectAll = function() {
|
|
|
|
angular.forEach($scope.containers, function(i) {
|
|
|
|
i.Checked = $scope.toggle;
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.toggleGetAll = function() {
|
|
|
|
Settings.displayAll = $scope.displayAll;
|
|
|
|
update({all: Settings.displayAll ? 1 : 0});
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.startAction = function() {
|
|
|
|
batch($scope.containers, Container.start, "Started");
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.stopAction = function() {
|
|
|
|
batch($scope.containers, Container.stop, "Stopped");
|
|
|
|
};
|
|
|
|
|
2015-02-10 05:10:05 +00:00
|
|
|
$scope.restartAction = function() {
|
|
|
|
batch($scope.containers, Container.restart, "Restarted");
|
|
|
|
};
|
|
|
|
|
2014-11-12 17:54:49 +00:00
|
|
|
$scope.killAction = function() {
|
|
|
|
batch($scope.containers, Container.kill, "Killed");
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.pauseAction = function() {
|
|
|
|
batch($scope.containers, Container.pause, "Paused");
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.unpauseAction = function() {
|
|
|
|
batch($scope.containers, Container.unpause, "Unpaused");
|
|
|
|
};
|
|
|
|
|
|
|
|
$scope.removeAction = function() {
|
|
|
|
batch($scope.containers, Container.remove, "Removed");
|
|
|
|
};
|
|
|
|
|
|
|
|
update({all: Settings.displayAll ? 1 : 0});
|
|
|
|
}]);
|