diff --git a/app/components/templates/templatesController.js b/app/components/templates/templatesController.js index 1db8927af..625df6044 100644 --- a/app/components/templates/templatesController.js +++ b/app/components/templates/templatesController.js @@ -122,7 +122,11 @@ function ($scope, $q, $state, $anchorScroll, Config, ContainerService, Container function filterNetworksBasedOnProvider(networks) { var endpointProvider = $scope.applicationState.endpoint.mode.provider; if (endpointProvider === 'DOCKER_SWARM' || endpointProvider === 'DOCKER_SWARM_MODE') { - networks = NetworkService.filterGlobalNetworks(networks); + if (endpointProvider === 'DOCKER_SWARM') { + networks = NetworkService.filterGlobalNetworks(networks); + } else { + networks = NetworkService.filterSwarmModeAttachableNetworks(networks); + } $scope.globalNetworkCount = networks.length; NetworkService.addPredefinedLocalNetworks(networks); } diff --git a/app/services/networkService.js b/app/services/networkService.js index 256be1141..fb25eead7 100644 --- a/app/services/networkService.js +++ b/app/services/networkService.js @@ -15,6 +15,14 @@ angular.module('portainer.services') }); }; + service.filterSwarmModeAttachableNetworks = function(networks) { + return networks.filter(function (network) { + if (network.Scope === 'swarm' && network.Attachable === true) { + return network; + } + }); + }; + service.addPredefinedLocalNetworks = function(networks) { networks.push({Scope: "local", Name: "bridge"}); networks.push({Scope: "local", Name: "host"});