refs https://github.com/TryGhost/Team/issues/792
- adds list of product benefits, if available, to main memebrship screen
- updates benefits management on product detail screen
refs https://github.com/TryGhost/Team/issues/792
- updates product model to read product's list of benefits
- adds transformer to return emberArray with list of product benefits
- adds new model for each product benefit
- adds validator for new product benefit
no issue
- previously only Owner staff users could access the email settings screens despite Administrators having server-side permissions to change the related settings
no issue
- when a site has a separate front-end and admin URL the `site` screen could throw errors due to cross-origin access to the iframe content
- detect the error and fall back to a less efficient forced refresh on guid change
refs 909bd60db3
- The modal actions for glimmer modal components need to define `actions.confirm` separately and add confirmAction to handle both enter and manual confirmation
no issue
- if the identities endpoint returned an expected 403 for non-owner/admin users we weren't handling it resulting in an error that could bubble up into error reporting services
no issue
- enter key when a modal is displayed will always trigger the `confirm` action, if it's not provided then the base modal will throw a `You must override the "confirm" action ...` error
no issue
- pressing enter in the accent field would attempt to submit the form and trigger the confirm action
- no confirm action was present on the modal component meaning the base modal confirm action would trigger a invalid usage error
- we don't want enter in the accent field to save, instead we want to blur the element and trigger a preview update
refs https://github.com/TryGhost/Team/issues/786
Enabled through labs `psmRedesign` flag, rough implementation to help design direction.
- fixed rather than popover when opened by putting editor and sidebar inside a flex container
- settings toggle fixed in top right rather than separate close button
no issue
- the post settings menu is the only component that uses the mixin so it makes sense to inline it, especially as mixins are deprecated and the mixin's utility is minimal and already overridden in places
refs https://github.com/TryGhost/Team/issues/771
- added `<GhEditorFeatureImage>` for more flexibility than offered by `<GhImageUploaderWithPreview>`
- updated to more closely match intended designs
- removed alt/caption support from `<GhImageUploaderWithPreview>` as it's no longer used
- fixed upload/delete/upload not working due to file input references getting out of sync
refs https://github.com/TryGhost/Team/issues/707
Placing focus in the title aligns better with typical editorial process.
- switched `autofocus` attribute from body to title for new posts
- added a default value to the `mobiledoc` attr on the Post model, without it the autosave when moving from title to editor creates a forced re-render and clears the focus whilst you're typing
no issue
- moved duplicated email domain generation from `members-email` controller and `<GhMembersEmailSetting>` to `config.emailDomain`
- added `{{from-email-address emailStr}}` helper that will output the passed in emailStr value if it contains an `@` or concat `emailStr@emailDomain` if it doesn't - lets us use `settings.membersFromAddress` to always get a full email address when it could be just a name (`noreply`) or a full address
- updated customise email and post email preview templates to use the new helper
no issue
- added generic members filter component
- updated `<GhRecipientFilterCount />` to use the new generic component with `subscribed:true` added to the filter
closes https://github.com/TryGhost/Team/issues/776
Since switching to using a real NQL filter in the `posts.email_recipient_filter` field where we used to show `free members`, `paid members`, or `all members` we were showing `status:free`, `status:-free`, and `status:free,status:-free` respectively. If labels are used in a filter the text became even longer.
- added a `membersCountCache` service
- `.count(filter)` fetches a numeric count from the members API, if the filter has been counted in the last minute it returns the count directly from a cache instead to avoid hammering the members API when we show counts in multiple places across the UI
- `.countString(filter)` fetches a count but returns a humanized string with the logic extracted from what we displayed in the confirm email sending modal
- added a `<GhRecipientFilterCount @filter="" />` component that acts as a wrapper around the async count from `membersCountCache`
- updated confirm email send modal, plus save notification and editor status displays for scheduled posts to use the new service and component
fixes https://github.com/TryGhost/Team/issues/777
- the unsaved settings modal would come back if you left a settings
sub-page with unsaved changes and then came back to the page
- if you then clicked on "Leave", Admin would crash with a Sentry error
of `Cannot read property 'finally' of undefined`
- we had a similar bug in
39c850f4fe
and the fix was to remove the `.finally` because it assumed the
confirm action returned a promise
- this commit performs a similar fix and seems to resolve the problem