+
diff --git a/awx/ui/client/src/access/add-rbac-user-team/rbac-user-team.controller.js b/awx/ui/client/src/access/add-rbac-user-team/rbac-user-team.controller.js
index edbd5eaf6f..a97bd0218c 100644
--- a/awx/ui/client/src/access/add-rbac-user-team/rbac-user-team.controller.js
+++ b/awx/ui/client/src/access/add-rbac-user-team/rbac-user-team.controller.js
@@ -127,7 +127,7 @@ function(rootScope, scope, $state, i18n, CreateSelect2, GetBasePath, Rest, $q, W
let resourceType = scope.currentTab(),
item = value.value;
- if (item.isSelected) {
+ if (value.isSelected) {
scope.selected[resourceType][item.id] = item;
scope.selected[resourceType][item.id].roles = [];
aggregateKey(item, resourceType);
diff --git a/awx/ui/client/src/access/rbac-multiselect/permissionsUsers.list.js b/awx/ui/client/src/access/rbac-multiselect/permissionsUsers.list.js
index 9769df3506..39b083f06c 100644
--- a/awx/ui/client/src/access/rbac-multiselect/permissionsUsers.list.js
+++ b/awx/ui/client/src/access/rbac-multiselect/permissionsUsers.list.js
@@ -9,12 +9,6 @@
return {
name: 'users',
iterator: 'user',
- defaultSearchParams: function(term){
- return {or__username__icontains: term,
- or__first_name__icontains: term,
- or__last_name__icontains: term
- };
- },
title: false,
listTitleBadge: false,
multiSelect: true,
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 b775dedaca..f339e0e579 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
@@ -122,7 +122,7 @@ export default ['addPermissionsTeamsList', 'addPermissionsUsersList', 'TemplateL
});
function isSelected(item){
- if(_.find(scope.allSelected, {id: item.id})){
+ if(_.find(scope.allSelected, {id: item.id, type: item.type})){
item.isSelected = true;
}
return item;
diff --git a/awx/ui/client/src/lists/Users.js b/awx/ui/client/src/lists/Users.js
index bfff119616..fb84286bfb 100644
--- a/awx/ui/client/src/lists/Users.js
+++ b/awx/ui/client/src/lists/Users.js
@@ -15,12 +15,6 @@ export default
search: {
order_by: 'username'
},
- defaultSearchParams: function(term){
- return {or__username__icontains: term,
- or__first_name__icontains: term,
- or__last_name__icontains: term
- };
- },
iterator: 'user',
selectTitle: i18n._('Add Users'),
editTitle: i18n._('Users'),
diff --git a/awx/ui/client/src/organizations/linkout/addUsers/addUsers.controller.js b/awx/ui/client/src/organizations/linkout/addUsers/addUsers.controller.js
index e576ac5fd2..0a59ddbaef 100644
--- a/awx/ui/client/src/organizations/linkout/addUsers/addUsers.controller.js
+++ b/awx/ui/client/src/organizations/linkout/addUsers/addUsers.controller.js
@@ -11,10 +11,10 @@
* Controller for handling permissions adding
*/
-export default ['$scope', '$rootScope', 'ProcessErrors', 'GetBasePath',
-'SelectionInit', 'templateUrl', '$state', 'Rest', '$q', 'Wait', '$window',
-function($scope, $rootScope, ProcessErrors, GetBasePath,
- SelectionInit, templateUrl, $state, Rest, $q, Wait, $window) {
+export default ['$scope', '$rootScope', 'ProcessErrors', 'GetBasePath', 'generateList',
+'SelectionInit', 'templateUrl', '$state', 'Rest', '$q', 'Wait', '$window', 'QuerySet', 'UserList',
+function($scope, $rootScope, ProcessErrors, GetBasePath, generateList,
+ SelectionInit, templateUrl, $state, Rest, $q, Wait, $window, qs, UserList) {
$scope.$on("linkLists", function() {
if ($state.current.name.split(".")[1] === "users") {
@@ -26,16 +26,59 @@ function($scope, $rootScope, ProcessErrors, GetBasePath,
init();
function init(){
- // search init
- $scope.list = $scope.$parent.add_user_list;
- $scope.add_user_dataset = $scope.$parent.add_user_dataset;
- $scope.add_users = $scope.$parent.add_user_dataset.results;
+ $scope.add_user_default_params = {
+ order_by: 'username',
+ page_size: 5
+ };
+
+ $scope.add_user_queryset = {
+ order_by: 'username',
+ page_size: 5
+ };
+
+ let list = _.cloneDeep(UserList);
+ list.basePath = 'users';
+ list.iterator = 'add_user';
+ list.name = 'add_users';
+ list.multiSelect = true;
+ list.fields.username.ngClick = 'linkoutUser(add_user.id)';
+ delete list.actions;
+ delete list.fieldActions;
+
+ // Fire off the initial search
+ qs.search(GetBasePath('users'), $scope.add_user_default_params)
+ .then(function(res) {
+ $scope.add_user_dataset = res.data;
+ $scope.add_users = $scope.add_user_dataset.results;
+
+ let html = generateList.build({
+ list: list,
+ mode: 'edit',
+ title: false
+ });
+
+ $scope.list = list;
+
+ $scope.compileList(html);
+
+ $scope.$watchCollection('add_users', function () {
+ if($scope.selectedItems) {
+ // Loop across the users and see if any of them should be "checked"
+ $scope.add_users.forEach(function(row, i) {
+ if (_.includes($scope.selectedItems, row.id)) {
+ $scope.add_users[i].isSelected = true;
+ }
+ });
+ }
+ });
+
+ });
$scope.selectedItems = [];
$scope.$on('selectedOrDeselected', function(e, value) {
let item = value.value;
- if (item.isSelected) {
+ if (value.isSelected) {
$scope.selectedItems.push(item.id);
}
else {
diff --git a/awx/ui/client/src/organizations/linkout/addUsers/addUsers.directive.js b/awx/ui/client/src/organizations/linkout/addUsers/addUsers.directive.js
index f146149b13..65c721be17 100644
--- a/awx/ui/client/src/organizations/linkout/addUsers/addUsers.directive.js
+++ b/awx/ui/client/src/organizations/linkout/addUsers/addUsers.directive.js
@@ -7,7 +7,7 @@
/* jshint unused: vars */
import addUsers from './addUsers.controller';
export default
- ['Wait', 'templateUrl', '$state', '$view', function(Wait, templateUrl, $state, $view) {
+ ['Wait', 'templateUrl', '$state', '$view', '$compile', function(Wait, templateUrl, $state, $view, $compile) {
return {
restrict: 'E',
scope: {
@@ -48,6 +48,10 @@ export default
scope.closeModal();
});
+ scope.compileList = function(html) {
+ $('#add-users-list').append($compile(html)(scope));
+ };
+
Wait('stop');
window.scrollTo(0,0);
diff --git a/awx/ui/client/src/organizations/linkout/addUsers/addUsers.partial.html b/awx/ui/client/src/organizations/linkout/addUsers/addUsers.partial.html
index a8a6cbbb81..b7e24e3940 100644
--- a/awx/ui/client/src/organizations/linkout/addUsers/addUsers.partial.html
+++ b/awx/ui/client/src/organizations/linkout/addUsers/addUsers.partial.html
@@ -15,8 +15,7 @@