diff --git a/assets/javascripts/discourse/components/stripe-card.js.es6 b/assets/javascripts/discourse/components/stripe-card.js.es6
index d02b917..2eb2611 100644
--- a/assets/javascripts/discourse/components/stripe-card.js.es6
+++ b/assets/javascripts/discourse/components/stripe-card.js.es6
@@ -2,6 +2,7 @@ import { ajax } from 'discourse/lib/ajax';
import { getRegister } from 'discourse-common/lib/get-owner';
import { formatAnchor, zeroDecimalCurrencies } from '../lib/donation-utilities';
import { default as computed } from 'ember-addons/ember-computed-decorators';
+import { emailValid } from "discourse/lib/utilities";
export default Ember.Component.extend({
result: [],
@@ -94,9 +95,19 @@ export default Ember.Component.extend({
return amount;
},
- @computed('currentUser', 'email')
- userReady(currentUser, email) {
- return currentUser || email;
+ @computed('email')
+ emailValid(email) {
+ return emailValid(email);
+ },
+
+ @computed('email', 'emailValid')
+ showEmailError(email, emailValid) {
+ return email && email.length > 3 && !emailValid;
+ },
+
+ @computed('currentUser', 'emailValid')
+ userReady(currentUser, emailValid) {
+ return currentUser || emailValid;
},
@computed('userReady', 'stripeReady')
diff --git a/assets/javascripts/discourse/templates/components/donation-list.hbs b/assets/javascripts/discourse/templates/components/donation-list.hbs
index fba86c4..ae2706e 100644
--- a/assets/javascripts/discourse/templates/components/donation-list.hbs
+++ b/assets/javascripts/discourse/templates/components/donation-list.hbs
@@ -1,23 +1,29 @@
-{{#if hasCharges}}
-
{{i18n 'discourse_donations.donations.charges'}}
-
- {{#each charges as |charge|}}
- - {{donation-charge charge}}
- {{/each}}
-
-{{/if}}
-
{{#if hasSubscriptions}}
- {{i18n 'discourse_donations.donations.subscriptions'}}
-
- {{#each subscriptions as |s|}}
- - {{donation-subscription s.subscription}}
+
+
{{i18n 'discourse_donations.donations.subscriptions'}}
+
+ {{#each subscriptions as |s|}}
+ - {{donation-subscription s.subscription}}
- {{#if s.invoices}}
- {{#each s.invoices as |invoice|}}
- - {{donation-invoice invoice}}
- {{/each}}
- {{/if}}
- {{/each}}
-
+ {{#if s.invoices}}
+
+ {{#each s.invoices as |invoice|}}
+ - {{donation-invoice invoice}}
+ {{/each}}
+
+ {{/if}}
+ {{/each}}
+
+
+{{/if}}
+
+{{#if hasCharges}}
+
+
{{i18n 'discourse_donations.donations.charges'}}
+
+ {{#each charges as |charge|}}
+ - {{donation-charge charge}}
+ {{/each}}
+
+
{{/if}}
diff --git a/assets/javascripts/discourse/templates/components/stripe-card.hbs b/assets/javascripts/discourse/templates/components/stripe-card.hbs
index e1ffa1e..a23c7fc 100644
--- a/assets/javascripts/discourse/templates/components/stripe-card.hbs
+++ b/assets/javascripts/discourse/templates/components/stripe-card.hbs
@@ -50,7 +50,7 @@
{{#if stripeError}}
-
{{stripeError}}
+
{{stripeError}}
{{/if}}
@@ -60,7 +60,11 @@
{{text-field value=email}}
-
{{i18n 'discourse_donations.email_instructions'}}
+ {{#if showEmailError}}
+
{{i18n 'user.email.invalid'}}
+ {{else}}
+
{{i18n 'discourse_donations.email_instructions'}}
+ {{/if}}
diff --git a/assets/stylesheets/discourse-donations.scss b/assets/stylesheets/discourse-donations.scss
index 23c0263..878b905 100644
--- a/assets/stylesheets/discourse-donations.scss
+++ b/assets/stylesheets/discourse-donations.scss
@@ -28,7 +28,7 @@ div.stripe-errors {
margin: 0;
}
- .stripe-error {
+ .error, .stripe-error {
margin-top: 5px;
color: $danger;
}
@@ -56,17 +56,22 @@ div.stripe-errors {
}
.body-page .donations-page-donations {
- margin-bottom: 40px;
+ margin-bottom: 20px;
.donation-list {
- ul {
- margin-left: 0;
- list-style: none;
+ .subscription-list, .charge-list {
+ margin-bottom: 10px;
+ display: inline-block;
- li.underline {
- border-bottom: 1px solid $primary-medium;
- display: inline-block;
+ > ul {
+ margin: 10px 0;
+ list-style: none;
}
}
+
+ .underline {
+ border-bottom: 1px solid $primary-medium;
+ display: inline-block;
+ }
}
}