diff --git a/app/controllers/discourse_subscriptions/pricingtable_controller.rb b/app/controllers/discourse_subscriptions/pricingtable_controller.rb
index fd1e305..1328c83 100644
--- a/app/controllers/discourse_subscriptions/pricingtable_controller.rb
+++ b/app/controllers/discourse_subscriptions/pricingtable_controller.rb
@@ -1,7 +1,9 @@
+# frozen_string_literal: true
+
module StripeDiscourseSubscriptions
- class PricingtableController < ::ApplicationController
- def index
- head 200
- end
+ class PricingtableController < ::ApplicationController
+ def index
+ head 200
end
-end
\ No newline at end of file
+ end
+end
diff --git a/assets/javascripts/discourse/controllers/subscriptions.js b/assets/javascripts/discourse/controllers/subscriptions.js
index b53451a..c5614cf 100644
--- a/assets/javascripts/discourse/controllers/subscriptions.js
+++ b/assets/javascripts/discourse/controllers/subscriptions.js
@@ -1,35 +1,37 @@
import Controller from "@ember/controller";
-import Ember from 'ember';
+import Ember from "ember";
+import { htmlSafe } from "@ember/template";
import I18n from "I18n";
export default Controller.extend({
- init() {
- // Perform any initialization logic here
- this._super(...arguments);
- // Additional custom initialization code
- if(this.currentUser){
- this.currentUser.checkEmail().then((r)=>this.set('email',this.currentUser.email))
- }
-
- },
- pricingTable: Ember.computed('email', function() {
- try{
- const pricing_table_info = JSON.parse(this.siteSettings.discourse_subscriptions_pricing_table)
- if(this.currentUser){
- return` this.set("email", this.currentUser.email));
+ }
+ },
+ pricingTable: Ember.computed("email", function () {
+ try {
+ const pricing_table_info = JSON.parse(
+ this.siteSettings.discourse_subscriptions_pricing_table
+ );
+ if (this.currentUser) {
+ return htmlSafe(``;
- } else {
- return``);
+ } else {
+ return htmlSafe(``;
- }
-
-
- } catch(error){
- return I18n.t("discourse_subscriptions.subscribe.no_products")
- }
- }),
+ >`);
+ }
+ } catch (error) {
+ return I18n.t("discourse_subscriptions.subscribe.no_products");
+ }
+ }),
});
diff --git a/assets/javascripts/discourse/initializers/setup-subscriptions.js b/assets/javascripts/discourse/initializers/setup-subscriptions.js
index 4ca5ada..0482eda 100644
--- a/assets/javascripts/discourse/initializers/setup-subscriptions.js
+++ b/assets/javascripts/discourse/initializers/setup-subscriptions.js
@@ -23,29 +23,35 @@ export default {
href: `/u/${user.username}/billing/subscriptions`,
content: "Billing",
});
-
- if(user.admin){
- api.modifyClassStatic('model:site-setting', {
- pluginId: 'discourse-subscriptions',
- update(key, value, opts = {}) {
- if(key ==="discourse_subscriptions_pricing_table"){
- const inputString = value;
- // Extract pricing-table-id
- const pricingTableIdRegex = /pricing-table-id="([^"]+)"/;
- const pricingTableIdMatch = inputString.match(pricingTableIdRegex);
- const pricingTableId = pricingTableIdMatch ? pricingTableIdMatch[1] : null;
-
- // Extract publishable-key
- const publishableKeyRegex = /publishable-key="([^"]+)"/;
- const publishableKeyMatch = inputString.match(publishableKeyRegex);
- const publishableKey = publishableKeyMatch ? publishableKeyMatch[1] : null;
- if(pricingTableId && publishableKey){
- value = JSON.stringify({pricingTableId,publishableKey})
- }
+
+ if (user.admin) {
+ api.modifyClassStatic("model:site-setting", {
+ pluginId: "discourse-subscriptions",
+ update(key, value, opts = {}) {
+ if (key === "discourse_subscriptions_pricing_table") {
+ const inputString = value;
+ // Extract pricing-table-id
+ const pricingTableIdRegex = /pricing-table-id="([^"]+)"/;
+ const pricingTableIdMatch =
+ inputString.match(pricingTableIdRegex);
+ const pricingTableId = pricingTableIdMatch
+ ? pricingTableIdMatch[1]
+ : null;
+
+ // Extract publishable-key
+ const publishableKeyRegex = /publishable-key="([^"]+)"/;
+ const publishableKeyMatch =
+ inputString.match(publishableKeyRegex);
+ const publishableKey = publishableKeyMatch
+ ? publishableKeyMatch[1]
+ : null;
+ if (pricingTableId && publishableKey) {
+ value = JSON.stringify({ pricingTableId, publishableKey });
}
- this._super(key, value, opts);
}
- });
+ this._super(key, value, opts);
+ },
+ });
}
}
});
diff --git a/assets/javascripts/discourse/subscriptions-route-map.js b/assets/javascripts/discourse/subscriptions-route-map.js
index b4fb8ca..ee62f38 100644
--- a/assets/javascripts/discourse/subscriptions-route-map.js
+++ b/assets/javascripts/discourse/subscriptions-route-map.js
@@ -1,3 +1,3 @@
export default function () {
- this.route("subscriptions")
+ this.route("subscriptions");
}
diff --git a/assets/javascripts/discourse/templates/subscriptions.hbs b/assets/javascripts/discourse/templates/subscriptions.hbs
index 9153f20..4705670 100644
--- a/assets/javascripts/discourse/templates/subscriptions.hbs
+++ b/assets/javascripts/discourse/templates/subscriptions.hbs
@@ -1,3 +1,3 @@
-{{{pricingTable}}}
+ {{pricingTable}}
\ No newline at end of file
diff --git a/plugin.rb b/plugin.rb
index 03b9d91..11fae25 100644
--- a/plugin.rb
+++ b/plugin.rb
@@ -70,16 +70,16 @@ after_initialize do
module ::StripeDiscourseSubscriptions
class Engine < ::Rails::Engine
- engine_name 'stripe-discourse-subscriptions'
+ engine_name "stripe-discourse-subscriptions"
isolate_namespace StripeDiscourseSubscriptions
end
end
- StripeDiscourseSubscriptions::Engine.routes.draw do
- get "/" => "pricingtable#index"
- end
+ StripeDiscourseSubscriptions::Engine.routes.draw { get "/" => "pricingtable#index" }
require_relative "app/controllers/discourse_subscriptions/pricingtable_controller.rb"
- Discourse::Application.routes.append { mount ::StripeDiscourseSubscriptions::Engine, at: "subscriptions" }
+ Discourse::Application.routes.append do
+ mount ::StripeDiscourseSubscriptions::Engine, at: "subscriptions"
+ end
::Stripe.set_app_info(
"Discourse Subscriptions",