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 @@ -
+
@@ -10,4 +10,22 @@ Learn more.
+ +
+
+

Running Containers

+ +
+
+ + Get a better broswer... Your holding everyone back. + +
+
+
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 @@ - -