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 @@
-
-
-
-
-
-
- {{ error }}
-
-
-
-
-
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
+
+
+
+
+
+
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