diff --git a/app/app.js b/app/app.js index c21c25c79..50c2fc7a3 100644 --- a/app/app.js +++ b/app/app.js @@ -77,6 +77,11 @@ angular.module('uifordocker', [ templateUrl: 'app/components/createVolume/createvolume.html', controller: 'CreateVolumeController' }) + .state('actions.create.network', { + url: "/network", + templateUrl: 'app/components/createNetwork/createnetwork.html', + controller: 'CreateNetworkController' + }) .state('docker', { url: '/docker/', templateUrl: 'app/components/docker/docker.html', diff --git a/app/components/createNetwork/createNetwork.html b/app/components/createNetwork/createNetwork.html deleted file mode 100644 index 6c317a9f9..000000000 --- a/app/components/createNetwork/createNetwork.html +++ /dev/null @@ -1,45 +0,0 @@ - diff --git a/app/components/createNetwork/createNetworkController.js b/app/components/createNetwork/createNetworkController.js index a0e56882e..0bf69748c 100644 --- a/app/components/createNetwork/createNetworkController.js +++ b/app/components/createNetwork/createNetworkController.js @@ -1,41 +1,58 @@ angular.module('createNetwork', []) .controller('CreateNetworkController', ['$scope', '$state', 'Messages', 'Network', 'ViewSpinner', 'errorMsgFilter', function ($scope, $state, Messages, Network, ViewSpinner, errorMsgFilter) { - $scope.template = 'app/components/createNetwork/createNetwork.html'; - - $scope.init = function () { - $scope.createNetworkConfig = { - "Name": '', - "Driver": '', - "IPAM": { - "Config": [{}] - } - }; + $scope.formValues = { + DriverOptions: [] }; - $scope.init(); + $scope.config = { + Driver: 'bridge', + CheckDuplicate: true, + Internal: false + }; - $scope.createNetwork = function addNetwork(createNetworkConfig) { - if (_.isEmpty(createNetworkConfig.IPAM.Config[0])) { - delete createNetworkConfig.IPAM; - } - $('#error-message').hide(); + $scope.addDriverOption = function() { + $scope.formValues.DriverOptions.push({ name: '', value: '' }); + }; + + $scope.removeDriverOption = function(index) { + $scope.formValues.DriverOptions.splice(index, 1); + }; + + function createNetwork(config) { ViewSpinner.spin(); - $('#create-network-modal').modal('hide'); - Network.create(createNetworkConfig, function (d) { + Network.create(config, function (d) { if (d.Id) { Messages.send("Network created", d.Id); + ViewSpinner.stop(); + $state.go('networks', {}, {reload: true}); } else { - Messages.error('Failure', errorMsgFilter(d)); + ViewSpinner.stop(); + Messages.error('Unable to create network', errorMsgFilter(d)); } - ViewSpinner.stop(); - $scope.init(); - $state.go('networks', {}, {reload: true}); }, function (e) { ViewSpinner.stop(); - $scope.error = "Cannot pull image " + imageName + " Reason: " + e.data; - $('#create-network-modal').modal('show'); - $('#error-message').show(); + Messages.error('Unable to create network', e.data); }); + } + + function prepareDriverOptions(config) { + var options = {}; + $scope.formValues.DriverOptions.forEach(function (option) { + options[option.name] = option.value; + }); + config.Options = options; + } + + function prepareConfiguration() { + var config = angular.copy($scope.config); + prepareDriverOptions(config); + return config; + } + + $scope.create = function () { + var config = prepareConfiguration(); + console.log(JSON.stringify(config, null, 4)); + createNetwork(config); }; }]); diff --git a/app/components/createNetwork/createnetwork.html b/app/components/createNetwork/createnetwork.html new file mode 100644 index 000000000..f4ae1d756 --- /dev/null +++ b/app/components/createNetwork/createnetwork.html @@ -0,0 +1,80 @@ + + + + Networks > Add network + + + +
+
+ + +
+ +
+ +
+ +
+
+ + +
+ +
+ +
+
+ + +
+ +
+ + driver option + +
+ +
+
+
+ name + +
+
+ value + + + + +
+
+
+ +
+ + +
+
+
+ +
+
+
+ +
+
+
+
+
+ +
+
+ + Cancel +
+
diff --git a/app/components/networks/networks.html b/app/components/networks/networks.html index d057c8594..dc5f22f52 100644 --- a/app/components/networks/networks.html +++ b/app/components/networks/networks.html @@ -16,10 +16,8 @@
-
- - -
+ + Add network