1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-20 13:59:40 +02:00
portainer/app/components/pullImage/pullImageController.js
Haris Michopoulos 5dd094e0b1 dockerui-118 How to pull images / create container from repo image ?
Added a modal dialog that gets user's input (registry, repo, image name and tag) and performs the pull. Some hack was needed to parse the response, since it is not valid json (actually, it seems to be concatenated json objects).
2015-06-05 17:21:52 +02:00

49 lines
2.1 KiB
JavaScript

angular.module('pullImage', [])
.controller('PullImageController', ['$scope', '$log', 'Dockerfile', 'Messages', 'Image', 'ViewSpinner',
function($scope, $log, Dockerfile, Messages, Image, ViewSpinne) {
$scope.template = 'app/components/pullImage/pullImage.html';
$scope.config = {
registry: '',
repo: '',
fromImage: '',
tag: 'latest'
}
function failedRequestHandler(e, Messages) {
Messages.error('Error', errorMsgFilter(e));
}
$scope.pull = function() {
$('#error-message').hide();
var config = angular.copy($scope.config);
var imageName = (config.registry ? config.registry + '/' : '' ) +
(config.repo ? config.repo + '/' : '') +
(config.fromImage) +
(config.tag ? ':' + config.tag : '');
ViewSpinner.spin();
Image.create(config, function(data) {
ViewSpinner.stop();
if (data.constructor === Array) {
var f = data.length > 0 && data[data.length-1].hasOwnProperty('error');
//check for error
if (f) {
var d = data[data.length - 1];
$scope.error = "Cannot pull image " + imageName + " Reason: " + d.error;
$('#error-message').show();
} else {
Messages.send("Image Added", imageName);
$('#pull-modal').modal('hide');
}
} else {
Messages.send("Image Added", imageName);
$('#pull-modal').modal('hide');
}
}, function(e) {
ViewSpinner.stop();
$scope.error = "Cannot pull image " + imageName + " Reason: " + e.data;
$('#error-message').show();
});
}
}]);