mirror of https://github.com/portainer/portainer
73 lines
2.1 KiB
JavaScript
73 lines
2.1 KiB
JavaScript
angular.module('dashboard', [])
|
|
.controller('DashboardController', ['$scope', 'Container', 'Image', 'Settings', 'LineChart', function($scope, Container, Image, Settings, LineChart) {
|
|
$scope.predicate = '-Created';
|
|
$scope.containers = [];
|
|
|
|
var getStarted = function(data) {
|
|
$scope.totalContainers = data.length;
|
|
LineChart.build('#containers-started-chart', data, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); });
|
|
var s = $scope;
|
|
Image.query({}, function(d) {
|
|
s.totalImages = d.length;
|
|
LineChart.build('#images-created-chart', d, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); });
|
|
});
|
|
};
|
|
|
|
var opts = {animation:false};
|
|
if (Settings.firstLoad) {
|
|
$('#stats').hide();
|
|
opts.animation = true;
|
|
Settings.firstLoad = false;
|
|
$('#masthead').show();
|
|
|
|
setTimeout(function() {
|
|
$('#masthead').slideUp('slow');
|
|
$('#stats').slideDown('slow');
|
|
}, 5000);
|
|
}
|
|
|
|
Container.query({all: 1}, function(d) {
|
|
var running = 0;
|
|
var ghost = 0;
|
|
var stopped = 0;
|
|
|
|
for (var i = 0; i < d.length; i++) {
|
|
var item = d[i];
|
|
|
|
if (item.Status === "Ghost") {
|
|
ghost += 1;
|
|
} else if (item.Status.indexOf('Exit') !== -1) {
|
|
stopped += 1;
|
|
} else {
|
|
running += 1;
|
|
$scope.containers.push(new ContainerViewModel(item));
|
|
}
|
|
}
|
|
|
|
getStarted(d);
|
|
|
|
var c = new Chart($('#containers-chart').get(0).getContext("2d"));
|
|
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, opts);
|
|
var lgd = $('#chart-legend').get(0);
|
|
legend(lgd, data);
|
|
});
|
|
}]);
|