no refs
If a custom price is already set before completing the wizard, the set pricing wizard hides the UI to create default custom prices as it doesn't make sense and instead shows a custom message.
closes https://github.com/TryGhost/Team/issues/678
closes https://github.com/TryGhost/Team/issues/681
The prices in "Add subscription" modal should follow the same ordering as on the product detail screen, ie. currency, amount. Also, we only want to allow adding subscriptions for active prices, so the list is filtered on that. Since a Stripe customer is not allowed to have subscriptions in multiple currencies, this also filters the available currency prices based on any active subscription for a member.
refs https://github.com/TryGhost/Team/issues/678
Covers error handling for missing name/amount/billing period for a price modal when adding a new price or editing existing price.
refs https://github.com/TryGhost/Team/issues/588
- When the email limit was reached the hardcoded "members" error message was shown. Have changed implementation of the upgrade modal to take the "message" coming from the server into account
refs https://github.com/TryGhost/Team/issues/641
When default prices are created via the setup wizard, this adds a default description for Monthly and Yearly prices that mimics the values set for them currently in Portal.
refs https://github.com/TryGhost/Team/issues/496
- all/free/paid are selectable via the segment select
- radio buttons should be kept to 3-4 max
- fixed pluralisation of member count below member segment when only 1 member is selected
refs https://github.com/TryGhost/Team/issues/637
With custom products it's possible to change the name and description of any price. This assumes that people would want to change the same properties of a Free membership, and wires up the values for free membership price settings to API
Co-authored-by: Peter Zimon <zimo@ghost.org>
refs https://github.com/TryGhost/Team/issues/643
Currently, the whole setup for choosing plans is built around hardcoded `monthly` / `yearly` which is also exposed in the Portal links/data attributes. Since we now have custom prices, this updates the UI to show links/attributes for all available custom prices and allowing them to function via their price ids.
refs https://github.com/TryGhost/Team/issues/581
requires https://github.com/TryGhost/Ghost/pull/12932
- added segment option and select to default newsletter recipients setting
- updated segment selector to fetch labels/products and show as options
- updated segment selector and count component to call an action when count changes so we can use it in the email confirmation modal
- removed usage and mapping of older `'none'`, `'all'`, `'free'`, and `'paid'` email recipient filter values
This reverts commit 0cf2fc9c24.
Hiding the launch wizard when there are existing prices causes an annoying flicker on the dashboard everytime we reload the page or navigate away. Instead of handling this client side, we'll push up the logic to hide the wizard on server.
refs https://github.com/TryGhost/Team/issues/644
In case the prices are already set for the default product, its confusing to have the launch wizard show the price setup again. We remove the wizard completely if the prices are already created for the default product.
refs https://github.com/TryGhost/Team/issues/496
reqs https://github.com/TryGhost/Ghost/pull/12925
The publish menu was meant to default to matching post visibility but that wasn't working consistently and didn't make sense for sites which don't email every post to their members.
A "Default newsletter recipients" option has been added to the "Email newsletter" settings screen and the publish menu updated to reflect the option. The free/paid toggles in the publish menu have also been swapped out for a multi-select style component that will cater to more complex member segmentation.
refs https://github.com/TryGhost/Team/issues/637
The paid signup setting was incorrectly still checking only for Monthly and yearly prices instead of custom prices list to show the paid signup input.
no issue
- simplified query params as they are only used to display a notification
- removed all controller knowledge and associated reset behaviour for query params
- moved notification display from `setupController` to `beforeModel` so the raw query params can be pulled off of the transition object
- removed unused service injections from `<GhMembersEmailSetting>`
- removed unused service injections and properties from members-email controller that were left over from a copy/paste
- converted members-email controller to a native class
- fixed "leave settings" confirmation modal behaviour that wasn't moved across in the the settings screen re-org
no refs.
- added subscription count to the product list in member details screen if there are multiple subscriptions for the given product. This is to make it clear and avoid confusion around the edge case when members have multiple subscriptions for the same product.
refs https://github.com/TryGhost/Team/issues/586
The `products` and `prices` UI were not hooked to description
data which will be used by Portal to display information about the
products and prices, this change wires it to the API for edit/read.
no issue
Our token input component removes already-selected options from the list of available options but it was expecting a non-grouped set of options.
- updated to recursively walk the options list and build a filtered list being careful not to modify the original groups by reference
- swapped task decorator syntax out for the more easily readable `ember-concurrency-decorators` style
refs https://github.com/TryGhost/Team/issues/588
- The change allows to give information about not being able to send a newsletter along with publishing the post instead of waiting for a server response to fail
- Implements client-side limit check for email along with information coming from limit's error message
no refs
The dropdown button component was missing `type="button"` when used as a button, which caused it to act like a `submit` button when used as part of a form, like in Member details page. This change adds type attribute to the button to fix the issue.
refs https://github.com/TryGhost/Team/issues/648
All sites will include a default Free "Product" which is used for free memberships. This change adds UI for handling free membership settings. Also -
- Updates product icons in list and responsive sizes
- Copy updates
refs https://github.com/TryGhost/Team/issues/644
Updates site setup to create custom Monthly/Yearly prices in default product as part of launch wizard. Also updates available portal plans based on user selection.
refs https://github.com/TryGhost/Team/issues/587
- Because we lack context when the component is called in "create new users" (invite) or in "modify existing user" (role upgrade) made copy more generic to fit both cases.
refs https://github.com/TryGhost/Team/issues/587
- Previous behavior wa showing a generic API error in the top banner which wasn't ideal UX
- With these changes user is informed about the limitation before performing any action with clear call to upgrade through the billing page
refs https://github.com/TryGhost/Team/issues/590
- Previous upgrade button behavior was opening up a new browser window leading to now retired billing site. Tha behavior change looks like an oversight we missed to cleanup when introducing an in-admin billing pabe "/pro"
- The change follows similar pattern used in other limit check mesages where tha "upgrade" button takes the user to the billing page
refs https://github.com/TryGhost/Team/issues/589
- Previous upgrade button behavior was opening up a new browser window leading to now retired billing site. Tha behavior change looks like an oversight we missed to cleanup when introducing an in-admin billing pabe "/pro"
- The change follows similar pattern used in other limit check mesages where tha "upgrade" button takes the user to the billing page
refs https://github.com/TryGhost/Team/issues/599
- Previously user received genetic limit error after putting in integration name and clicking "create" button. This created a little frustrating experience.
- The updated flow does the check before loading the integration modal, so the user receives communication about needed upgrade before doing any work