diff --git a/awx/ui/client/src/access/add-rbac-resource/rbac-resource.controller.js b/awx/ui/client/src/access/add-rbac-resource/rbac-resource.controller.js index 450ab9c997..fab59661a0 100644 --- a/awx/ui/client/src/access/add-rbac-resource/rbac-resource.controller.js +++ b/awx/ui/client/src/access/add-rbac-resource/rbac-resource.controller.js @@ -82,7 +82,6 @@ export default ['$rootScope', '$scope', 'GetBasePath', 'Rest', '$q', 'Wait', 'Pr scope.removeObject = function(obj){ let resourceType = scope.currentTab(); delete scope.allSelected[resourceType][obj.id]; - obj.isSelected = false; }; scope.toggleKeyPane = function() { diff --git a/awx/ui/client/src/access/rbac-multiselect/rbac-multiselect-list.directive.js b/awx/ui/client/src/access/rbac-multiselect/rbac-multiselect-list.directive.js index 190cf125e6..5f1bbaf5a0 100644 --- a/awx/ui/client/src/access/rbac-multiselect/rbac-multiselect-list.directive.js +++ b/awx/ui/client/src/access/rbac-multiselect/rbac-multiselect-list.directive.js @@ -138,6 +138,10 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL scope[`${list.iterator}_dataset`] = scope.dataset.data; scope[`${list.name}`] = scope[`${list.iterator}_dataset`].results; + scope.$watch(`allSelected.${list.name}`, function(){ + _.forEach(scope[`${list.name}`], isSelected); + }, true); + scope.$watch(list.name, function(){ _.forEach(scope[`${list.name}`], isSelected); optionsRequestDataProcessing(); @@ -172,6 +176,7 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL } function isSelected(item){ + item.isSelected = false; _.forEach(scope.allSelected[list.name], (selectedRow) => { if(selectedRow.id === item.id) { item.isSelected = true;