mirror of https://github.com/portainer/portainer
272 lines
7.7 KiB
JavaScript
272 lines
7.7 KiB
JavaScript
|
|
// Controller for the top masthead
|
|
function MastheadController($scope) {
|
|
$scope.template = 'partials/masthead.html';
|
|
|
|
$scope.hclass = 'active';
|
|
$scope.cclass = '';
|
|
$scope.iclass = '';
|
|
$scope.sclass = '';
|
|
|
|
$scope.linkChange = function(link) {
|
|
$scope.hclass = '';
|
|
$scope.cclass = '';
|
|
$scope.iclass = '';
|
|
$scope.sclass = '';
|
|
|
|
//This is shitty, I need help with this crap.
|
|
switch(link) {
|
|
case 'home':
|
|
$scope.hclass = 'active';
|
|
break;
|
|
case 'containers':
|
|
$scope.cclass = 'active';
|
|
break;
|
|
case 'images':
|
|
$scope.iclass = 'active';
|
|
break;
|
|
case 'settings':
|
|
$scope.sclass = 'active';
|
|
break;
|
|
default:
|
|
console.log('Not supported:' + link);
|
|
}
|
|
};
|
|
}
|
|
|
|
function HomeController() {
|
|
|
|
}
|
|
|
|
function SettingsController($scope, Auth, System, Docker, Settings) {
|
|
$scope.auth = {};
|
|
$scope.info = {};
|
|
$scope.docker = {};
|
|
|
|
$('#response').hide();
|
|
$scope.alertClass = 'block';
|
|
|
|
var showAndHide = function(hide) {
|
|
$('#response').show();
|
|
if (hide) {
|
|
setTimeout(function() { $('#response').hide();}, 5000);
|
|
}
|
|
};
|
|
|
|
$scope.updateAuthInfo = function() {
|
|
if ($scope.auth.password != $scope.auth.cpassword) {
|
|
$scope.response = 'Your passwords do not match.';
|
|
showAndHide(true);
|
|
return;
|
|
}
|
|
Auth.update(
|
|
{username: $scope.auth.username, email: $scope.auth.email, password: $scope.auth.password}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Auth information updated.';
|
|
showAndHide(true);
|
|
}, function(e) {
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
};
|
|
|
|
Auth.get({}, function(d) {
|
|
$scope.auth = d;
|
|
});
|
|
|
|
Docker.get({}, function(d) {
|
|
$scope.docker = d;
|
|
});
|
|
|
|
System.get({}, function(d) {
|
|
$scope.info = d;
|
|
});
|
|
}
|
|
|
|
// Controls the page that displays a single container and actions on that container.
|
|
function ContainerController($scope, $routeParams, $location, Container) {
|
|
$('#response').hide();
|
|
$scope.alertClass = 'block';
|
|
|
|
var showAndHide = function(hide) {
|
|
$('#response').show();
|
|
if (hide) {
|
|
setTimeout(function() { $('#response').hide();}, 5000);
|
|
}
|
|
};
|
|
|
|
$scope.start = function(){
|
|
Container.start({id: $routeParams.id}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Container started.';
|
|
showAndHide(true);
|
|
}, function(e) {
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
};
|
|
|
|
$scope.stop = function() {
|
|
Container.stop({id: $routeParams.id}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Container stopped.';
|
|
showAndHide(true);
|
|
}, function(e) {
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
};
|
|
|
|
$scope.kill = function() {
|
|
Container.kill({id: $routeParams.id}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Container killed.';
|
|
showAndHide(true);
|
|
}, function(e) {
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
};
|
|
|
|
$scope.remove = function() {
|
|
if (confirm("Are you sure you want to remove the container?")) {
|
|
Container.remove({id: $routeParams.id}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Container removed.';
|
|
showAndHide(true);
|
|
}, function(e){
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
}
|
|
};
|
|
|
|
$scope.changes = [];
|
|
|
|
$scope.getChanges = function() {
|
|
Container.changes({id: $routeParams.id}, function(d) {
|
|
$scope.changes = d;
|
|
});
|
|
};
|
|
|
|
Container.get({id: $routeParams.id}, function(d) {
|
|
$scope.container = d;
|
|
}, function(e) {
|
|
console.log(e);
|
|
$location.path('/containers/');
|
|
});
|
|
|
|
$scope.getChanges();
|
|
}
|
|
|
|
// Controller for the list of containers
|
|
function ContainersController($scope, Container, Settings) {
|
|
$scope.displayAll = Settings.displayAll;
|
|
$scope.predicate = '-Created';
|
|
|
|
var update = function(data) {
|
|
Container.query(data, function(d) {
|
|
$scope.containers = d;
|
|
});
|
|
};
|
|
|
|
$scope.toggleGetAll = function() {
|
|
Settings.displayAll = $scope.displayAll;
|
|
var u = update;
|
|
var data = {all: 0};
|
|
|
|
if ($scope.displayAll) {
|
|
data.all = 1;
|
|
}
|
|
u(data);
|
|
};
|
|
|
|
update({all: $scope.displayAll ? 1 : 0});
|
|
}
|
|
|
|
// Controller for the list of images
|
|
function ImagesController($scope, Image) {
|
|
$scope.predicate = '-Created';
|
|
|
|
Image.query({}, function(d) {
|
|
$scope.images = d;
|
|
});
|
|
}
|
|
|
|
// Controller for a single image and actions on that image
|
|
function ImageController($scope, $routeParams, $location, Image) {
|
|
$scope.history = [];
|
|
$scope.tag = {repo: '', force: false};
|
|
|
|
$('#response').hide();
|
|
$scope.alertClass = 'block';
|
|
|
|
var showAndHide = function(hide) {
|
|
$('#response').show();
|
|
if (hide) {
|
|
setTimeout(function() { $('#response').hide();}, 5000);
|
|
}
|
|
};
|
|
|
|
$scope.remove = function() {
|
|
if (confirm("Are you sure you want to delete this image?")) {
|
|
Image.remove({id: $routeParams.id}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Image removed.';
|
|
showAndHide(true);
|
|
}, function(e) {
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
}
|
|
};
|
|
|
|
$scope.getHistory = function() {
|
|
Image.history({id: $routeParams.id}, function(d) {
|
|
$scope.history = d;
|
|
});
|
|
};
|
|
|
|
$scope.updateTag = function() {
|
|
var tag = $scope.tag;
|
|
Image.tag({id: $routeParams.id, repo: tag.repo, force: tag.force ? 1 : 0}, function(d) {
|
|
console.log(d);
|
|
$scope.alertClass = 'success';
|
|
$scope.response = 'Tag added.';
|
|
showAndHide(true);
|
|
}, function(e) {
|
|
console.log(e);
|
|
$scope.alertClass = 'error';
|
|
$scope.response = e.data;
|
|
showAndHide(false);
|
|
});
|
|
};
|
|
|
|
Image.get({id: $routeParams.id}, function(d) {
|
|
$scope.image = d;
|
|
}, function(e) {
|
|
console.log(e);
|
|
$location.path('/images/');
|
|
});
|
|
|
|
$scope.getHistory();
|
|
}
|