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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NetworkSubnets AssociatedSharedAdmin StateStatus
-
- 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'] $}
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NetworkSubnets AssociatedSharedAdmin StateStatus
-
- 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() {