diff --git a/awx/ui/client/src/access/addPermissions/addPermissionsList/addPermissionsList.directive.js b/awx/ui/client/src/access/addPermissions/addPermissionsList/addPermissionsList.directive.js index 6722fac853..392fe50522 100644 --- a/awx/ui/client/src/access/addPermissions/addPermissionsList/addPermissionsList.directive.js +++ b/awx/ui/client/src/access/addPermissions/addPermissionsList/addPermissionsList.directive.js @@ -51,23 +51,6 @@ export default PaginateInit({ scope: scope, list: list, url: url, pageSize: 5 }); - if (scope.removePostRefresh) { - scope.removePostRefresh(); - } - scope.removePostRefresh = scope.$on('PostRefresh', function () { - if(scope.allSelected && scope.allSelected.length > 0) { - // We need to check to see if any of the selected items are now in our list! - for(var i=0; i', link: function(scope, element, attrs, multiSelectList) { - var initializeItem = function() { - scope.decoratedItem = multiSelectList.registerItem(scope.item); - scope.isSelected = scope.item.isSelected ? true : false; - scope.decoratedItem.isSelected = scope.item.isSelected ? true : false; - }; + scope.decoratedItem = multiSelectList.registerItem(scope.item); + scope.isSelected = scope.decoratedItem.isSelected ? true : false; scope.$watch('isSelected', function(value) { if (value === true) { @@ -47,23 +44,10 @@ export default } }); - scope.$watch('item', function() { - // This is necessary for page changes where $scope.item gets updated via ng-repeat - // but this link function never gets triggered (and scope.decoratedItem) never - // gets updated. - initializeItem(); - }); - - scope.$on('$destroy', function() { - multiSelectList.deregisterItem(scope.decoratedItem); - }); - scope.userInteractionSelect = function() { scope.$emit("selectedOrDeselected", scope.decoratedItem); }; - initializeItem(); - } }; }]; diff --git a/awx/ui/client/tests/multi-select-list/multi-select-list.directive-test.js b/awx/ui/client/tests/multi-select-list/multi-select-list.directive-test.js index ad0cf8c7c9..e9077a274b 100644 --- a/awx/ui/client/tests/multi-select-list/multi-select-list.directive-test.js +++ b/awx/ui/client/tests/multi-select-list/multi-select-list.directive-test.js @@ -135,9 +135,9 @@ describeModule(mod.name) context('selectionChanged event', function() { it('triggers with selections set to all the items', function() { - var item1 = controller.registerItem({ name: 'blah' }); - var item2 = controller.registerItem({ name: 'diddy' }); - var item3 = controller.registerItem({ name: 'doo' }); + var item1 = controller.registerItem({ isSelected: false, id: 1, name: 'blah' }); + var item2 = controller.registerItem({ isSelected: false, id: 2, name: 'diddy' }); + var item3 = controller.registerItem({ isSelected: false, id: 3, name: 'doo' }); var spy = sinon.spy(); $scope.$on('multiSelectList.selectionChanged', spy); @@ -167,9 +167,9 @@ describeModule(mod.name) it('tracks extended selection state', function() { var spy = sinon.spy(); - var item1 = controller.registerItem({ name: 'blah' }); - var item2 = controller.registerItem({ name: 'diddy' }); - var item3 = controller.registerItem({ name: 'doo' }); + var item1 = controller.registerItem({ isSelected: false, id: 1, name: 'blah' }); + var item2 = controller.registerItem({ isSelected: false, id: 2, name: 'diddy' }); + var item3 = controller.registerItem({ isSelected: false, id: 3, name: 'doo' }); var allItems = _.pluck([item1, item2, item3], 'value'); controller.selectAll(); @@ -196,4 +196,3 @@ describeModule(mod.name) }); }); }); -