From 1206097399ee7b858a9c3d7faa214a06a8decacd Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Tue, 1 Aug 2017 20:14:49 -0700 Subject: [PATCH] fixing link from permissions list --- .../src/inventories-hosts/inventories/main.js | 6 +++++ .../src/teams/edit/teams-edit.controller.js | 27 +++++++++++++++---- awx/ui/client/src/teams/teams.form.js | 2 +- .../src/users/edit/users-edit.controller.js | 27 +++++++++++++++---- awx/ui/client/src/users/users.form.js | 2 +- 5 files changed, 52 insertions(+), 12 deletions(-) diff --git a/awx/ui/client/src/inventories-hosts/inventories/main.js b/awx/ui/client/src/inventories-hosts/inventories/main.js index 22c8c773e5..7c9f8bfd4c 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/main.js +++ b/awx/ui/client/src/inventories-hosts/inventories/main.js @@ -106,6 +106,12 @@ angular.module('inventory', [ }, resolve: { edit: { + smartInventoryRedirect: ['resourceData', '$state', '$stateParams', + function(resourceData, $state, $stateParams){ + if(resourceData.data.kind === "smart"){ + $state.go("inventories.editSmartInventory", {"smartinventory_id": $stateParams.inventory_id}, {reload: true}); + } + }], InstanceGroupsData: ['$stateParams', 'Rest', 'GetBasePath', 'ProcessErrors', function($stateParams, Rest, GetBasePath, ProcessErrors){ let path = `${GetBasePath('inventory')}${$stateParams.inventory_id}/instance_groups/`; diff --git a/awx/ui/client/src/teams/edit/teams-edit.controller.js b/awx/ui/client/src/teams/edit/teams-edit.controller.js index cb1c320e43..d8b557817c 100644 --- a/awx/ui/client/src/teams/edit/teams-edit.controller.js +++ b/awx/ui/client/src/teams/edit/teams-edit.controller.js @@ -84,11 +84,28 @@ export default ['$scope', '$rootScope', '$stateParams', 'TeamForm', 'Rest', init(); - $scope.convertApiUrl = function(str) { - if (str) { - return str.replace(/api\/v\d+/, "#"); - } else { - return null; + $scope.redirectToResource = function(resource) { + let type = resource.summary_fields.resource_type.replace(/ /g , "_"); + var id = resource.related[type].split("/")[4]; + switch (type) { + case 'organization': + $state.go('organizations.edit', { "organization_id": id }, { reload: true }); + break; + case 'credential': + $state.go('credentials.edit', { "credential_id": id }, { reload: true }); + break; + case 'project': + $state.go('projects.edit', { "project_id": id }, { reload: true }); + break; + case 'inventory': + $state.go('inventories.edit', { "inventory_id": id }, { reload: true }); + break; + case 'job_template': + $state.go('templates.editJobTemplate', { "job_template_id": id }, { reload: true }); + break; + case 'workflow_job_template': + $state.go('templates.editWorkflowJobTemplate', { "workflow_job_template_id": id }, { reload: true }); + break; } }; } diff --git a/awx/ui/client/src/teams/teams.form.js b/awx/ui/client/src/teams/teams.form.js index ca4e8dc4c3..1314cbd183 100644 --- a/awx/ui/client/src/teams/teams.form.js +++ b/awx/ui/client/src/teams/teams.form.js @@ -123,7 +123,7 @@ export default ['i18n', function(i18n) { name: { label: i18n._('Name'), ngBind: 'permission.summary_fields.resource_name', - linkTo: '{{convertApiUrl(permission.related[permission.summary_fields.resource_type])}}', + ngClick: "redirectToResource(permission)", nosort: true }, type: { diff --git a/awx/ui/client/src/users/edit/users-edit.controller.js b/awx/ui/client/src/users/edit/users-edit.controller.js index 93e8b02658..dcef70314e 100644 --- a/awx/ui/client/src/users/edit/users-edit.controller.js +++ b/awx/ui/client/src/users/edit/users-edit.controller.js @@ -125,11 +125,28 @@ export default ['$scope', '$rootScope', '$stateParams', 'UserForm', 'Rest', return; } - $scope.convertApiUrl = function(str) { - if (str) { - return str.replace(/api\/v\d+/, "#"); - } else { - return null; + $scope.redirectToResource = function(resource) { + let type = resource.summary_fields.resource_type.replace(/ /g , "_"); + var id = resource.related[type].split("/")[4]; + switch (type) { + case 'organization': + $state.go('organizations.edit', { "organization_id": id }, { reload: true }); + break; + case 'credential': + $state.go('credentials.edit', { "credential_id": id }, { reload: true }); + break; + case 'project': + $state.go('projects.edit', { "project_id": id }, { reload: true }); + break; + case 'inventory': + $state.go('inventories.edit', { "inventory_id": id }, { reload: true }); + break; + case 'job_template': + $state.go('templates.editJobTemplate', { "job_template_id": id }, { reload: true }); + break; + case 'workflow_job_template': + $state.go('templates.editWorkflowJobTemplate', { "workflow_job_template_id": id }, { reload: true }); + break; } }; diff --git a/awx/ui/client/src/users/users.form.js b/awx/ui/client/src/users/users.form.js index 08f0fc543f..9c4e3d760d 100644 --- a/awx/ui/client/src/users/users.form.js +++ b/awx/ui/client/src/users/users.form.js @@ -190,7 +190,7 @@ export default ['i18n', function(i18n) { name: { label: i18n._('Name'), ngBind: 'permission.summary_fields.resource_name', - linkTo: '{{convertApiUrl(permission.related[permission.summary_fields.resource_type])}}', + ngClick: "redirectToResource(permission)", nosort: true }, type: {