From bf7079928edc278d2f29efa4b4f7cb6bad15470f Mon Sep 17 00:00:00 2001 From: spirobel Date: Thu, 13 Jul 2023 14:17:19 +0800 Subject: [PATCH] DEV: fix linter issues --- .../pricingtable_controller.rb | 12 +++-- .../discourse/controllers/subscriptions.js | 54 ++++++++++--------- .../initializers/setup-subscriptions.js | 48 +++++++++-------- .../discourse/subscriptions-route-map.js | 2 +- .../discourse/templates/subscriptions.hbs | 2 +- plugin.rb | 10 ++-- 6 files changed, 69 insertions(+), 59 deletions(-) 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",