From 8d8e9f9ad15e076f60e61fcf25b90a08fe3aa8b3 Mon Sep 17 00:00:00 2001 From: Rimian Perkins Date: Wed, 28 Aug 2019 14:59:45 +1000 Subject: [PATCH] abstract out the stripe component for easy future testing --- README.md | 12 +- .../discourse/components/donation-form.es6 | 32 --- .../discourse/components/stripe-card.js.es6 | 1 + .../discourse/controllers/donate.js.es6 | 4 + .../templates/components/donation-form.hbs | 13 +- .../templates/components/stripe-card.hbs | 194 +++++++++--------- .../discourse/templates/donate.hbs | 33 +-- .../components/donation-form-test.es6 | 10 +- .../components/donation-row-test.js.es6 | 8 +- 9 files changed, 120 insertions(+), 187 deletions(-) diff --git a/README.md b/README.md index 0cdb751..048d6de 100644 --- a/README.md +++ b/README.md @@ -28,17 +28,9 @@ Accept donations from visitors to your [Discourse](https://www.discourse.org/) f ## Testing -* To run the rails specs, install the plugin and run `bundle exec rake plugin:spec[discourse-donations]` in the discourse root directory. -* To run qunit tests: `MODULE='Acceptance: Discourse Donations' bundle exec rake qunit:test[20000]`. -* To run Component tests: `MODULE='component:stripe-card' bundle exec rake qunit:test[20000]`. +These commands should run: -**Note:** - -* If you're using a zsh shell, then you probably get this error: `zsh: no matches found ...` and you'll need to escape the square brackets with backslashes. - -## TODO - -* Handle custom fields +* ```yarn prettier --list-different 'assets/**/*.scss' '**/*.es6'``` ## Tested Credit Card Numbers diff --git a/assets/javascripts/discourse/components/donation-form.es6 b/assets/javascripts/discourse/components/donation-form.es6 index 4e8c1c3..bedeb36 100644 --- a/assets/javascripts/discourse/components/donation-form.es6 +++ b/assets/javascripts/discourse/components/donation-form.es6 @@ -1,35 +1,3 @@ -import { default as computed } from "ember-addons/ember-computed-decorators"; export default Ember.Component.extend({ - @computed - causes() { - const categoryEnabled = - Discourse.SiteSettings.discourse_donations_cause_category; - - if (categoryEnabled) { - let categoryIds = Discourse.SiteSettings.discourse_donations_causes_categories.split( - "|" - ); - - if (categoryIds.length) { - categoryIds = categoryIds.map(Number); - return this.site - .get("categoriesList") - .filter(c => { - return categoryIds.indexOf(c.id) > -1; - }) - .map(c => { - return { - id: c.id, - name: c.name - }; - }); - } else { - return []; - } - } else { - const causes = Discourse.SiteSettings.discourse_donations_causes; - return causes ? causes.split("|") : []; - } - } }); diff --git a/assets/javascripts/discourse/components/stripe-card.js.es6 b/assets/javascripts/discourse/components/stripe-card.js.es6 index abc9af1..25a1ac8 100644 --- a/assets/javascripts/discourse/components/stripe-card.js.es6 +++ b/assets/javascripts/discourse/components/stripe-card.js.es6 @@ -265,6 +265,7 @@ export default Ember.Component.extend({ self.concatMessages(result.messages); self.endTranscation(); + self.onCompleteTransation(); }); } } diff --git a/assets/javascripts/discourse/controllers/donate.js.es6 b/assets/javascripts/discourse/controllers/donate.js.es6 index e2c7f63..c6d7fde 100644 --- a/assets/javascripts/discourse/controllers/donate.js.es6 +++ b/assets/javascripts/discourse/controllers/donate.js.es6 @@ -22,6 +22,10 @@ export default Ember.Controller.extend({ }, actions: { + stripeTransationCompleteCtr() { + console.log('done!'); + }, + loadDonations() { let email = this.get("email"); diff --git a/assets/javascripts/discourse/templates/components/donation-form.hbs b/assets/javascripts/discourse/templates/components/donation-form.hbs index c105263..2449ad2 100644 --- a/assets/javascripts/discourse/templates/components/donation-form.hbs +++ b/assets/javascripts/discourse/templates/components/donation-form.hbs @@ -1,10 +1,9 @@
-
- -
- {{combo-box content=causes value=cause none='discourse_donations.cause.placeholder'}} -
+
+ {{stripe-card + charges=charges + subscriptions=subscriptions + onCompleteTransation=onCompleteTransation + }}
diff --git a/assets/javascripts/discourse/templates/components/stripe-card.hbs b/assets/javascripts/discourse/templates/components/stripe-card.hbs index 34e5f43..a682436 100644 --- a/assets/javascripts/discourse/templates/components/stripe-card.hbs +++ b/assets/javascripts/discourse/templates/components/stripe-card.hbs @@ -1,128 +1,118 @@ -
-
- -
- {{combo-box content=causes value=cause none='discourse_donations.cause.placeholder'}} +
+ +
+ {{combo-box content=donationTypes value=type}} +
+
+ +
+ +
+ {{combo-box valueAttribute="value" content=donateAmounts value=amount}} +
+
+ +{{#if siteSettings.discourse_donations_enable_transaction_fee}} +
+
+ {{input type="checkbox" checked=includeTransactionFee}} + {{i18n 'discourse_donations.transaction_fee.label' transactionFee=transactionFee currency=siteSettings.discourse_donations_currency}} +
+ {{d-icon 'info-circle'}} + {{#if showTransactionFeeDescription}} +
+ {{i18n 'discourse_donations.transaction_fee.description'}} +
+ {{/if}} +
-
- -
-