mirror of https://github.com/portainer/portainer
feat(templates): add support for the command field (#585)
parent
9ebe2d96dd
commit
d9624053d2
|
@ -1,20 +1,26 @@
|
||||||
angular.module('portainer.helpers')
|
angular.module('portainer.helpers')
|
||||||
.factory('ContainerHelper', [function ContainerHelperFactory() {
|
.factory('ContainerHelper', [function ContainerHelperFactory() {
|
||||||
'use strict';
|
'use strict';
|
||||||
return {
|
var helper = {};
|
||||||
hideContainers: function(containers, containersToHideLabels) {
|
|
||||||
return containers.filter(function (container) {
|
helper.commandStringToArray = function(command) {
|
||||||
var filterContainer = false;
|
return splitargs(command);
|
||||||
containersToHideLabels.forEach(function(label, index) {
|
};
|
||||||
if (_.has(container.Labels, label.name) &&
|
|
||||||
container.Labels[label.name] === label.value) {
|
helper.hideContainers = function(containers, containersToHideLabels) {
|
||||||
filterContainer = true;
|
return containers.filter(function (container) {
|
||||||
}
|
var filterContainer = false;
|
||||||
});
|
containersToHideLabels.forEach(function(label, index) {
|
||||||
if (!filterContainer) {
|
if (_.has(container.Labels, label.name) &&
|
||||||
return container;
|
container.Labels[label.name] === label.value) {
|
||||||
|
filterContainer = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
if (!filterContainer) {
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
return helper;
|
||||||
}]);
|
}]);
|
||||||
|
|
|
@ -4,6 +4,7 @@ function TemplateViewModel(data) {
|
||||||
this.Logo = data.logo;
|
this.Logo = data.logo;
|
||||||
this.Image = data.image;
|
this.Image = data.image;
|
||||||
this.Registry = data.registry ? data.registry : '';
|
this.Registry = data.registry ? data.registry : '';
|
||||||
|
this.Command = data.command ? data.command : '';
|
||||||
this.Env = data.env ? data.env : [];
|
this.Env = data.env ? data.env : [];
|
||||||
this.Volumes = data.volumes ? data.volumes : [];
|
this.Volumes = data.volumes ? data.volumes : [];
|
||||||
this.Ports = [];
|
this.Ports = [];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
angular.module('portainer.services')
|
angular.module('portainer.services')
|
||||||
.factory('TemplateService', ['$q', 'Template', 'TemplateHelper', 'ImageHelper', function TemplateServiceFactory($q, Template, TemplateHelper, ImageHelper) {
|
.factory('TemplateService', ['$q', 'Template', 'TemplateHelper', 'ImageHelper', 'ContainerHelper', function TemplateServiceFactory($q, Template, TemplateHelper, ImageHelper, ContainerHelper) {
|
||||||
'use strict';
|
'use strict';
|
||||||
var service = {};
|
var service = {};
|
||||||
|
|
||||||
|
@ -39,9 +39,8 @@ angular.module('portainer.services')
|
||||||
configuration.HostConfig.NetworkMode = network.Name;
|
configuration.HostConfig.NetworkMode = network.Name;
|
||||||
configuration.name = containerName;
|
configuration.name = containerName;
|
||||||
configuration.Image = template.Image;
|
configuration.Image = template.Image;
|
||||||
if (template.Env) {
|
configuration.Env = TemplateHelper.EnvToStringArray(template.Env, containerMapping);
|
||||||
configuration.Env = TemplateHelper.EnvToStringArray(template.Env, containerMapping);
|
configuration.Cmd = ContainerHelper.commandStringToArray(template.Command);
|
||||||
}
|
|
||||||
var portConfiguration = TemplateHelper.portArrayToPortConfiguration(template.Ports);
|
var portConfiguration = TemplateHelper.portArrayToPortConfiguration(template.Ports);
|
||||||
configuration.HostConfig.PortBindings = portConfiguration.bindings;
|
configuration.HostConfig.PortBindings = portConfiguration.bindings;
|
||||||
configuration.ExposedPorts = portConfiguration.exposedPorts;
|
configuration.ExposedPorts = portConfiguration.exposedPorts;
|
||||||
|
|
|
@ -44,7 +44,8 @@
|
||||||
"moment": "~2.14.1",
|
"moment": "~2.14.1",
|
||||||
"xterm.js": "~2.0.1",
|
"xterm.js": "~2.0.1",
|
||||||
"font-awesome": "~4.7.0",
|
"font-awesome": "~4.7.0",
|
||||||
"ng-file-upload": "~12.2.13"
|
"ng-file-upload": "~12.2.13",
|
||||||
|
"splitargs": "~0.2.0"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"angular": "1.5.5"
|
"angular": "1.5.5"
|
||||||
|
|
|
@ -129,6 +129,7 @@ module.exports = function (grunt) {
|
||||||
'bower_components/bootstrap/dist/js/bootstrap.min.js',
|
'bower_components/bootstrap/dist/js/bootstrap.min.js',
|
||||||
'bower_components/Chart.js/Chart.min.js',
|
'bower_components/Chart.js/Chart.min.js',
|
||||||
'bower_components/lodash/dist/lodash.min.js',
|
'bower_components/lodash/dist/lodash.min.js',
|
||||||
|
'bower_components/splitargs/src/splitargs.js',
|
||||||
'bower_components/filesize/lib/filesize.min.js',
|
'bower_components/filesize/lib/filesize.min.js',
|
||||||
'bower_components/moment/min/moment.min.js',
|
'bower_components/moment/min/moment.min.js',
|
||||||
'bower_components/xterm.js/dist/xterm.js',
|
'bower_components/xterm.js/dist/xterm.js',
|
||||||
|
|
Loading…
Reference in New Issue