no refs
The `getAvailablePrices` method was removed from portal links as we no longer loop over prices for links but use monthly/yearly directly instead.
no refs
This change reverts the last commit to add portal option to product as it breaks the model that is passed to popup.
This reverts commit 5f538b5036.
refs https://github.com/TryGhost/Team/issues/715
By default, the first product/tier is available in Portal at the moment, this adds an attribute that can be used to denote which product is active in Portal in UI
refs https://github.com/TryGhost/Team/issues/721
The setup wizard in Admin handles creating default prices as well as handling new price changes on default Product. This change updates the handling to use updated Products API with support for `monthly/yearly_price` values that offloads price handling to backend and makes the logic simpler. Also updates the stripe connect flow to use new API for creating default prices.
closes https://github.com/TryGhost/Team/issues/742
The button to add a complimentary subscription for a member was visible even if Stripe was not connected on the site, and errored out with nasty red banner. This hides the `Add complimentary` button for member if stripe is not enabled on the site.
refs https://github.com/TryGhost/Team/issues/684
Removes now unused methods for fetching list of prices to show in Portal links, since it was reverted back to showing monthly/yearly prices only.
refs https://github.com/TryGhost/Team/issues/753
The portal_plans setting was previously storing price ids for active monthly/yearly prices for the default product, which was done to allow multiple prices in Portal. Since the portal_plans setting is now reverted to use `monthly`/`yearly` named values to denote the availability of active monthly/yearly pricing on a product, this change updates the handling in portal settings modal to work with new settings.
refs https://github.com/TryGhost/Team/issues/715
Adds new modal and component to handle managing a list of products(tiers) in Admin behind the developer experiments flag. Also adds a new helper for stripe prices to convert amount from decimal value.
no issue
- Grammarly have indicated their extension is now compatible with the underlying editor technology used in Ghost
- removed html attributes that explicitly disabled the extension on our editor fields
refs 84bfbae282
- if Admin is pushed to after Ghost, the canary build won't contain
Admin changes, so we need to trigger another canary build
- this commit adds a final step to the CI flow that will trigger the
Ghost canary build if all steps were successful
no issue
- the modal wasn't overriding the default `confirm` action so an error was thrown and the confirm action not triggered when pressing <kbd>Enter</kbd> whilst the modal is shown
- resolves Sentry error `ADMIN-M`
no issue
- the modal component is using a native class but with the `@classic` decorator so it's still using pre-Glimmer component syntax where `this.args` doesn't exist
- fixes Sentry error `ADMIN-4C`
no issue
- the POST request made to fetch the preview was going to the non-trailing-slash version of the site URL which was resulting in a redirect to the trailing-slash version which then failed due to CORS
no issue
- production sourcemaps are needed to have reasonably readable stack traces in error reporting
- will be excluded from Ghost release zips by `.npmignore` rules
refs https://github.com/TryGhost/Team/issues/707
- the switch to a hard `'(Untitled)'` when you start typing is jarring and pulls you away from writing to want to set a title
- by changing the input to treat '(Untitled)' as a blank value the placeholder continues to be shown so flow isn't broken. Post validation and title display elsewhere in the app is unaffected because we're still setting `'(Untitled')` under the hood, it's only the editor display that changes
no issue
- switched to listening to Portal's `message` events that now include a height
- removes need to reach into Portal preview iframe contents which is blocked by browser security when working cross-origin
no issue
- when the preview iframe origin does not match the admin origin (ie, front-end and admin live on different URLs) we would hit browser security restrictions for accessing contents of a cross-origin iframe
- added a guard around the preview resize code so we abort resizing when we hit a security error