From 1ac047c302c20e2fbec9857c8b77955600ff8829 Mon Sep 17 00:00:00 2001 From: Michael Abashian Date: Tue, 31 Jan 2017 10:10:38 -0500 Subject: [PATCH] Fixed permissions list sorting across app. Fixed inv edit breadcrumb --- awx/ui/client/src/forms/Credentials.js | 14 ++--- awx/ui/client/src/forms/Groups.js | 8 --- awx/ui/client/src/forms/Inventories.js | 54 ++----------------- awx/ui/client/src/forms/JobTemplates.js | 22 ++------ awx/ui/client/src/forms/Organizations.js | 17 ++---- awx/ui/client/src/forms/Projects.js | 18 ++----- awx/ui/client/src/forms/Teams.js | 9 ++-- awx/ui/client/src/forms/Users.js | 7 +-- awx/ui/client/src/forms/Workflows.js | 18 ++----- awx/ui/client/src/helpers/JobTemplates.js | 7 +-- .../edit/inventory-edit.controller.js | 1 + awx/ui/client/src/shared/form-generator.js | 5 +- 12 files changed, 34 insertions(+), 146 deletions(-) diff --git a/awx/ui/client/src/forms/Credentials.js b/awx/ui/client/src/forms/Credentials.js index ccea4dca07..caff5de792 100644 --- a/awx/ui/client/src/forms/Credentials.js +++ b/awx/ui/client/src/forms/Credentials.js @@ -424,6 +424,7 @@ export default related: { permissions: { + name: 'permissions', disabled: '(organization === undefined ? true : false)', // Do not transition the state if organization is undefined ngClick: `(organization === undefined ? true : false)||$state.go('credentials.edit.permissions')`, @@ -460,25 +461,16 @@ export default role: { label: i18n._('Role'), type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' }, team_roles: { label: i18n._('Team Roles'), type: 'team_roles', - noSort: true, + nosort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } } - }, - - relatedSets: function(urls) { - return { - permissions: { - iterator: 'permission', - url: urls.access_list, - } - }; } };}]); diff --git a/awx/ui/client/src/forms/Groups.js b/awx/ui/client/src/forms/Groups.js index af6936f663..d684c4e0e4 100644 --- a/awx/ui/client/src/forms/Groups.js +++ b/awx/ui/client/src/forms/Groups.js @@ -339,14 +339,6 @@ export default "notifications": { include: "NotificationsList" } - }, - relatedSets: function() { - return { - notifications: { - iterator: 'notification', - url: 'api/v1/notification_templates/' - } - }; } }) diff --git a/awx/ui/client/src/forms/Inventories.js b/awx/ui/client/src/forms/Inventories.js index f6c426d422..6899224ea2 100644 --- a/awx/ui/client/src/forms/Inventories.js +++ b/awx/ui/client/src/forms/Inventories.js @@ -88,6 +88,7 @@ angular.module('InventoryFormDefinition', []) }, related: { permissions: { + name: 'permissions', awToolTip: i18n._('Please save before assigning permissions'), dataPlacement: 'top', basePath: 'api/v1/inventories/{{$stateParams.inventory_id}}/access_list/', @@ -119,66 +120,17 @@ angular.module('InventoryFormDefinition', []) role: { label: i18n._('Role'), type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', }, team_roles: { label: i18n._('Team Roles'), type: 'team_roles', - noSort: true, + nosort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4', } } } - }, - - relatedSets: function() { - return { - permissions: { - awToolTip: i18n._('Please save before assigning permissions'), - dataPlacement: 'top', - basePath: 'inventories/:id/access_list/', - type: 'collection', - title: i18n._('Permissions'), - iterator: 'permission', - index: false, - open: false, - searchType: 'select', - actions: { - add: { - ngClick: "addPermission", - label: i18n._('Add'), - awToolTip: i18n._('Add a permission'), - actionClass: 'btn List-buttonSubmit', - buttonContent: '+ ' + i18n._('ADD'), - ngShow: '(inventory_obj.summary_fields.user_capabilities.edit || canAdd)' - } - }, - - fields: { - username: { - key: true, - label: i18n._('User'), - linkBase: 'users', - class: 'col-lg-3 col-md-3 col-sm-3 col-xs-4' - }, - role: { - label: i18n._('Role'), - type: 'role', - noSort: true, - class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', - noSearch: true - }, - team_roles: { - label: i18n._('Team Roles'), - type: 'team_roles', - noSort: true, - class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4', - noSearch: true - } - } - } - }; } };}]); diff --git a/awx/ui/client/src/forms/JobTemplates.js b/awx/ui/client/src/forms/JobTemplates.js index ce0af8ff83..761e5a3aca 100644 --- a/awx/ui/client/src/forms/JobTemplates.js +++ b/awx/ui/client/src/forms/JobTemplates.js @@ -406,6 +406,7 @@ export default include: "CompletedJobsList" }, permissions: { + name: 'permissions', awToolTip: i18n._('Please save before assigning permissions'), dataPlacement: 'top', basePath: 'api/v1/job_templates/{{$stateParams.job_template_id}}/access_list/', @@ -439,13 +440,13 @@ export default role: { label: 'Role', type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', }, team_roles: { label: 'Team Roles', type: 'team_roles', - noSort: true, + nosort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4', } } @@ -479,23 +480,6 @@ export default label: i18n._('Edit Survey'), class: 'Form-primaryButton' } - }, - - relatedSets: function(urls) { - return { - completed_jobs: { - iterator: 'completed_job', - url: urls.jobs + '?or__status=successful&or__status=failed&or__status=error&or__status=canceled' - }, - permissions: { - iterator: 'permission', - url: urls.access_list - }, - notifications: { - iterator: 'notification', - url: '/api/v1/notification_templates/' - } - }; } };}]) diff --git a/awx/ui/client/src/forms/Organizations.js b/awx/ui/client/src/forms/Organizations.js index d8f12ea371..623dd4c064 100644 --- a/awx/ui/client/src/forms/Organizations.js +++ b/awx/ui/client/src/forms/Organizations.js @@ -54,6 +54,7 @@ export default related: { permissions: { + name: 'permissions', awToolTip: i18n._('Please save before assigning permissions'), basePath: 'api/v1/organizations/{{$stateParams.organization_id}}/access_list/', search: { @@ -87,13 +88,13 @@ export default role: { label: i18n._('Role'), type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' }, team_roles: { label: i18n._('Team Roles'), type: 'team_roles', - noSort: true, + nosort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4' } } @@ -103,18 +104,6 @@ export default } - }, - relatedSets: function(urls) { - return { - permissions: { - iterator: 'permission', - url: urls.access_list - }, - notifications: { - iterator: 'notification', - url: '/api/v1/notification_templates/' - } - }; } };}]) diff --git a/awx/ui/client/src/forms/Projects.js b/awx/ui/client/src/forms/Projects.js index 54c7209dea..2185381e69 100644 --- a/awx/ui/client/src/forms/Projects.js +++ b/awx/ui/client/src/forms/Projects.js @@ -216,6 +216,7 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition']) related: { permissions: { + name: 'permissions', awToolTip: i18n._('Please save before assigning permissions'), djangoModel: 'access_list', dataPlacement: 'top', @@ -248,13 +249,13 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition']) role: { label: i18n._('Role'), type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', }, team_roles: { label: i18n._('Team Roles'), type: 'team_roles', - noSort: true, + nosort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4', } } @@ -262,19 +263,6 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition']) notifications: { include: "NotificationsList", } - }, - - relatedSets: function(urls) { - return { - permissions: { - iterator: 'permission', - url: urls.access_list - }, - notifications: { - iterator: 'notification', - url: '/api/v1/notification_templates/' - } - }; } };}]) diff --git a/awx/ui/client/src/forms/Teams.js b/awx/ui/client/src/forms/Teams.js index 3154dd42ed..6f31ad5481 100644 --- a/awx/ui/client/src/forms/Teams.js +++ b/awx/ui/client/src/forms/Teams.js @@ -97,12 +97,13 @@ export default role: { label: i18n._('Role'), type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4' } } }, permissions: { + name: 'permissions', basePath: 'api/v1/teams/{{$stateParams.team_id}}/roles/', search: { page_size: '10', @@ -123,17 +124,17 @@ export default label: i18n._('Name'), ngBind: 'permission.summary_fields.resource_name', linkTo: '{{convertApiUrl(permission.related[permission.summary_fields.resource_type])}}', - noSort: true + nosort: true }, type: { label: i18n._('Type'), ngBind: 'permission.summary_fields.resource_type_display_name', - noSort: true + nosort: true }, role: { label: i18n._('Role'), ngBind: 'permission.name', - noSort: true + nosort: true } }, fieldActions: { diff --git a/awx/ui/client/src/forms/Users.js b/awx/ui/client/src/forms/Users.js index 0e6c1a6aa2..59df6f3fd0 100644 --- a/awx/ui/client/src/forms/Users.js +++ b/awx/ui/client/src/forms/Users.js @@ -171,6 +171,7 @@ export default //hideOnSuperuser: true // RBAC defunct }, permissions: { + name: 'permissions', basePath: 'api/v1/users/{{$stateParams.user_id}}/roles/', search: { page_size: '10', @@ -190,17 +191,17 @@ export default label: i18n._('Name'), ngBind: 'permission.summary_fields.resource_name', linkTo: '{{convertApiUrl(permission.related[permission.summary_fields.resource_type])}}', - noSort: true + nosort: true }, type: { label: i18n._('Type'), ngBind: 'permission.summary_fields.resource_type_display_name', - noSort: true + nosort: true }, role: { label: i18n._('Role'), ngBind: 'permission.name', - noSort: true + nosort: true }, }, actions: { diff --git a/awx/ui/client/src/forms/Workflows.js b/awx/ui/client/src/forms/Workflows.js index 58cbc9b9ab..cff4d8bb8a 100644 --- a/awx/ui/client/src/forms/Workflows.js +++ b/awx/ui/client/src/forms/Workflows.js @@ -106,6 +106,7 @@ export default related: { permissions: { + name: 'permissions', awToolTip: i18n._('Please save before assigning permissions'), dataPlacement: 'top', basePath: 'api/v1/workflow_job_templates/{{$stateParams.workflow_job_template_id}}/access_list/', @@ -139,13 +140,13 @@ export default role: { label: i18n._('Role'), type: 'role', - noSort: true, + nosort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', }, team_roles: { label: i18n._('Team Roles'), type: 'team_roles', - noSort: true, + nosort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4', } } @@ -187,19 +188,6 @@ export default label: i18n._('Workflow Editor'), class: 'Form-primaryButton' } - }, - - relatedSets: function(urls) { - return { - permissions: { - iterator: 'permission', - url: urls.access_list - }, - notifications: { - iterator: 'notification', - url: '/api/v1/notification_templates/' - } - }; } };}]) diff --git a/awx/ui/client/src/helpers/JobTemplates.js b/awx/ui/client/src/helpers/JobTemplates.js index 76a8c59b56..921d5b1e37 100644 --- a/awx/ui/client/src/helpers/JobTemplates.js +++ b/awx/ui/client/src/helpers/JobTemplates.js @@ -31,8 +31,7 @@ angular.module('JobTemplatesHelper', ['Utilities']) // loadingFinishedCount = 0, // base = $location.path().replace(/^\//, '').split('/')[0], master = {}, - id = $stateParams.job_template_id, - relatedSets = {}; + id = $stateParams.job_template_id; // checkSCMStatus, getPlaybooks, callback, // choicesCount = 0; @@ -144,8 +143,6 @@ angular.module('JobTemplatesHelper', ['Utilities']) scope.ask_credential_on_launch = (data.ask_credential_on_launch) ? true : false; master.ask_credential_on_launch = scope.ask_credential_on_launch; - relatedSets = form.relatedSets(data.related); - if (data.host_config_key) { scope.example_config_key = data.host_config_key; } @@ -163,7 +160,7 @@ angular.module('JobTemplatesHelper', ['Utilities']) scope.resetProjectToDefault(); } - scope.$emit('jobTemplateLoaded', data.related.cloud_credential, master, relatedSets); + scope.$emit('jobTemplateLoaded', data.related.cloud_credential, master); }) .error(function (data, status) { ProcessErrors(scope, data, status, form, { diff --git a/awx/ui/client/src/inventories/edit/inventory-edit.controller.js b/awx/ui/client/src/inventories/edit/inventory-edit.controller.js index d07a865766..c567839d8b 100644 --- a/awx/ui/client/src/inventories/edit/inventory-edit.controller.js +++ b/awx/ui/client/src/inventories/edit/inventory-edit.controller.js @@ -78,6 +78,7 @@ function InventoriesEdit($scope, $rootScope, $compile, $location, }); $scope.inventory_obj = data; + $scope.name = data.name; $scope.$emit('inventoryLoaded'); }) diff --git a/awx/ui/client/src/shared/form-generator.js b/awx/ui/client/src/shared/form-generator.js index 7648d91507..63879847cf 100644 --- a/awx/ui/client/src/shared/form-generator.js +++ b/awx/ui/client/src/shared/form-generator.js @@ -1271,7 +1271,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat for (i = 0; i < field.options.length; i++) { html += "