From 8ad7efae592417f9a58e2bcc32ca3641334f809e Mon Sep 17 00:00:00 2001 From: xavizalote Date: Wed, 25 May 2016 09:30:29 +0200 Subject: [PATCH] delete user from list to make it possible for him to resubscribe, default props for the button, style newsletter settings in the UsersEdit --- .../lib/common/Newsletter.jsx | 2 +- .../lib/common/NewsletterButton.jsx | 10 ++++++++-- .../lib/users/UsersEdit.jsx | 17 ++++++++++++----- .../lib/stylesheets/_users.scss | 5 +++++ .../nova-newsletter/lib/server/mailchimp.js | 1 + 5 files changed, 27 insertions(+), 8 deletions(-) diff --git a/packages/nova-base-components/lib/common/Newsletter.jsx b/packages/nova-base-components/lib/common/Newsletter.jsx index 4da5fd7b3..32b7b75c9 100644 --- a/packages/nova-base-components/lib/common/Newsletter.jsx +++ b/packages/nova-base-components/lib/common/Newsletter.jsx @@ -80,7 +80,7 @@ class Newsletter extends Component { {this.context.currentUser ? this.successCallbackSubscription} - buttonText={this.props.buttonText} + subscribeText={this.props.buttonText} user={currentUser} /> : this.renderForm() diff --git a/packages/nova-base-components/lib/common/NewsletterButton.jsx b/packages/nova-base-components/lib/common/NewsletterButton.jsx index 4885020cb..25edd8a4a 100644 --- a/packages/nova-base-components/lib/common/NewsletterButton.jsx +++ b/packages/nova-base-components/lib/common/NewsletterButton.jsx @@ -36,7 +36,7 @@ class NewsletterButton extends Component { onClick={this.subscriptionAction(isSubscribed ? "removeUserFromMailChimpList" : "addUserToMailChimpList")} bsStyle="primary" > - {isSubscribed ? "Unsubscribe" : this.props.buttonText} + {isSubscribed ? this.props.unsubscribeText : this.props.subscribeText} ) } @@ -45,7 +45,13 @@ class NewsletterButton extends Component { NewsletterButton.propTypes = { user: React.PropTypes.object.isRequired, successCallback: React.PropTypes.func.isRequired, - buttonText: React.PropTypes.string + subscribeText: React.PropTypes.string, + unsubscribeText: React.PropTypes.string +}; + +NewsletterButton.defaultProps = { + subscribeText: "Subscribe", + unsubscribeText: "Unsubscribe" }; module.exports = NewsletterButton; diff --git a/packages/nova-base-components/lib/users/UsersEdit.jsx b/packages/nova-base-components/lib/users/UsersEdit.jsx index d194a334c..3543d77d1 100644 --- a/packages/nova-base-components/lib/users/UsersEdit.jsx +++ b/packages/nova-base-components/lib/users/UsersEdit.jsx @@ -1,4 +1,5 @@ import React, { PropTypes, Component } from 'react'; +import { Row, Col } from 'react-bootstrap'; import NovaForm from "meteor/nova:forms"; @@ -23,11 +24,17 @@ const UsersEdit = ({document, currentUser}) => { Messages.flash("User updated.", "success"); }} /> - Messages.flash("Newsletter subscription updated", "success")} - buttonText="Subscribe" - user={currentUser} - /> + + + Newsletter Settings + + + Messages.flash("Newsletter subscription updated", "success")} + user={user} + /> + + ) diff --git a/packages/nova-base-styles/lib/stylesheets/_users.scss b/packages/nova-base-styles/lib/stylesheets/_users.scss index 2014fa698..c8d5aed05 100644 --- a/packages/nova-base-styles/lib/stylesheets/_users.scss +++ b/packages/nova-base-styles/lib/stylesheets/_users.scss @@ -18,4 +18,9 @@ display: block; line-height: 1; } +} + +.users-newsletter-settings { + @include flex-center; + margin-top: $vmargin; } \ No newline at end of file diff --git a/packages/nova-newsletter/lib/server/mailchimp.js b/packages/nova-newsletter/lib/server/mailchimp.js index 572b6f52c..60aaf8cc8 100644 --- a/packages/nova-newsletter/lib/server/mailchimp.js +++ b/packages/nova-newsletter/lib/server/mailchimp.js @@ -167,6 +167,7 @@ MailChimpList.remove = (user) => { var subscribeOptions = { id: listId, email: {"email": email}, + delete_member: true // delete the member from the list to make it possible for him to *resubscribe* via API (mailchimp's spam prevention policy) }; // unsubscribe user