Commit Graph

1053 Commits

Author SHA1 Message Date
Justin DiRose 8ab7a63167
FEATURE: Validate coupon codes on form submit (#74) 2021-06-16 12:54:54 -05:00
Discourse Translator Bot 5f9a84242b
Update translations (#75) 2021-06-15 15:59:45 +02:00
dependabot[bot] 28148e2dda
Bump glob-parent from 5.1.1 to 5.1.2 (#73)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-12 13:57:52 +02:00
Jordan Vidrine a4f36e4966
Campaign topic footer (#72)
* UX: Restyle banner, add topic footer functionality, other updates
2021-06-10 16:02:54 -05:00
Justin DiRose 227c55e6f5
FIX: Restrict mods from seeing Subscriptions admin features (#70)
As reported [on Meta](https://meta.discourse.org/t/discourse-subscriptions/140818/352?u=justin), moderators could access all of the subscriptions data (plugins/prices/subscribers) and manage them. This should not be the case, so this PR adds a route constraint to 404 moderators from these routes.
2021-06-08 17:24:13 -05:00
Justin DiRose 791c7fa7a5
UX: Improve mobile campaign flow (#69)
1. Improve mobile checkout styling

These are pretty simple changes. The buttons were crammed together and not wrapping properly on mobile if there were more than a few. Also the padding was weird and causing text to overflow out of the #main-outlet on phone viewports.
2. Renders the top campaign banner on mobile even if sidebar is selected

In the original PR, we refactored using the connector JS out since we now have more Ember operators; however, we needed some more complex logic that couldn't be done in the template. Basically, we choose which outlet to render the component in based on two criteria:

    If the setting is set to sidebar or top
    If we're on a mobile device

Previously, if the site showed the banner on the sidebar and the user browsed to mobile, they wouldn't see a banner at all. This PR changes the logic to use the top outlet on mobile, even if the sidebar is selected.
2021-06-08 12:52:29 -05:00
Discourse Translator Bot 2d7807aeb3
Update translations (#71) 2021-06-08 16:30:55 +02:00
Justin DiRose f596a0f78a
FEATURE: Campaigns (#67)
Co-authored-by: Jordan Vidrine <jordan@jordanvidrine.com>

See https://github.com/discourse/discourse-subscriptions/pull/67 for the full description.
2021-06-02 13:15:03 -05:00
Discourse Translator Bot dcec7703f8
Update translations (#68) 2021-06-01 15:10:10 +02:00
Jay Pfaffman 3fb597a4cf
FIX: Don't use `Discourse` global (#66)
Discourse.SiteSettings should be this.siteSettings.
2021-05-26 21:33:31 +02:00
haroldus- ccd9454da8
FIX: Allow more than 10 Stripe records (#62) 2021-05-22 20:30:09 -05:00
dependabot[bot] d83425872f
Bump lodash from 4.17.20 to 4.17.21 (#65)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 13:41:45 -04:00
dependabot[bot] 916e2f01ce
Bump handlebars from 4.7.6 to 4.7.7 (#64)
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 10:49:04 +10:00
dependabot[bot] 8abcf34858
Bump rexml from 3.2.4 to 3.2.5 (#63)
Bumps [rexml](https://github.com/ruby/rexml) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/rexml/compare/v3.2.4...v3.2.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-02 17:10:56 +02:00
chalkadmin 1ae5a552a6
FEATURE: Add SGD as supported currency (#60)
Add additional currency Singapore dollars as supported Stripe currency
2021-04-13 12:20:00 +02:00
Brian Bønk 312b1182b9
FEATURE: Add DKK as supported currency 2021-04-06 09:59:27 -05:00
dependabot[bot] f1dd035ec1
Bump y18n from 4.0.0 to 4.0.1 (#59)
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-04-01 10:04:40 +02:00
Discourse Translator Bot 252a11ed15
Update translations (#58) 2021-03-23 16:07:51 +01:00
Justin DiRose 7f84cee940
UX: Improve usability of purchase page (#54)
Commit does 3 things:

    Remove the duplicative currency abbreviation in favor of the currency symbol alone
    Reorders plans by the cost in ascending order.
    Fixes a flexbox button bug
2021-02-16 12:07:53 -06:00
Justin DiRose 0126b12761
DEV: Remove unused CSS selector (#55) 2021-02-16 11:54:21 -06:00
Discourse Translator Bot 13c3fbdf44
Update translations (#56) 2021-02-16 15:22:44 +01:00
Justin DiRose ab9b81471b
UX: Adjust repurchase styles to look better (#53)
Suggested here: https://meta.discourse.org/t/subscriptions-suggestions-for-interface-improvements/177970

Changes order and alignment so it makes a bit more sense in the UX of the /s route. Otherwise it looks too cluttered. This specifically impacted products that can be repurchased.
2021-02-15 15:17:45 -06:00
Discourse Translator Bot cab037574c
Update translations (#51) 2021-02-09 14:46:37 +01:00
Justin DiRose a282475da3
FEATURE: Admin > Subscriptions Pagination (#50)
Meta topic: https://meta.discourse.org/t/subscriptions-add-pagination-to-admin-subscriptions-view/172500

This adds support for pagination using our `{{load-more}}` component in core. Implementation on the backend was a bit tricky because we don't return all results from Stripe, only those that match local subscriptions stored in the `DiscourseSubscriptions::Subscription` model.
2021-02-05 11:57:53 -06:00
Discourse Translator Bot eaf1729f6f
Update translations (#49) 2021-02-02 14:37:20 +01:00
Justin DiRose 072b558d40
FEATURE: Give option to repurchase products multiple times (#46)
Feature requested here: https://meta.discourse.org/t/subscriptions-allow-users-to-purchase-one-time-products-multiple-times/173732/

There may be cases where a site admin wants to allow the repurchasing of a product. This implements the functionality by adding a repurchaseable toggle in the admin screen when creating a product. This saves an attribute to the Stripe product metadata.

When a user has already purchased an item with this toggle enabled, they will be able to purchase it again when browsing to `/s`.
2021-01-31 14:17:44 -06:00
Joffrey JAFFEUX 3f8fca3246
DEV: prettier 2.2.1 (#48) 2021-01-27 10:38:33 +01:00
Discourse Translator Bot 49c49fe36e
Update translations (#47) 2021-01-26 14:48:14 +01:00
Discourse Translator Bot 1c298d8fa4
Update translations (#45) 2021-01-19 15:47:39 +01:00
Justin DiRose 400313cded
FEATURE: Allow creation of coupons in admin panel (#43)
Adds full support to create coupon/promo codes in the Admin > Plugins > Subscriptions section of the plugin. The Create Coupon button opens a form on the same page, and the active checkboxes toggle the active status of the coupon code.
2021-01-13 11:47:22 -06:00
Discourse Translator Bot a6de862ba9
Update translations (#42) 2021-01-12 14:27:02 +01:00
Justin DiRose da9b58398b
FEATURE: Support for coupons in checkout (#41)
This adds support for Stripe Promo Codes in the user checkout process. 

Also adds a discounted field to User > Billing > Subscriptions to show the amount or percent discounted.

This does not currently add in support for creating promo codes in the Subscriptions interface (that will come at a later point in time). Instead a coupon can be created with a promo code right from the Stripe dashboard.
2021-01-07 15:25:44 -06:00
Justin DiRose 70b96cf3b8
FIX: Properly show one time payments in user billing (#40)
Encountered a bug where some one time payments were not showing under User > Billing > Payments. This was due to a simple error in the logic
2021-01-06 14:01:16 -06:00
Justin DiRose b6de4a7b67
DEV: Bump Stripe API gem to 5.29.0 (#38)
Bumping the API gem to 5.29.0 and to the latest API version. This takes into account changes in the API over the last few months and also lays the groundwork for some other improvements to the plugin (namely promo codes).
2021-01-06 13:36:50 -06:00
discoursebot 8036dba315
DEV: Update CI workflows (#36)
* DEV: Update CI workflows
* DEV: Fix linting

Co-authored-by: Justin DiRose <justin@justindirose.com>
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2021-01-05 01:08:58 +01:00
Roman Rizzi 088b8d2239
REFACTOR: Use the new format for acceptance tests. (#37) 2021-01-04 16:32:33 -03:00
Discourse Translator Bot 0b5f740db5
Update translations (#35) 2020-12-01 14:33:30 +01:00
Justin DiRose 443fdc3ec6
DEV: Transition from Ember constant to imports (#34) 2020-11-30 10:35:21 -06:00
Justin DiRose d430098bad
FIX: Properly allow no group to be selected (#33) 2020-11-24 14:52:00 -06:00
Discourse Translator Bot 52817018aa
Update translations (#32) 2020-11-24 17:21:39 +01:00
Discourse Translator Bot e2485b58a1
Update translations (#31) 2020-11-03 18:06:40 +01:00
Justin DiRose 17bd58afa4
DEV: CI Updates (#30) 2020-11-02 11:57:36 -06:00
Justin DiRose be9e9c0117
FIX: Make URLs subfolder friendly (#29)
Not all URLs in Subscriptions were not subfolder install friendly. This commit uses link-to in places its needed to properly set URLs if on a subfolder install.
2020-11-02 10:20:31 -06:00
Justin DiRose b92627677f
FEATURE: Implement refunds from dashboard (#27)
An implementation of refunds from the Admin dashboard. To refund, go to Plugins > Subscriptions > Subscriptions then click the `Cancel` button. You'll be presented with a modal. If you wish to refund only the most recent payment, check the box. 

This only implements refunds for Subscriptions, not One Time Payments. One Time Payments will still need to be handled manually at this time.
2020-10-29 10:31:12 -05:00
Justin DiRose b950926538
FIX: Payments could not complete (#28)
Due to putting the Stripe Elements HTML inside an if block in the
template, this caused state to be funky. As a result, calling
`this.stripe.createToken` failed to return a promise. Opted instead to
hide the elements via CSS for anonymous users to prevent this
showstopping bug.
2020-10-29 10:21:14 -05:00
Justin DiRose 1ad5b17640
FEATURE: Better UX for anonymous users (#25)
Improves the subscription flow for anonymous users by making the routes available, and showing a login button. Clicking login from this page will save a `destination_url` cookie so that when logging in they're redirected back to the subscription page they were at.
2020-10-28 13:30:26 -05:00
Discourse Translator Bot 8ffe769ca9 Update translations 2020-10-27 15:34:26 +01:00
Justin DiRose 3a5078ded6
REFACTOR: Simplify controller setup (#24)
The code in the plugin needed a dramatic cleanup. This refactor collapses the Plan/Product/Subscription controllers on the backend into one new controller: `SubscribeController`.

This reduces N+1 calls to the back end during the subscription process and simplifies use of the code. 

I've also removed a bunch of dead code and refactored some logic into methods for easier readability. No feature/functionality changes in this commit; only refactoring. However, refactoring will allow for implementation of better anonymous user handling, so this is largely a foundation to enable making that change.
2020-10-21 13:36:31 -05:00
Justin DiRose 3428429d77
DEV: Remove Travis CI 2020-10-20 11:29:15 -05:00
Justin DiRose 86c8daf693
DEV: Ignore foreign key migration in rubocop
We don't want foreign keys in migrations going forward as they can be
expensive for large tables. However, we shouldn't be changing old
migrations, so we're having rubocop ignore it in this plugin for now.
2020-10-20 11:27:32 -05:00