diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network-details.html b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network-details.html
new file mode 100644
index 0000000000..cee9222ed4
--- /dev/null
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network-details.html
@@ -0,0 +1,23 @@
+
+ - ID
+ - {$ item.id $}
+ - Project
+ - {$ item.tenant_id $}
+ - External Network
+ - {$ item['router:external'] | yesno $}
+
+Provider Network
+
+
+ - Type
+ - {$ item['provider:network_type'] $}
+
+
+ - Segmentation ID
+ - {$ item['provider:segmentation_id'] $}
+
+
+ - Physical Network
+ - {$ item['provider:physical_network'] $}
+
+
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.js
index 6126c9099e..bd2f324650 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.js
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.js
@@ -28,11 +28,12 @@
LaunchInstanceNetworkController.$inject = [
'$scope',
+ 'horizon.dashboard.project.workflow.launch-instance.basePath',
'horizon.framework.widgets.action-list.button-tooltip.row-warning.service',
'launchInstanceModel'
];
- function LaunchInstanceNetworkController($scope, tooltipService, launchInstanceModel) {
+ function LaunchInstanceNetworkController($scope, basePath, tooltipService, launchInstanceModel) {
var ctrl = this;
ctrl.networkStatuses = {
@@ -45,21 +46,45 @@
'DOWN': gettext('Down')
};
+ function getStatus(status) {
+ return ctrl.networkStatuses[status];
+ }
+
+ function getAdminState(state) {
+ return ctrl.networkAdminStates[state];
+ }
+
ctrl.tableDataMulti = {
- available: $scope.model.networks,
- allocated: $scope.model.newInstanceSpec.networks,
- displayedAvailable: [],
- displayedAllocated: [],
+ available: launchInstanceModel.networks,
+ allocated: launchInstanceModel.newInstanceSpec.networks,
minItems: 1
};
+ ctrl.availableTableConfig = {
+ selectAll: false,
+ trackId: 'id',
+ detailsTemplateUrl: basePath + 'network/network-details.html',
+ columns: [
+ {id: 'name', title: gettext('Network'), priority: 1,
+ template: '{$ item.name || item.id $}
'},
+ {id: 'subnets', title: gettext('Subnets Associated'), priority: 2,
+ template: '{$ subnet.name || subnet.id $}
'},
+ {id: 'shared', title: gettext('Shared'), filters: ['yesno'], priority: 1},
+ {id: 'admin_state', title: gettext('Admin State'), filters: [getAdminState], priority: 1},
+ {id: 'status', title: gettext('Status'), filters: [getStatus], priority: 1}
+ ]
+ };
+
+ ctrl.allocatedTableConfig = angular.copy(ctrl.availableTableConfig);
+ ctrl.allocatedTableConfig.noItemsMessage = gettext(
+ 'Select one or more networks from the available networks below.');
+
ctrl.tableLimits = {
maxAllocation: -1
};
ctrl.tableHelpText = {
- allocHelpText: gettext('Select networks from those listed below.'),
- availHelpText: gettext('Select at least one network')
+ availHelpText: gettext('Select one or more')
};
ctrl.tooltipModel = tooltipService;
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.spec.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.spec.js
index d2e962fc54..22dad64425 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.spec.js
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.controller.spec.js
@@ -82,7 +82,6 @@
it('contains help text for the table', function() {
expect(ctrl.tableHelpText).toBeDefined();
- expect(ctrl.tableHelpText.allocHelpText).toBeDefined();
expect(ctrl.tableHelpText.availHelpText).toBeDefined();
});
@@ -90,8 +89,6 @@
expect(ctrl.tableDataMulti).toBeDefined();
expect(ctrl.tableDataMulti.available).toEqual(['net-a', 'net-b']);
expect(ctrl.tableDataMulti.allocated).toEqual(['net-a']);
- expect(ctrl.tableDataMulti.displayedAllocated).toEqual([]);
- expect(ctrl.tableDataMulti.displayedAvailable).toEqual([]);
expect(ctrl.tableDataMulti.minItems).toEqual(1);
});
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.html b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.html
index eeda2f9142..d52e00ff2b 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.html
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/network/network.html
@@ -1,169 +1,16 @@
- Networks provide the communication channels for instances in the cloud.
+ Networks provide the communication channels for instances in the cloud. You can select ports instead of networks or a mix of both.
-
-
-
-
-
- |
- |
- Network |
- Subnets Associated |
- Shared |
- Admin State |
- Status |
- |
-
-
-
-
-
-
- Select an item from Available items below
-
- |
-
-
-
-
- {$ $index + 1 $}
- |
-
-
- |
- {$ row.name || row.id $} |
-
- {$ subnet.name || subnet.id $}
- |
- {$ row.shared | yesno $} |
- {$ row.admin_state | decode:ctrl.networkAdminStates $} |
- {$ row.status | decode:ctrl.networkStatuses $} |
-
-
-
-
-
-
- |
-
-
-
-
- - ID
- - {$ row.id $}
- - Project
- - {$ row.tenant_id $}
- - External Network
- - {$ row['router:external'] | yesno $}
-
- Provider Network
-
-
- - Type
- - {$ row['provider:network_type'] $}
-
-
- - Segmentation ID
- - {$ row['provider:segmentation_id'] $}
-
-
- - Physical Network
- - {$ row['provider:physical_network'] $}
-
-
- |
-
-
-
-
-
-
-
-
-
-
- |
- Network |
- Subnets Associated |
- Shared |
- Admin State |
- Status |
- |
-
-
-
-
-
-
- No available items
-
- |
-
-
-
-
- |
- {$ row.name || row.id $} |
-
- {$ subnet.name || subnet.id $}
- |
- {$ row.shared | yesno $} |
- {$ row.admin_state | decode:ctrl.networkAdminStates $} |
- {$ row.status | decode:ctrl.networkStatuses $} |
-
-
-
-
-
-
-
-
-
- |
-
-
-
-
- - ID
- - {$ row.id $}
- - Project
- - {$ row.tenant_id $}
- - External Network
- - {$ row['router:external'] | yesno $}
-
- Provider Network
-
-
- - Type
- - {$ row['provider:network_type'] $}
-
-
- - Segmentation ID
- - {$ row['provider:segmentation_id'] $}
-
-
- - Physical Network
- - {$ row['provider:physical_network'] $}
-
-
- |
-
-
-
-
-
-
+
+
+
+
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js
index 462a8573e4..e4483b7559 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.controller.js
@@ -100,10 +100,11 @@
};
ctrl.allocatedTableConfig = angular.copy(ctrl.availableTableConfig);
+ ctrl.allocatedTableConfig.noItemsMessage = gettext(
+ 'Select one or more ports from the available ports below.');
ctrl.tableHelpText = {
- allocHelpText: gettext('Select ports from those listed below.'),
- availHelpText: gettext('Select one or more ports')
+ availHelpText: gettext('Select one or more')
};
ctrl.filterFacets = [{
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.spec.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.spec.js
index da5611aa18..459a1e5f03 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.spec.js
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/networkports/ports.spec.js
@@ -59,7 +59,6 @@
it('contains help text for the table', function() {
expect(ctrl.tableHelpText).toBeDefined();
- expect(ctrl.tableHelpText.allocHelpText).toBeDefined();
});
it('nameOrID returns the name', function() {