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();
+
}
};
}];