From 320581a6c06277505b4208f76fe9c504cf3b9c02 Mon Sep 17 00:00:00 2001 From: Alex Corey Date: Wed, 3 Jul 2019 12:43:40 -0400 Subject: [PATCH 1/3] Addresses PR issues --- awx/ui_next/src/screens/Organization/Organization.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/awx/ui_next/src/screens/Organization/Organization.jsx b/awx/ui_next/src/screens/Organization/Organization.jsx index b957cbc67a..0045b79e9e 100644 --- a/awx/ui_next/src/screens/Organization/Organization.jsx +++ b/awx/ui_next/src/screens/Organization/Organization.jsx @@ -41,8 +41,10 @@ class Organization extends Component { } async componentDidUpdate(prevProps) { - const { location } = this.props; - if (location !== prevProps.location) { + const { location, match } = this.props; + const url = `/organizations/${match.params.id}/`; + const shouldUpdate = prevProps.location.pathname.includes(url); + if (location !== prevProps.location && shouldUpdate) { await this.loadOrganization(); } } From 3b17170533ba5456bb2a9a7aa09623a568a0c23c Mon Sep 17 00:00:00 2001 From: Alex Corey Date: Wed, 3 Jul 2019 16:16:09 -0400 Subject: [PATCH 2/3] more concise conditions for api calls --- awx/ui_next/src/screens/Organization/Organization.jsx | 11 +++++++++-- .../OrganizationEdit/OrganizationEdit.jsx | 4 ++-- .../OrganizationEdit/OrganizationEdit.test.jsx | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/awx/ui_next/src/screens/Organization/Organization.jsx b/awx/ui_next/src/screens/Organization/Organization.jsx index 0045b79e9e..cffca89d56 100644 --- a/awx/ui_next/src/screens/Organization/Organization.jsx +++ b/awx/ui_next/src/screens/Organization/Organization.jsx @@ -43,8 +43,15 @@ class Organization extends Component { async componentDidUpdate(prevProps) { const { location, match } = this.props; const url = `/organizations/${match.params.id}/`; - const shouldUpdate = prevProps.location.pathname.includes(url); - if (location !== prevProps.location && shouldUpdate) { + const tabs = ['details', 'access', 'teams', 'notifications', 'edit'].map( + tab => `${url}${tab}` + ); + const didNavigateFromTab = tabs.includes(prevProps.location.pathname); + if ( + prevProps.location !== location && + didNavigateFromTab && + location.pathname === `${url}details` + ) { await this.loadOrganization(); } } diff --git a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx index 302ef6cab7..0f6e0c36c6 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.jsx @@ -38,7 +38,7 @@ class OrganizationEdit extends Component { organization: { id }, history, } = this.props; - history.push(`/organizations/${id}`); + history.push(`/organizations/${id}/details`); } handleSuccess() { @@ -46,7 +46,7 @@ class OrganizationEdit extends Component { organization: { id }, history, } = this.props; - history.push(`/organizations/${id}`); + history.push(`/organizations/${id}/details`); } async submitInstanceGroups(groupsToAssociate, groupsToDisassociate) { diff --git a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx index 2a73761a74..102b49392f 100644 --- a/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx +++ b/awx/ui_next/src/screens/Organization/OrganizationEdit/OrganizationEdit.test.jsx @@ -76,6 +76,6 @@ describe('', () => { expect(history.push).not.toHaveBeenCalled(); wrapper.find('button[aria-label="Cancel"]').prop('onClick')(); - expect(history.push).toHaveBeenCalledWith('/organizations/1'); + expect(history.push).toHaveBeenCalledWith('/organizations/1/details'); }); }); From 7039f82d15a45716af16308dc7480c967bfe4aef Mon Sep 17 00:00:00 2001 From: Alex Corey Date: Tue, 9 Jul 2019 13:38:52 -0400 Subject: [PATCH 3/3] Only reload details whe navigating to details from another tab --- awx/ui_next/src/screens/Organization/Organization.jsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/awx/ui_next/src/screens/Organization/Organization.jsx b/awx/ui_next/src/screens/Organization/Organization.jsx index cffca89d56..9727bdc411 100644 --- a/awx/ui_next/src/screens/Organization/Organization.jsx +++ b/awx/ui_next/src/screens/Organization/Organization.jsx @@ -43,13 +43,10 @@ class Organization extends Component { async componentDidUpdate(prevProps) { const { location, match } = this.props; const url = `/organizations/${match.params.id}/`; - const tabs = ['details', 'access', 'teams', 'notifications', 'edit'].map( - tab => `${url}${tab}` - ); - const didNavigateFromTab = tabs.includes(prevProps.location.pathname); + if ( + prevProps.location.pathname.startsWith(url) && prevProps.location !== location && - didNavigateFromTab && location.pathname === `${url}details` ) { await this.loadOrganization();