diff --git a/app/components/builder/builderController.js b/app/components/builder/builderController.js index 7af32e1e7..eff32d9ca 100644 --- a/app/components/builder/builderController.js +++ b/app/components/builder/builderController.js @@ -1,5 +1,5 @@ angular.module('builder', []) .controller('BuilderController', ['$scope', 'Dockerfile', 'Messages', function($scope, Dockerfile, Messages) { - $scope.template = 'partials/builder.html'; + $scope.template = 'app/components/builder/builder.html'; }]); diff --git a/app/components/dashboard/dashboardController.js b/app/components/dashboard/dashboardController.js index 5512faa68..26b0ebeb2 100644 --- a/app/components/dashboard/dashboardController.js +++ b/app/components/dashboard/dashboardController.js @@ -1,15 +1,15 @@ angular.module('dashboard', []) -.controller('DashboardController', ['$scope', 'Container', 'Image', 'Settings', function($scope, Container, Image, Settings) { +.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; - newLineChart('#containers-started-chart', data, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); }); + 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; - newLineChart('#images-created-chart', d, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); }); + LineChart.build('#images-created-chart', d, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); }); }); }; @@ -46,7 +46,7 @@ angular.module('dashboard', []) getStarted(d); - var c = getChart('#containers-chart'); + var c = new Chart($('#containers-chart').get(0).getContext("2d")); var data = [ { value: running, diff --git a/app/components/image/imageController.js b/app/components/image/imageController.js index a361f3543..6fc7a11b0 100644 --- a/app/components/image/imageController.js +++ b/app/components/image/imageController.js @@ -1,6 +1,6 @@ angular.module('image', []) -.controller('ImageController', ['$scope', '$q', '$routeParams', '$location', 'Image', 'Container', 'Messages', -function($scope, $q, $routeParams, $location, Image, Container, Messages) { +.controller('ImageController', ['$scope', '$q', '$routeParams', '$location', 'Image', 'Container', 'Messages', 'LineChart', +function($scope, $q, $routeParams, $location, Image, Container, Messages, LineChart) { $scope.history = []; $scope.tag = {repo: '', force: false}; @@ -29,6 +29,23 @@ function($scope, $q, $routeParams, $location, Image, Container, Messages) { }); }; + function getContainersFromImage($q, Container, tag) { + var defer = $q.defer(); + + Container.query({all:1, notruc:1}, function(d) { + var containers = []; + for (var i = 0; i < d.length; i++) { + var c = d[i]; + if (c.Image == tag) { + containers.push(new ContainerViewModel(c)); + } + } + defer.resolve(containers); + }); + + return defer.promise; + } + Image.get({id: $routeParams.id}, function(d) { $scope.image = d; $scope.tag = d.id; @@ -38,7 +55,7 @@ function($scope, $q, $routeParams, $location, Image, Container, Messages) { var promise = getContainersFromImage($q, Container, t); promise.then(function(containers) { - newLineChart('#containers-started-chart', containers, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); }); + LineChart.build('#containers-started-chart', containers, function(c) { return new Date(c.Created * 1000).toLocaleDateString(); }); }); } }, function(e) { diff --git a/app/components/startContainer/startContainerController.js b/app/components/startContainer/startContainerController.js index ad4015242..fc99597af 100644 --- a/app/components/startContainer/startContainerController.js +++ b/app/components/startContainer/startContainerController.js @@ -13,6 +13,10 @@ function($scope, $routeParams, $location, Container, Messages) { }; $scope.commandPlaceholder = '["/bin/echo", "Hello world"]'; + function failedRequestHandler(e, Messages) { + Messages.send({class: 'text-error', data: e.data}); + } + $scope.create = function() { var cmds = null; if ($scope.config.commands !== '') { @@ -39,6 +43,8 @@ function($scope, $routeParams, $location, Container, Messages) { }, function(e) { failedRequestHandler(e, Messages); }); + } else { + failedRequestHandler(d, Messages); } }, function(e) { failedRequestHandler(e, Messages); diff --git a/app/controllers.js b/app/controllers.js deleted file mode 100644 index df0fc5157..000000000 --- a/app/controllers.js +++ /dev/null @@ -1,70 +0,0 @@ -function newLineChart(id, data, getkey) { - var chart = getChart(id); - var map = {}; - - for (var i = 0; i < data.length; i++) { - var c = data[i]; - var key = getkey(c); - - var count = map[key]; - if (count === undefined) { - count = 0; - } - count += 1; - map[key] = count; - } - - var labels = []; - var data = []; - var keys = Object.keys(map); - - for (var i = keys.length - 1; i > -1; i--) { - var k = keys[i]; - labels.push(k); - data.push(map[k]); - } - var dataset = { - fillColor : "rgba(151,187,205,0.5)", - strokeColor : "rgba(151,187,205,1)", - pointColor : "rgba(151,187,205,1)", - pointStrokeColor : "#fff", - data : data - }; - chart.Line({ - labels: labels, - datasets: [dataset] - }, - { - scaleStepWidth: 1, - pointDotRadius:1, - scaleOverride: true, - scaleSteps: labels.length - }); -} - -function getChart(id) { - var ctx = $(id).get(0).getContext("2d"); - return new Chart(ctx); -} - -function failedRequestHandler(e, Messages) { - Messages.send({class: 'text-error', data: e.data}); -} - -// This gonna get messy but we don't have a good way to do this right now -function getContainersFromImage($q, Container, tag) { - var defer = $q.defer(); - - Container.query({all:1, notruc:1}, function(d) { - var containers = []; - for (var i = 0; i < d.length; i++) { - var c = d[i]; - if (c.Image == tag) { - containers.push(new ContainerViewModel(c)); - } - } - defer.resolve(containers); - }); - - return defer.promise; -} diff --git a/app/filters.js b/app/shared/filters.js similarity index 100% rename from app/filters.js rename to app/shared/filters.js diff --git a/app/services.js b/app/shared/services.js similarity index 74% rename from app/services.js rename to app/shared/services.js index e8c5bdfce..a8876f32c 100644 --- a/app/services.js +++ b/app/shared/services.js @@ -123,4 +123,52 @@ angular.module('dockerui.services', ['ngResource']) request.send(data); } }; + }) + .factory('LineChart', function(Settings) { + var url = Settings.rawUrl + '/build'; + return { + build: function(id, data, getkey){ + var chart = new Chart($(id).get(0).getContext("2d")); + var map = {}; + + for (var i = 0; i < data.length; i++) { + var c = data[i]; + var key = getkey(c); + + var count = map[key]; + if (count === undefined) { + count = 0; + } + count += 1; + map[key] = count; + } + + var labels = []; + var data = []; + var keys = Object.keys(map); + + for (var i = keys.length - 1; i > -1; i--) { + var k = keys[i]; + labels.push(k); + data.push(map[k]); + } + var dataset = { + fillColor : "rgba(151,187,205,0.5)", + strokeColor : "rgba(151,187,205,1)", + pointColor : "rgba(151,187,205,1)", + pointStrokeColor : "#fff", + data : data + }; + chart.Line({ + labels: labels, + datasets: [dataset] + }, + { + scaleStepWidth: 1, + pointDotRadius:1, + scaleOverride: true, + scaleSteps: labels.length + }); + } + }; }); diff --git a/app/viewmodel.js b/app/shared/viewmodel.js similarity index 100% rename from app/viewmodel.js rename to app/shared/viewmodel.js diff --git a/index.html b/index.html index 3b71065ad..b529c6167 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,6 @@ - @@ -33,9 +32,9 @@ - - - + + + @@ -48,7 +47,6 @@ -