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')
 | 
			
		||||
.factory('ContainerHelper', [function ContainerHelperFactory() {
 | 
			
		||||
  'use strict';
 | 
			
		||||
  return {
 | 
			
		||||
    hideContainers: function(containers, containersToHideLabels) {
 | 
			
		||||
      return containers.filter(function (container) {
 | 
			
		||||
        var filterContainer = false;
 | 
			
		||||
        containersToHideLabels.forEach(function(label, index) {
 | 
			
		||||
          if (_.has(container.Labels, label.name) &&
 | 
			
		||||
          container.Labels[label.name] === label.value) {
 | 
			
		||||
            filterContainer = true;
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
        if (!filterContainer) {
 | 
			
		||||
          return container;
 | 
			
		||||
  var helper = {};
 | 
			
		||||
 | 
			
		||||
  helper.commandStringToArray = function(command) {
 | 
			
		||||
    return splitargs(command);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  helper.hideContainers = function(containers, containersToHideLabels) {
 | 
			
		||||
    return containers.filter(function (container) {
 | 
			
		||||
      var filterContainer = false;
 | 
			
		||||
      containersToHideLabels.forEach(function(label, index) {
 | 
			
		||||
        if (_.has(container.Labels, label.name) &&
 | 
			
		||||
        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.Image = data.image;
 | 
			
		||||
  this.Registry = data.registry ? data.registry : '';
 | 
			
		||||
  this.Command = data.command ? data.command : '';
 | 
			
		||||
  this.Env = data.env ? data.env : [];
 | 
			
		||||
  this.Volumes = data.volumes ? data.volumes : [];
 | 
			
		||||
  this.Ports = [];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
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';
 | 
			
		||||
  var service = {};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -39,9 +39,8 @@ angular.module('portainer.services')
 | 
			
		|||
    configuration.HostConfig.NetworkMode = network.Name;
 | 
			
		||||
    configuration.name = containerName;
 | 
			
		||||
    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);
 | 
			
		||||
    configuration.HostConfig.PortBindings = portConfiguration.bindings;
 | 
			
		||||
    configuration.ExposedPorts = portConfiguration.exposedPorts;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,8 @@
 | 
			
		|||
    "moment": "~2.14.1",
 | 
			
		||||
    "xterm.js": "~2.0.1",
 | 
			
		||||
    "font-awesome": "~4.7.0",
 | 
			
		||||
    "ng-file-upload": "~12.2.13"
 | 
			
		||||
    "ng-file-upload": "~12.2.13",
 | 
			
		||||
    "splitargs": "~0.2.0"
 | 
			
		||||
  },
 | 
			
		||||
  "resolutions": {
 | 
			
		||||
    "angular": "1.5.5"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -129,6 +129,7 @@ module.exports = function (grunt) {
 | 
			
		|||
        'bower_components/bootstrap/dist/js/bootstrap.min.js',
 | 
			
		||||
        'bower_components/Chart.js/Chart.min.js',
 | 
			
		||||
        'bower_components/lodash/dist/lodash.min.js',
 | 
			
		||||
        'bower_components/splitargs/src/splitargs.js',
 | 
			
		||||
        'bower_components/filesize/lib/filesize.min.js',
 | 
			
		||||
        'bower_components/moment/min/moment.min.js',
 | 
			
		||||
        'bower_components/xterm.js/dist/xterm.js',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue