diff --git a/app/controllers/admin/plans_controller.rb b/app/controllers/admin/plans_controller.rb index d9132df..c7cce3b 100644 --- a/app/controllers/admin/plans_controller.rb +++ b/app/controllers/admin/plans_controller.rb @@ -42,7 +42,9 @@ module DiscoursePatrons begin plan = ::Stripe::Plan.retrieve(params[:id]) - render_json_dump plan + serialized = plan.to_h.merge(currency: plan[:currency].upcase) + + render_json_dump serialized rescue ::Stripe::InvalidRequestError => e return render_json_error e.message diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 index b0223f4..743b8c2 100644 --- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 +++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 @@ -2,6 +2,9 @@ import computed from "ember-addons/ember-computed-decorators"; import DiscourseURL from "discourse/lib/url"; export default Ember.Controller.extend({ + // Also defined in settings. + currencies: ['AUD', 'CAD', 'EUR', 'GBP', 'USD'], + @computed("model.plan.isNew") planFieldDisabled(isNew) { return !isNew; diff --git a/assets/javascripts/discourse/helpers/format-currency.js.es6 b/assets/javascripts/discourse/helpers/format-currency.js.es6 index afc5978..76fdc77 100644 --- a/assets/javascripts/discourse/helpers/format-currency.js.es6 +++ b/assets/javascripts/discourse/helpers/format-currency.js.es6 @@ -1,11 +1,13 @@ export default Ember.Helper.helper(function(params) { let currencySign; - switch (Discourse.SiteSettings.discourse_patrons_currency) { + switch (params[0]) { case "EUR": + case "eur": currencySign = "€"; break; case "GBP": + case "gbp": currencySign = "£"; break; default: diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 index a4e17c9..bfbd22b 100644 --- a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 +++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 @@ -13,6 +13,7 @@ export default Discourse.Route.extend({ plan = AdminPlan.create({ active: true, isNew: true, + currency: Discourse.SiteSettings.discourse_patrons_currency, product: product.get("id") }); } else { diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs index c3f583c..869d670 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs @@ -22,7 +22,12 @@
- {{input type="text" name="name" value=model.plan.amountDollars disabled=planFieldDisabled}} + {{#if planFieldDisabled}} + {{input class="plan-amount plan-currency" disabled=true value=model.plan.currency}} + {{else}} + {{combo-box disabled=planFieldDisabled content=currencies value=model.plan.currency}} + {{/if}} + {{input class="plan-amount" type="text" name="name" value=model.plan.amountDollars disabled=planFieldDisabled}}