refs https://github.com/TryGhost/Team/issues/450
- duplicated and refactored/updated direct and connect settings UI from labs to the "connect stripe" step of the launch site wizard
- updated wizard buttons to be right-aligned
no issue
- due to various levels of sub-dependency support across our postcss dependencies we'd ended up with three different versions of postcss installed (6, 7, and 8)
- pinned our dependencies to versions that all use postcss@^7
- we can't upgrade to postcss@8 because we make heavy use of `color-mod` which is no longer in the CSS spec and so the dependency providing it has not been updated
- switched from `postcss-easy-import` to `postcss-import` to drop the postcss@6 sub dependency (we weren't using any of the features that postcss-easy-import added over postcss-import)
- initial tests show CSS compilation times to have roughly halved
- disabled renovate for css dependencies to reduce noise for updates we can't merge
refs https://github.com/TryGhost/Team/issues/450
- moved next/finish buttons into wizard step components in case they need to save before triggering transition
- added icon, logo, and cover image upload+removal to "customise design" step alongside a preview that reloads each time an image is changed
refs https://github.com/TryGhost/Team/issues/450
- adds `launch/*` routes corresponding to launch wizard steps
- sets up navigation between each wizard step
- adds components for each `launch/*` step to contain step-related functionality and facilitate later refactoring to a generalised wizard component
- adds link to the launch wizard from the dashboard screen
no issue
- we should be testing production functionality by default, if tests need to test functionality behind the developer experiments flag they should explicitly enable it
no issue
Adds new FirstPromoter integration on the integrations page. FirstPromoter enables sites to launch their own members referral program, and integration allows Site admins to directly add their FirstPromoter tracking ID in the settings to enable FirstPromoter script on their site.
closes https://github.com/TryGhost/Ghost/issues/12396
We use two stylesheets ghost-light.css and ghost-dark.css for light mode and night mode respectively. The problem occurs when we disable the light stylesheet when we enable dark stylesheet, as there is a moment when there is no style applied. This causes flash of unstyled content (or a big logo when users flip the night mode switch)
Since the ghost-dark style is loaded after the ghost-light stylesheet, we only need to enable or disable the dark stylesheet. When the dark stylesheet is enabled, the light stylesheet will be overridden automatically by the browser. I could not find any performance implications on overriding styles. The only performance implication is around loading a new stylesheet which we already do.
No issue
- Member email is cut off when overflowing on mobile
- Not displaying date moment-from-now and chevron on mobile
- Fixed left alignment issue for geolocation when there's no open rate
refs 772f5fa766
- when pulling the customer data display out of the subscriptions loop the data output was not updated to match
- adds a `customer` property to the `<GhMemberSettingsForm>` backing class that pulls the customer data from the first available subscription and adds the `startDate` property. Using the first available customer record works because there's a 1:1 mapping of member to stripe customer
no issue
- the customer info table was being rendered as part of the `{{#each member.subscriptions}}` loops which meant it was being rendered again for every subscription
- moved the customer record display out of the subscriptions loop
no issue
- `email_recipient` records are embedded alongside member data when fetching individual members so the member activity feed can be generated
- full email details are included for each email so that previews can be generated which can result in a large payload
- by default Ember Data will push all embedded records back to the server when saving which resulted in `Request entity too large` errors in some environments when a member has received many emails
* Fixed issues for member details mobile view
No-ref
- Changed order to display feed at the bottom
- Displayed heading and value vertically between 1400px and 1160px
- Displayed "Complementary plan" copy and switch vertically between 1400px and 1160px
- Added margin below "Continue subscription" button
- Prevented date in feed to wrap
* fixed tests
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
no issue
- liquid-fire containers (inserted by `{{#liquid-if}}`) have `overflow: hidden` applied which means the absolutely positioned tooltips that leave the container are clipped or in some cases not visible at all
- adding `class="show-overflow"` to `{{#liquid-if}}` adds the class to the top-level `.liquid-container` element allowing us to alter the behaviour slightly in CSS by making use of the `.liquid-animating` class that is added whilst the animation is in progress. By only applying `overflow: hidden` whilst animating we can keep the reveal whilst eliminating the clipping when the animation finishes
- does not work in all cases and can introduce jankiness in others where the visible overflow causes positioning changes
closes https://github.com/TryGhost/Ghost/issues/12461
Design changes:
- added activity feed to member details page
- rearranged Stripe info to display on the right
- added toggle buttons for Stripe subscription and customer info
- added box to display activity feed for received and opened emails
Functionality changes:
- added `queryRecord()` to member adapter so `queryRecord('member', {id: x})` will hit `/members/:id/?query` instead of `/members/?id=x&query`
- updated member route to query member with `?include=email_recipients`
- added `EmailRecipient` model for access to event timestamps and email relationship setup
- added `<GhMemberActivityFeed>` component that accepts an `EmailRecipient` array and converts that into an activity list
- added support for `@model=emailInstance` to the email preview modal
- fixed a timing issue with email preview that could result in it showing blank content until the mobile/desktop toggle is used
- fixed sometimes blank member location
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
no issue
- Disabled import button if mapping screen has 0 members to be imported
- Updated UI logic for no-member upload case
- Used bullet list for email summary
no refs
depends on https://github.com/TryGhost/Ghost/pull/12472
The members CSV importer gets an overhaul and works with new importer module in members service, performing the import in a background job when the import will take too long to complete in a reasonable time and send an email with data on completion. Also includes updated CSV mapping UI and error handling to allow easier import from different type of exports.
Co-authored-by: Fabien O'Carroll <fabien@allou.is>
Co-authored-by: Peter Zimon <zimo@ghost.org>
refs https://github.com/TryGhost/Ghost/issues/12461
- Added "Emails received", "Emails opened", and "Avg. open rate" to member details
- Adjusted visual display of avatar, name and email. Made email a mailto link
- Rearranged Name and Email fields to reduce height
- Changed height of the notes textarea
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
closes https://github.com/TryGhost/Ghost/issues/12421
- added `emailOpenRate` property to member model
- added open-rate column to the members list
- hidden when email analytics is disabled
- added `{{feature "flag"}}` helper so feature flags can be checked in templates without injecting the feature service into the backing class
- added `order` query param to the members controller/route and wired it into the data fetching routine
- added order dropdown to the filter bar with "Newest" (default) and "Open rate" as the two options
- whole dropdown is hidden if email analytics is disabled
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
closes https://github.com/TryGhost/Ghost/issues/12459
- Email design settings don't open in some cases when footer html is set as null, specifically on import
- Patches html cleanup to use empty string in case of null footer value
closes https://github.com/TryGhost/Ghost/issues/12459
- Email design settings don't open in some cases when footer html is set as null, specifically on import
- Patches html cleanup to use empty string in case of null footer value
no issue
- email cards a block cards so have a distinct edit mode, that type of card should always have an edit icon in the toolbar for consistency and ease of use when the double-click or cmd+enter shortcuts aren't known
closes https://github.com/TryGhost/Ghost/issues/12420
- adds "Open rate" to the available ordering options in the posts list order dropdown
- amends pages controller to have it's own order list because pages can't be ordered by open rate
no issue
- email cards a block cards so have a distinct edit mode, that type of card should always have an edit icon in the toolbar for consistency and ease of use when the double-click or cmd+enter shortcuts aren't known
no issue
- email analytics feature has a potential to be resource-intensive so it may be switched off via config, when this is the case we don't want to show stats in the admin that are out of date or won't be added/updated
- fixed page link titles saying "Edit this post" instead of "Edit this page"