From 1d8f69c15688af31047f4c43d664132eebb05933 Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Thu, 19 May 2016 14:31:45 -0400 Subject: [PATCH] Split permissions list into two columns One for user perms and one for team permissions #1986 --- awx/ui/client/src/access/roleList.directive.js | 11 +++++++---- awx/ui/client/src/forms/Credentials.js | 8 +++++++- awx/ui/client/src/forms/Inventories.js | 8 +++++++- awx/ui/client/src/forms/JobTemplates.js | 8 +++++++- awx/ui/client/src/forms/Organizations.js | 10 ++++++++-- awx/ui/client/src/forms/Projects.js | 8 +++++++- awx/ui/client/src/forms/Teams.js | 10 ++++++++-- awx/ui/client/src/shared/generator-helpers.js | 9 +++++++++ 8 files changed, 60 insertions(+), 12 deletions(-) diff --git a/awx/ui/client/src/access/roleList.directive.js b/awx/ui/client/src/access/roleList.directive.js index ff7c5eb409..996a5a51aa 100644 --- a/awx/ui/client/src/access/roleList.directive.js +++ b/awx/ui/client/src/access/roleList.directive.js @@ -4,7 +4,7 @@ export default function(templateUrl) { return { restrict: 'E', - scope: false, + scope: true, templateUrl: templateUrl('access/roleList'), link: function(scope, element, attrs) { // given a list of roles (things like "project @@ -13,16 +13,19 @@ export default // concatenated/sorted list scope.access_list = [] .concat(scope.permission.summary_fields - .direct_access.map(function(i) { + .direct_access.map((i) => { i.role.explicit = true; return i.role; })) .concat(scope.permission.summary_fields - .indirect_access.map(function(i) { + .indirect_access.map((i) => { i.role.explicit = false; return i.role; })) - .sort(function(a, b) { + .filter((role) => { + return !!attrs.teamRoleList == !!role.team_id; + }) + .sort((a, b) => { if (a.name .toLowerCase() > b.name .toLowerCase()) { diff --git a/awx/ui/client/src/forms/Credentials.js b/awx/ui/client/src/forms/Credentials.js index ac6b534431..655b28e416 100644 --- a/awx/ui/client/src/forms/Credentials.js +++ b/awx/ui/client/src/forms/Credentials.js @@ -448,7 +448,13 @@ export default label: 'Role', type: 'role', noSort: true, - class: 'col-lg-9 col-md-9 col-sm-9 col-xs-8' + class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' + }, + team_roles: { + label: 'Team Roles', + type: 'team_roles', + noSort: true, + class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } } diff --git a/awx/ui/client/src/forms/Inventories.js b/awx/ui/client/src/forms/Inventories.js index b77f71d94e..9a4cc3bf7d 100644 --- a/awx/ui/client/src/forms/Inventories.js +++ b/awx/ui/client/src/forms/Inventories.js @@ -185,7 +185,13 @@ export default label: 'Role', type: 'role', noSort: true, - class: 'col-lg-9 col-md-9 col-sm-9 col-xs-8' + class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' + }, + team_roles: { + label: 'Team Roles', + type: 'team_roles', + noSort: true, + class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } } diff --git a/awx/ui/client/src/forms/JobTemplates.js b/awx/ui/client/src/forms/JobTemplates.js index c177656d23..0292a29b3d 100644 --- a/awx/ui/client/src/forms/JobTemplates.js +++ b/awx/ui/client/src/forms/JobTemplates.js @@ -364,7 +364,13 @@ export default label: 'Role', type: 'role', noSort: true, - class: 'col-lg-9 col-md-9 col-sm-9 col-xs-8' + class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' + }, + team_roles: { + label: 'Team Roles', + type: 'team_roles', + noSort: true, + class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } }, diff --git a/awx/ui/client/src/forms/Organizations.js b/awx/ui/client/src/forms/Organizations.js index 113322d881..ce07dfac1e 100644 --- a/awx/ui/client/src/forms/Organizations.js +++ b/awx/ui/client/src/forms/Organizations.js @@ -42,7 +42,7 @@ export default save: { ngClick: 'formSave()', //$scope.function to call on click, optional ngDisabled: true //Disable when $pristine or $invalid, optional - } + } }, related: { @@ -76,7 +76,13 @@ export default label: 'Role', type: 'role', noSort: true, - class: 'col-lg-9 col-md-9 col-sm-9 col-xs-8' + class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' + }, + team_roles: { + label: 'Team Roles', + type: 'team_roles', + noSort: true, + class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } }, diff --git a/awx/ui/client/src/forms/Projects.js b/awx/ui/client/src/forms/Projects.js index 44df23be3e..7b01537ff6 100644 --- a/awx/ui/client/src/forms/Projects.js +++ b/awx/ui/client/src/forms/Projects.js @@ -262,7 +262,13 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition']) label: 'Role', type: 'role', noSort: true, - class: 'col-lg-9 col-md-9 col-sm-9 col-xs-8' + class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' + }, + team_roles: { + label: 'Team Roles', + type: 'team_roles', + noSort: true, + class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } }, diff --git a/awx/ui/client/src/forms/Teams.js b/awx/ui/client/src/forms/Teams.js index 11a9205012..7992cc38f2 100644 --- a/awx/ui/client/src/forms/Teams.js +++ b/awx/ui/client/src/forms/Teams.js @@ -55,7 +55,7 @@ export default save: { ngClick: 'formSave()', ngDisabled: true - } + } }, related: { @@ -90,7 +90,13 @@ export default label: 'Role', type: 'role', noSort: true, - class: 'col-lg-9 col-md-9 col-sm-9 col-xs-8' + class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' + }, + team_roles: { + label: 'Team Roles', + type: 'team_roles', + noSort: true, + class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } }, diff --git a/awx/ui/client/src/shared/generator-helpers.js b/awx/ui/client/src/shared/generator-helpers.js index e634232ec2..fc62bbecbd 100644 --- a/awx/ui/client/src/shared/generator-helpers.js +++ b/awx/ui/client/src/shared/generator-helpers.js @@ -458,6 +458,15 @@ angular.module('GeneratorHelpers', [systemStatus.name]) + + `; + } else if (field.type === 'team_roles') { + classList = (field.columnClass) ? + Attr(field, 'columnClass') : ""; + html += ` + + + `; } else if (field.type === 'labels') {