summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.js7
-rw-r--r--openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.spec.js14
2 files changed, 19 insertions, 2 deletions
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.js
index d7a460b2f..a789b001e 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.js
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.js
@@ -428,7 +428,10 @@
////////////////////
function updateBootSourceSelection(selectedSource) {
- ctrl.currentBootSource = selectedSource;
+ if (ctrl.currentBootSource !== selectedSource) {
+ ctrl.selection.length = 0;
+ ctrl.currentBootSource = selectedSource;
+ }
if ((selectedSource === bootSourceTypes.IMAGE ||
selectedSource === bootSourceTypes.INSTANCE_SNAPSHOT) && $scope.model.volumeBootable) {
$scope.model.newInstanceSpec.vol_create =
@@ -451,8 +454,8 @@
}
function updateDataSource(key, preSelection) {
- selection.length = 0;
if (preSelection) {
+ ctrl.selection.length = 0;
push.apply(selection, preSelection);
}
angular.extend(ctrl.tableData, bootSources[key]);
diff --git a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.spec.js b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.spec.js
index 79585b050..3963c233e 100644
--- a/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.spec.js
+++ b/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/source/source.controller.spec.js
@@ -290,6 +290,20 @@
scope.$apply();
expect(scope.$broadcast).toHaveBeenCalled();
});
+ it('should not flush selection if boot source still the same', function() {
+ ctrl.currentBootSource = 'image';
+ ctrl.selection = ['test_selection'];
+ ctrl.updateBootSourceSelection('image');
+ scope.$apply();
+ expect(ctrl.selection).toEqual(['test_selection']);
+ });
+ it('should flush selection on new boot source', function() {
+ ctrl.currentBootSource = 'image';
+ ctrl.selection = ['test_selection'];
+ ctrl.updateBootSourceSelection('volume');
+ scope.$apply();
+ expect(ctrl.selection).toEqual([]);
+ });
});
describe('source allocation', function() {