mirror of https://github.com/docker/docs.git
75 lines
2.4 KiB
JavaScript
Executable File
75 lines
2.4 KiB
JavaScript
Executable File
Template.modal_create_image.rendered = function () {
|
|
$('#modal-create-image').bind('hidden.bs.modal', function () {
|
|
Router.go('dashboard_images');
|
|
});
|
|
};
|
|
|
|
Template.modal_create_image.helpers({
|
|
githubConfig: function () {
|
|
return ServiceConfiguration.configurations.findOne({service: 'github'});
|
|
}
|
|
});
|
|
|
|
Template.modal_create_image.events({
|
|
'click #btn-pick-directory': function () {
|
|
$('#directory-picker').click();
|
|
},
|
|
'change #directory-picker': function (e) {
|
|
var $picker = $(e.currentTarget);
|
|
var pickedDirectory = $picker.val();
|
|
$('#picked-directory-error').html('');
|
|
if (pickedDirectory) {
|
|
$('#picked-directory').html('<strong>' + pickedDirectory + '<strong>');
|
|
if (!Util.hasDockerfile(pickedDirectory)) {
|
|
$('#picked-directory-error').html('Only directories with Dockerfiles are supported now.');
|
|
$('#btn-create-image').attr('disabled', 'disabled');
|
|
} else {
|
|
$('#btn-create-image').removeAttr('disabled');
|
|
}
|
|
} else {
|
|
$('#picked-directory').html('');
|
|
$('#btn-create-image').attr('disabled', 'disabled');
|
|
}
|
|
},
|
|
'click #btn-create-image': function () {
|
|
var directory = $('#directory-picker').val();
|
|
$('#directory-picker').val('');
|
|
$('#picked-directory-error').html('');
|
|
$('#picked-directory').html('');
|
|
$('#btn-create-image').attr('disabled', 'disabled');
|
|
$('#modal-create-image').modal('hide');
|
|
var imageObj = {
|
|
status: 'BUILDING',
|
|
originPath: directory,
|
|
buildLogs: [],
|
|
createdAt: new Date()
|
|
};
|
|
var imageMetaData = ImageUtil.getMetaData(directory);
|
|
imageObj.meta = imageMetaData;
|
|
var imageId = Images.insert(imageObj);
|
|
var imagePath = path.join(KITE_IMAGES_PATH, imageId);
|
|
Images.update(imageId, {
|
|
$set: {
|
|
path: imagePath
|
|
}
|
|
});
|
|
if (imageObj.meta.logo) {
|
|
Images.update(imageId, {
|
|
$set: {
|
|
logoPath: path.join(imagePath, imageObj.meta.logo)
|
|
}
|
|
});
|
|
}
|
|
var image = Images.findOne(imageId);
|
|
ImageUtil.saveFolder(image.originPath, imageId, function (err) {
|
|
if (err) { console.error(err); }
|
|
ImageUtil.pull(fs.readFileSync(path.join(image.path, 'Dockerfile'), 'utf8'), imageId, function (err) {
|
|
if (err) { throw err; }
|
|
ImageUtil.build(image, function (err) {
|
|
if (err) { console.error(err); }
|
|
});
|
|
});
|
|
});
|
|
}
|
|
});
|