Add global message display

pull/2/head
Michael Crosby 2013-06-19 18:10:08 -09:00
parent 37ea44a4dc
commit 2e67fca780
8 changed files with 44 additions and 111 deletions

View File

@ -38,92 +38,72 @@ function SideBarController($scope, Container, Settings) {
}); });
} }
function SettingsController($scope, Auth, System, Docker, Settings) { function SettingsController($scope, Auth, System, Docker, Settings, Messages) {
$scope.auth = {}; $scope.auth = {};
$scope.info = {}; $scope.info = {};
$scope.docker = {}; $scope.docker = {};
$scope.endpoint = Settings.endpoint; $scope.endpoint = Settings.endpoint;
$scope.apiVersion = Settings.version; $scope.apiVersion = Settings.version;
$('#response').hide();
$scope.alertClass = 'block';
$scope.updateAuthInfo = function() { $scope.updateAuthInfo = function() {
if ($scope.auth.password != $scope.auth.cpassword) { if ($scope.auth.password != $scope.auth.cpassword) {
setSuccessfulResponse($scope, 'Your passwords do not match.', '#response'); alert('Your passwords do not match.');
return; return;
} }
Auth.update( Auth.update({
{username: $scope.auth.username, email: $scope.auth.email, password: $scope.auth.password}, function(d) { username: $scope.auth.username,
console.log(d); email: $scope.auth.email,
setSuccessfulResponse($scope, 'Auth information updated.', '#response'); password: $scope.auth.password
}, function(d) {
Messages.send({class: 'text-success', data: 'Auth information updated.'});
}, function(e) { }, function(e) {
console.log(e); Messages.send({class: 'text-error', data: e.data});
setFailedResponse($scope, e.data, '#response');
}); });
}; };
Auth.get({}, function(d) { Auth.get({}, function(d) { $scope.auth = d; });
$scope.auth = d; Docker.get({}, function(d) { $scope.docker = d; });
}); System.get({}, function(d) { $scope.info = 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. // Controls the page that displays a single container and actions on that container.
function ContainerController($scope, $routeParams, $location, Container) { function ContainerController($scope, $routeParams, $location, Container, Messages) {
$('#response').hide(); $scope.changes = [];
$scope.alertClass = 'block';
$scope.start = function(){ $scope.start = function(){
Container.start({id: $routeParams.id}, function(d) { Container.start({id: $routeParams.id}, function(d) {
console.log(d); setSuccessfulResponse($scope, 'Container started.', '#response'); Messages.send({class: 'text-success', data: 'Container started.'});
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
}); });
}; };
$scope.stop = function() { $scope.stop = function() {
Container.stop({id: $routeParams.id}, function(d) { Container.stop({id: $routeParams.id}, function(d) {
console.log(d); Messages.send({class: 'text-success', data: 'Container stopped.'});
setSuccessfulResponse($scope, 'Container stopped.', '#response');
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
}); });
}; };
$scope.kill = function() { $scope.kill = function() {
Container.kill({id: $routeParams.id}, function(d) { Container.kill({id: $routeParams.id}, function(d) {
console.log(d); Messages.send({class: 'text-success', data: 'Container killed.'});
setSuccessfulResponse($scope, 'Container killed.', '#response');
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
}); });
}; };
$scope.remove = function() { $scope.remove = function() {
if (confirm("Are you sure you want to remove the container?")) { if (confirm("Are you sure you want to remove the container?")) {
Container.remove({id: $routeParams.id}, function(d) { Container.remove({id: $routeParams.id}, function(d) {
console.log(d); Messages.send({class: 'text-success', data: 'Container removed.'});
setSuccessfulResponse($scope, 'Container removed.', '#response');
}, function(e){ }, function(e){
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
}); });
} }
}; };
$scope.changes = [];
$scope.hasContent = function(data) { $scope.hasContent = function(data) {
return data !== null && data !== undefined && data.length > 1; return data !== null && data !== undefined && data.length > 1;
}; };
@ -137,8 +117,7 @@ function ContainerController($scope, $routeParams, $location, Container) {
Container.get({id: $routeParams.id}, function(d) { Container.get({id: $routeParams.id}, function(d) {
$scope.container = d; $scope.container = d;
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
if (e.status === 404) { if (e.status === 404) {
$('.detail').hide(); $('.detail').hide();
} }
@ -148,7 +127,7 @@ function ContainerController($scope, $routeParams, $location, Container) {
} }
// Controller for the list of containers // Controller for the list of containers
function ContainersController($scope, Container, Settings, ViewSpinner) { function ContainersController($scope, Container, Settings, Messages, ViewSpinner) {
$scope.displayAll = Settings.displayAll; $scope.displayAll = Settings.displayAll;
$scope.predicate = '-Created'; $scope.predicate = '-Created';
$scope.toggle = false; $scope.toggle = false;
@ -165,7 +144,9 @@ function ContainersController($scope, Container, Settings, ViewSpinner) {
angular.forEach(items, function(c) { angular.forEach(items, function(c) {
if (c.Checked) { if (c.Checked) {
action({id: c.Id}, function(d) { action({id: c.Id}, function(d) {
console.log(d); Messages.send({class: 'text-success', data: d});
}, function(e) {
failedRequestHandler(e, Messages);
}); });
} }
}); });
@ -179,13 +160,12 @@ function ContainersController($scope, Container, Settings, ViewSpinner) {
$scope.toggleGetAll = function() { $scope.toggleGetAll = function() {
Settings.displayAll = $scope.displayAll; Settings.displayAll = $scope.displayAll;
var u = update;
var data = {all: 0}; var data = {all: 0};
if ($scope.displayAll) { if ($scope.displayAll) {
data.all = 1; data.all = 1;
} }
u(data); update(data);
}; };
$scope.startAction = function() { $scope.startAction = function() {
@ -209,11 +189,7 @@ function ContainersController($scope, Container, Settings, ViewSpinner) {
// Controller for the list of images // Controller for the list of images
function ImagesController($scope, Image, ViewSpinner, Messages) { function ImagesController($scope, Image, ViewSpinner, Messages) {
$scope.predicate = '-Created';
$('#response').hide();
$scope.alertClass = 'block';
$scope.toggle = false; $scope.toggle = false;
$scope.respones = [];
$scope.showBuilder = function() { $scope.showBuilder = function() {
$('#build-modal').modal('show'); $('#build-modal').modal('show');
@ -232,15 +208,14 @@ function ImagesController($scope, Image, ViewSpinner, Messages) {
if (i.Checked) { if (i.Checked) {
counter = counter + 1; counter = counter + 1;
Image.remove({id: i.Id}, function(d) { Image.remove({id: i.Id}, function(d) {
console.log(d);
angular.forEach(d, function(resource) { angular.forEach(d, function(resource) {
Messages.send({class: 'text-success', data: 'Deleted: ' + resource.Deleted}); Messages.send({class: 'text-success', data: 'Deleted: ' + resource.Deleted});
}); });
//Remove the image from the list
var index = $scope.images.indexOf(i); var index = $scope.images.indexOf(i);
$scope.images.splice(index, 1); $scope.images.splice(index, 1);
complete(); complete();
}, function(e) { }, function(e) {
console.log(e);
Messages.send({class: 'text-error', data: e.data}); Messages.send({class: 'text-error', data: e.data});
complete(); complete();
}); });
@ -259,28 +234,22 @@ function ImagesController($scope, Image, ViewSpinner, Messages) {
$scope.images = d.map(function(item) { return new ImageViewModel(item); }); $scope.images = d.map(function(item) { return new ImageViewModel(item); });
ViewSpinner.stop(); ViewSpinner.stop();
}, function (e) { }, function (e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponses($scope, e.data, '#response');
ViewSpinner.stop(); ViewSpinner.stop();
}); });
} }
// Controller for a single image and actions on that image // Controller for a single image and actions on that image
function ImageController($scope, $routeParams, $location, Image) { function ImageController($scope, $routeParams, $location, Image, Messages) {
$scope.history = []; $scope.history = [];
$scope.tag = {repo: '', force: false}; $scope.tag = {repo: '', force: false};
$('#response').hide();
$scope.alertClass = 'block';
$scope.remove = function() { $scope.remove = function() {
if (confirm("Are you sure you want to delete this image?")) { if (confirm("Are you sure you want to delete this image?")) {
Image.remove({id: $routeParams.id}, function(d) { Image.remove({id: $routeParams.id}, function(d) {
console.log(d); Messages.send({class: 'text-success', data: 'Image removed.'});
setSuccessfulResponse($scope, 'Image removed.', '#response');
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
}); });
} }
}; };
@ -294,11 +263,9 @@ function ImageController($scope, $routeParams, $location, Image) {
$scope.updateTag = function() { $scope.updateTag = function() {
var tag = $scope.tag; var tag = $scope.tag;
Image.tag({id: $routeParams.id, repo: tag.repo, force: tag.force ? 1 : 0}, function(d) { Image.tag({id: $routeParams.id, repo: tag.repo, force: tag.force ? 1 : 0}, function(d) {
console.log(d); Messages.send({class: 'text-success', data: 'Tag added.'});
setSuccessfulResponse($scope, 'Tag added.', '#response');
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
}); });
}; };
@ -309,8 +276,7 @@ function ImageController($scope, $routeParams, $location, Image) {
Image.get({id: $routeParams.id}, function(d) { Image.get({id: $routeParams.id}, function(d) {
$scope.image = d; $scope.image = d;
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
setFailedResponse($scope, e.data, '#response');
if (e.status === 404) { if (e.status === 404) {
$('.detail').hide(); $('.detail').hide();
} }
@ -319,7 +285,7 @@ function ImageController($scope, $routeParams, $location, Image) {
$scope.getHistory(); $scope.getHistory();
} }
function StartContainerController($scope, $routeParams, $location, Container) { function StartContainerController($scope, $routeParams, $location, Container, Messages) {
$scope.template = 'partials/startcontainer.html'; $scope.template = 'partials/startcontainer.html';
$scope.config = { $scope.config = {
memory: 0, memory: 0,
@ -331,7 +297,6 @@ function StartContainerController($scope, $routeParams, $location, Container) {
$scope.commandPlaceholder = '["/bin/echo", "Hello world"]'; $scope.commandPlaceholder = '["/bin/echo", "Hello world"]';
$scope.create = function() { $scope.create = function() {
$scope.response = '';
var cmds = null; var cmds = null;
if ($scope.config.commands !== '') { if ($scope.config.commands !== '') {
cmds = angular.fromJson($scope.config.commands); cmds = angular.fromJson($scope.config.commands);
@ -348,20 +313,16 @@ function StartContainerController($scope, $routeParams, $location, Container) {
Cmd: cmds, Cmd: cmds,
VolumesFrom: $scope.config.volumesFrom VolumesFrom: $scope.config.volumesFrom
}, function(d) { }, function(d) {
console.log(d);
if (d.Id) { if (d.Id) {
ctor.start({id: d.Id}, function(cd) { ctor.start({id: d.Id}, function(cd) {
console.log(cd);
$('#create-modal').modal('hide'); $('#create-modal').modal('hide');
loc.path('/containers/' + d.Id + '/'); loc.path('/containers/' + d.Id + '/');
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
s.resonse = e.data;
}); });
} }
}, function(e) { }, function(e) {
console.log(e); failedRequestHandler(e, Messages);
$scope.response = e.data;
}); });
}; };
} }
@ -380,15 +341,6 @@ function BuilderController($scope, Dockerfile, Messages) {
}; };
} }
function setSuccessfulResponse($scope, msg, msgId) { function failedRequestHandler(e, Messages) {
$scope.alertClass = 'success'; Messages.send({class: 'text-error', data: e.data});
$scope.response = msg;
$(msgId).show();
setTimeout(function() { $(msgId).hide();}, 5000);
}
function setFailedResponse($scope, msg, msgId) {
$scope.alertClass = 'error';
$scope.response = msg;
$(msgId).show();
} }

View File

@ -4,9 +4,6 @@
<h3>Build Image</h3> <h3>Build Image</h3>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div>
{{ response }}
</div>
<div id="editor"></div> <div id="editor"></div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">

View File

@ -1,7 +1,3 @@
<div id="response" class="alert alert-{{ alertClass }}">
{{ response }}
</div>
<div class="detail"> <div class="detail">
<h4>Container: {{ container.Id }}</h4> <h4>Container: {{ container.Id }}</h4>

View File

@ -21,7 +21,7 @@
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th>Action <input type="checkbox" ng-model="toggle" ng-click="toggleSelectAll()" /></th> <th><input type="checkbox" ng-model="toggle" ng-click="toggleSelectAll()" /> Action</th>
<th>Id</th> <th>Id</th>
<th>Image</th> <th>Image</th>
<th>Command</th> <th>Command</th>

View File

@ -1,8 +1,3 @@
<div id="response" class="alert alert-{{ alertClass }}">
{{ response }}
</div>
<div ng-include="template" ng-controller="StartContainerController"></div> <div ng-include="template" ng-controller="StartContainerController"></div>
<div class="detail"> <div class="detail">

View File

@ -15,7 +15,7 @@
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th>Action <input type="checkbox" ng-model="toggle" ng-click="toggleSelectAll()" /></th> <th><input type="checkbox" ng-model="toggle" ng-click="toggleSelectAll()" /> Action</th>
<th>Id</th> <th>Id</th>
<th>Tag</th> <th>Tag</th>
<th>Repository</th> <th>Repository</th>

View File

@ -1,8 +1,4 @@
<div class="detail"> <div class="detail">
<div id="response" class="alert alert-{{ alertClass }}">
{{ response }}
</div>
<h3>Docker Information</h3> <h3>Docker Information</h3>
<div> <div>
<p class="lead"> <p class="lead">

View File

@ -4,9 +4,6 @@
<h3>Create Container</h3> <h3>Create Container</h3>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div>
{{ response }}
</div>
<form> <form>
<fieldset> <fieldset>
<legend>Start container from Image</legend> <legend>Start container from Image</legend>