From d746265a527d7ff64f2c3c0044a31aefb2a0bfdb Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 18 May 2021 19:12:37 +0530 Subject: [PATCH] Fixed active prices not read from settings no refs Previously, we were fetching product and prices in the constructor of the controller which did not guarantee settings were updated when picking active prices from the price list. This updates the setup to use `did-insert` modifier to correctly fetch and populate product/price data. --- .../app/controllers/settings/membership.js | 20 ++++++++++++------- .../app/templates/settings/membership.hbs | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ghost/admin/app/controllers/settings/membership.js b/ghost/admin/app/controllers/settings/membership.js index 0033626031..2a1db21049 100644 --- a/ghost/admin/app/controllers/settings/membership.js +++ b/ghost/admin/app/controllers/settings/membership.js @@ -37,12 +37,12 @@ export default class MembersAccessController extends Controller { queryParams = ['showPortalSettings']; - constructor(...args) { - super(...args); - this.siteUrl = this.config.get('blogUrl'); - this.fetchDefaultProduct.perform(); + get allCurrencies() { + return getCurrencyOptions(); + } - this.allCurrencies = getCurrencyOptions(); + get siteUrl() { + return this.config.get('blogUrl'); } get selectedCurrency() { @@ -58,6 +58,7 @@ export default class MembersAccessController extends Controller { } _validateSignupRedirect(url, type) { + const siteUrl = this.config.get('blogUrl'); let errMessage = `Please enter a valid URL`; this.settings.get('errors').remove(type); this.settings.get('hasValidated').removeObject(type); @@ -73,8 +74,8 @@ export default class MembersAccessController extends Controller { return; } - if (url.href.startsWith(this.siteUrl)) { - const path = url.href.replace(this.siteUrl, ''); + if (url.href.startsWith(siteUrl)) { + const path = url.href.replace(siteUrl, ''); this.settings.set(type, path); } else { this.settings.set(type, url.href); @@ -185,6 +186,11 @@ export default class MembersAccessController extends Controller { }); } + setup() { + this.fetchDefaultProduct.perform(); + this.updatePortalPreview(); + } + async saveProduct() { if (this.product) { const stripePrices = this.product.stripePrices || []; diff --git a/ghost/admin/app/templates/settings/membership.hbs b/ghost/admin/app/templates/settings/membership.hbs index 3c21e07860..319c480747 100644 --- a/ghost/admin/app/templates/settings/membership.hbs +++ b/ghost/admin/app/templates/settings/membership.hbs @@ -1,4 +1,4 @@ -
+

Settings