diff --git a/css/app.css b/css/app.css
index f967526d2..1dc27fbf8 100644
--- a/css/app.css
+++ b/css/app.css
@@ -109,3 +109,14 @@
overflow-y: scroll;
overflow-x: hidden;
}
+
+.legend {
+ width: 7em;
+}
+
+.legend .title {
+ margin: 0.5em;
+ border-style: solid;
+ border-width: 0 0 0 1em;
+ padding: 0 0.3em;
+}
diff --git a/index.html b/index.html
index ec17c1263..9a5efea8e 100644
--- a/index.html
+++ b/index.html
@@ -30,7 +30,6 @@
-
@@ -59,6 +58,8 @@
+
+
diff --git a/js/controllers.js b/js/controllers.js
index 9ccfa4f97..606ada8d1 100644
--- a/js/controllers.js
+++ b/js/controllers.js
@@ -4,23 +4,51 @@ function MastheadController($scope) {
}
function DashboardController($scope, Container) {
-}
+ $scope.predicate = '-Created';
+ $scope.containers = [];
+
+ Container.query({all: 1}, function(d) {
+ var running = 0
+ var ghost = 0;
+ var stopped = 0;
-function MessageController($scope, Messages) {
- $scope.template = 'partials/messages.html';
- $scope.messages = [];
- $scope.$watch('messages.length', function(o, n) {
- $('#message-display').show();
- });
+ for (var i = 0; i < d.length; i++) {
+ var item = d[i];
- $scope.$on(Messages.event, function(e, msg) {
- $scope.messages.push(msg);
- var s = $scope;
- setTimeout(function() {
- $('#message-display').hide('slow');
- s.messages = [];
- }, 20000);
- });
+ if (item.Status === "Ghost") {
+ ghost += 1;
+ } else if (item.Status.indexOf('Exit') !== -1) {
+ stopped += 1;
+ } else {
+ running += 1;
+ $scope.containers.push(new ContainerViewModel(item));
+ }
+ }
+
+ var ctx = $("#containers-chart").get(0).getContext("2d");
+ var c = new Chart(ctx);
+ var data = [
+ {
+ value: running,
+ color: '#5bb75b',
+ title: 'Running'
+ }, // running
+ {
+ value: stopped,
+ color: '#C7604C',
+ title: 'Stopped'
+ }, // stopped
+ {
+ value: ghost,
+ color: '#E2EAE9',
+ title: 'Ghost'
+ } // ghost
+ ];
+
+ c.Doughnut(data, {});
+ var lgd = $('#chart-legend').get(0);
+ legend(lgd, data);
+ });
}
function StatusBarController($scope, Settings) {
@@ -64,7 +92,7 @@ function ContainerController($scope, $routeParams, $location, Container, Message
$scope.stop = function() {
Container.stop({id: $routeParams.id}, function(d) {
- Messages.success("Container stopped", $routeParams.id);
+ Messages.send("Container stopped", $routeParams.id);
}, function(e) {
Messages.error("Failure", "Container failed to stop." + e.data);
});
@@ -72,7 +100,7 @@ function ContainerController($scope, $routeParams, $location, Container, Message
$scope.kill = function() {
Container.kill({id: $routeParams.id}, function(d) {
- Messages.success("Container killed", $routeParams.id);
+ Messages.send("Container killed", $routeParams.id);
}, function(e) {
Messages.error("Failure", "Container failed to die." + e.data);
});
@@ -80,7 +108,7 @@ function ContainerController($scope, $routeParams, $location, Container, Message
$scope.remove = function() {
Container.remove({id: $routeParams.id}, function(d) {
- Messages.success("Container removed", $routeParams.id);
+ Messages.send("Container removed", $routeParams.id);
}, function(e){
Messages.error("Failure", "Container failed to remove." + e.data);
});
@@ -124,7 +152,7 @@ function ContainersController($scope, Container, Settings, Messages, ViewSpinner
});
};
- var batch = function(items, action) {
+ var batch = function(items, action, msg) {
ViewSpinner.spin();
var counter = 0;
var complete = function() {
@@ -137,7 +165,7 @@ function ContainersController($scope, Container, Settings, Messages, ViewSpinner
if (c.Checked) {
counter = counter + 1;
action({id: c.Id}, function(d) {
- Messages.error("Container Removed", c.Id);
+ Messages.send("Container " + msg, c.Id);
var index = $scope.containers.indexOf(c);
$scope.containers.splice(index, 1);
complete();
@@ -166,19 +194,19 @@ function ContainersController($scope, Container, Settings, Messages, ViewSpinner
};
$scope.startAction = function() {
- batch($scope.containers, Container.start);
+ batch($scope.containers, Container.start, "Started");
};
$scope.stopAction = function() {
- batch($scope.containers, Container.stop);
+ batch($scope.containers, Container.stop, "Stopped");
};
$scope.killAction = function() {
- batch($scope.containers, Container.kill);
+ batch($scope.containers, Container.kill, "Killed");
};
$scope.removeAction = function() {
- batch($scope.containers, Container.remove);
+ batch($scope.containers, Container.remove, "Removed");
};
update({all: $scope.displayAll ? 1 : 0});
diff --git a/partials/dashboard.html b/partials/dashboard.html
index 637460e30..20c97f2a8 100644
--- a/partials/dashboard.html
+++ b/partials/dashboard.html
@@ -1,5 +1,5 @@
-
+
+
+
+
+
+
+
+
diff --git a/partials/messages.html b/partials/messages.html
deleted file mode 100644
index 90527bb6f..000000000
--- a/partials/messages.html
+++ /dev/null
@@ -1,4 +0,0 @@
-