diff --git a/ghost/admin/app/controllers/member.js b/ghost/admin/app/controllers/member.js index 2ed9233a44..894b7f7b6f 100644 --- a/ghost/admin/app/controllers/member.js +++ b/ghost/admin/app/controllers/member.js @@ -27,6 +27,9 @@ export default class MemberController extends Controller { _previousLabels = null; _previousNewsletters = null; + directlyFromAnalytics = false; + fromAnalytics = null; + constructor() { super(...arguments); this._availableLabels = this.store.peekAll('label'); diff --git a/ghost/admin/app/routes/member.js b/ghost/admin/app/routes/member.js index 1171300588..f035470a61 100644 --- a/ghost/admin/app/routes/member.js +++ b/ghost/admin/app/routes/member.js @@ -34,6 +34,7 @@ export default class MembersRoute extends AdminRoute { controller.fetchMemberTask.perform(member.id); } + controller.directlyFromAnalytics = false; if (transition.from?.name === 'posts.analytics') { // Sadly transition.from.params is not reliable to use (not populated on transitions) const oldParams = transition.router?.oldState?.params['posts.analytics'] ?? {}; @@ -41,6 +42,7 @@ export default class MembersRoute extends AdminRoute { // We need to store analytics in 'this' to have it accessible for the member route this.fromAnalytics = Object.values(oldParams); controller.fromAnalytics = this.fromAnalytics; + controller.directlyFromAnalytics = true; } else if (transition.from?.metadata?.fromAnalytics) { // Handle returning from member route const fromAnalytics = transition.from?.metadata.fromAnalytics ?? null; diff --git a/ghost/admin/app/templates/member.hbs b/ghost/admin/app/templates/member.hbs index b18b0cc219..cfc0f29196 100644 --- a/ghost/admin/app/templates/member.hbs +++ b/ghost/admin/app/templates/member.hbs @@ -10,10 +10,14 @@ Analytics - {{svg-jar "arrow-right-small"}} - - Members - + + {{#unless this.directlyFromAnalytics}} + {{svg-jar "arrow-right-small"}} + + Members + + {{/unless}} + {{svg-jar "arrow-right-small"}} {{if this.member.isNew "New member" "Edit member"}} {{else}}