diff --git a/awx/ui/client/src/access/addPermissions/addPermissions.partial.html b/awx/ui/client/src/access/addPermissions/addPermissions.partial.html index 5d0d4f01b9..85fd03d7f9 100644 --- a/awx/ui/client/src/access/addPermissions/addPermissions.partial.html +++ b/awx/ui/client/src/access/addPermissions/addPermissions.partial.html @@ -41,11 +41,11 @@
- +
- +
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 6342ec0b8d..6722fac853 100644 --- a/awx/ui/client/src/access/addPermissions/addPermissionsList/addPermissionsList.directive.js +++ b/awx/ui/client/src/access/addPermissions/addPermissionsList/addPermissionsList.directive.js @@ -13,6 +13,7 @@ export default return { restrict: 'E', scope: { + allSelected: '=' }, template: "
", link: function(scope, element, attrs, ctrl) { @@ -50,6 +51,23 @@ 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) { - scope.isSelected = false; - scope.decoratedItem = multiSelectList.registerItem(scope.item); + 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.$watch('isSelected', function(value) { if (value === true) { @@ -44,8 +47,11 @@ export default } }); - scope.$watch('decoratedItem.isSelected', function(value) { - scope.isSelected = value; + 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() { @@ -56,6 +62,8 @@ export default scope.$emit("selectedOrDeselected", scope.decoratedItem); }; + initializeItem(); + } }; }];