Commit Graph

5032 Commits

Author SHA1 Message Date
Peter Zimon
ee744bda31 Updated resources box style 2022-05-12 14:35:39 +02:00
Peter Zimon
9a384857fd Updated bar thickness of Paid mix chart 2022-05-12 14:33:28 +02:00
Sanne de Vries
eafd2f901e Updated publishing flow email recipient filters
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 13:30:14 +01:00
Kevin Ansfield
2e6b219030 Fixed recipient select becoming disabled when all filters are turned off
no issue

- `publishOptions.willEmail` doesn't work for the conditional because it will be false when no email will be sent, which is the case when a recipient filter is the equivalent of "none"
- switched to being conditional on the publish type and added a separate "Not sent to any members" conditional for `recipientFilter` being blank so we're not showing an incorrect count of members
2022-05-12 13:21:57 +01:00
Peter Zimon
f3e35bb164 Fixed chart re-rendering bug 2022-05-12 14:04:29 +02:00
Sanne de Vries
f6b06ef9bf Updated email recipient filter design
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 12:56:43 +01:00
Kevin Ansfield
4c0c5dcac6 Allowed Editor and Author roles to see email options when publishing
no issue

- there are no restrictions on Editor/Author emailing on the API side
- removed `user.canEmail` computed property as it's only contributors that don't have publish/email permissions and they aren't shown the publishing flow anyway
2022-05-12 12:47:45 +01:00
Kevin Ansfield
d36517fb1e Fixed capitalization of email recipients option when member counts aren't available
no issue

- used CSS rather than `{{capitalize}}` to avoid multiple conditionals for something that's edge-case and will eventually disappear once member counts are available to all roles that can send email
2022-05-12 12:47:45 +01:00
Peter Zimon
527b07b490 Fixed Paid mix padding 2022-05-12 13:33:05 +02:00
Peter Zimon
8a3a5dd217 Minichart refinements 2022-05-12 13:20:48 +02:00
Kevin Ansfield
dd551acf91 Fixed schedule time changing after setting if local and site tz don't match
closes https://github.com/TryGhost/Team/issues/1622

- we were setting selected hour/minute on a supposedly site-timezone date before converting to UTC but we were using a local timezone date instead meaning the conversion to UTC didn't match resulting in the time being altered incorrectly after the time input loses focus
2022-05-12 12:13:06 +01:00
Sanne de Vries
513c8655e4 Updated error and info boxes in publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 11:47:49 +01:00
Kevin Ansfield
cc8dd9dedf Added newsletter name to publish update flow copy
no issue

- show the newsletter a post was/will be sent to if there's more than just the default newsletter or the newsletter that was emailed is now archived
2022-05-12 11:44:10 +01:00
Djordje Vlaisavljevic
1349a03164 Updated modal title
refs https://github.com/TryGhost/Team/issues/1583
2022-05-12 12:16:12 +02:00
Sanne de Vries
af55c71a9e Updated publishing flow copy
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 11:14:45 +01:00
James Morris
e0d61631d3 Tiny tweak to the community hover state
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-12 10:20:41 +01:00
James Morris
da62c0c50b Fixed a z-index laying problem with the zero state on new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-12 09:50:00 +01:00
Rishabh
72e78b2588 Renamed portalProducts setting
refs affe6743e5

- `portalProducts` setting got accidentally renamed to `portalTiers` as part of tiers rename
2022-05-12 14:00:22 +05:30
Kevin Ansfield
cf8b372fed Added fullscreen preview with toggle to publish flow
refs https://github.com/TryGhost/Team/issues/1621

- copied existing preview modal over to `editor-labs/modals` directory
  - old modal will be deleted in cleanup
- moved "Preview" button from editor template to the `<PublishManagement>` component
  - allows for preview modal to be controlled alongside the publish flow modal
- added `togglePreviewPublish()` action to `<PublishManagement>`
  - opens whichever of preview/publish is not currently open, this opens the new modal on top of the old modal
  - waits for the modal animation duration to pass then closes the modal that's now underneath, this prevents the flashing that occurs when modals are both opening and closing at the same time because that results in a 50% opacity of both modals during the middle of the animation
- updated preview modal and publish-flow modals to have "Publish" and "Preview" buttons respectively that call the `togglePreviewPublish` action
- updated preview modal to be fullscreen to better match the publish modal
2022-05-11 23:46:01 +01:00
Kevin Ansfield
b285205c53 Removed old publish menu from preview modal
refs https://github.com/TryGhost/Team/issues/1621

- the old publish menu will be fully deleted soon
- removing it from the preview modal is the minimal "fix" for interoperability with the new publish flow
- pre-cursor to tighter preview/publish modal integration
2022-05-11 21:14:22 +01:00
Kevin Ansfield
e1c7360075 Fixed errors in publish flow for users who don't have email permission
no issue

- roles that don't have email permissions also don't have permissions to read newsletters so we shouldn't attempt to fetch any during PublishOptions setup
2022-05-11 21:05:31 +01:00
Kevin Ansfield
6c079daafa Improved handling of missing member counts in publish flow
no issue

Only Admins/Owners can browse members to get member counts but Editors/Authors are allowed to send email. This means we need to account for the count figures being missing.

- added guard to the total member count fetch in `PublishOptions`
  - guard needed because the failed API request would abort setup
  - when the current user isn't an admin, set the total member count to 1 to avoid email options being disabled
- added guard in the `{{members-count-fetcher}}` resource so we're not triggering API errors and the count is kept as `null` so it's handled automatically if passed to `{{gh-pluralize}}`
- updated `<GhMembersRecipientSelect>` to not show counts (or the surrounding `()`) when the count is `null`
2022-05-11 18:56:29 +01:00
Peter Zimon
02ccf5fe1a Added rounded corners to Paid mix 2022-05-11 19:52:32 +02:00
Peter Zimon
260d516ad5 Paid breakdown chart cleanup 2022-05-11 19:52:32 +02:00
Hannah Wolfe
affe6743e5 Renamed products to tiers (#2372)
refs: https://github.com/TryGhost/Team/issues/1145

- this should allow us to remove the /products endpoint in v5

It avoids:

- `kg-product-card`, that really is meant to say product
- `product-cadence` on offers

Co-authored-by: Rishabh <zrishabhgarg@gmail.com>
2022-05-11 22:41:54 +05:30
Kevin Ansfield
e852c29699 Extracted PublishOptions class into separate file
no issue

- `PublishOptions` was exported from the `<EditorLabs::PublishManagement>` component as a convenience when development started but both have now grown in size and are easier to read as separate files
2022-05-11 17:51:53 +01:00
Kevin Ansfield
bea1ffe665 Updated copy for recipients option when post has already been emailed
refs https://github.com/TryGhost/Team/issues/1605

- added number and type of members/subscribers the post has been sent to
2022-05-11 17:45:22 +01:00
James Morris
2b69ec2cf3 Added in a basic community hover state
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 17:39:51 +01:00
Sanne de Vries
221d520d11 Updated copy for published and scheduled posts
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-11 17:09:22 +01:00
Kevin Ansfield
1c2ae5348d Fixed forced-error for email limit
refs f559170a39

- hangover from testing
2022-05-11 17:02:23 +01:00
Kevin Ansfield
f559170a39 Added email limit checks and email disabled messaging to publish flow
closes https://github.com/TryGhost/Team/issues/1584
refs https://github.com/TryGhost/Team/issues/1605

- added email limit check to PublishOptions setup
- moved email disabled messaging from the email recipients option to the publish type option
  - it was confusing to have the email publish type options disabled without any indication of why, with the message hidden within the closed email recipients option
2022-05-11 17:00:30 +01:00
Peter Zimon
bb2b8fae27 Fixed gridlines density on dashboard 2022-05-11 17:57:39 +02:00
James Morris
dc8a431e45 Fixed up the empty list states if something fails for What's New or Staff Picks
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 16:51:11 +01:00
Peter Zimon
a926b8fb39 Added rounded corner to Paid breakdown chart 2022-05-11 17:49:48 +02:00
Sanne de Vries
d239eb29ee Fixed broken calendar icon
No ref
2022-05-11 16:12:52 +01:00
James Morris
54e9c63a7f Adjusting the dropdown so it fits flush against the top header better
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 16:08:18 +01:00
James Morris
cd9ec81006 Trying out moving the date dropdown
no issue

- seeing if this feels better up above than it is when inside the anchor
2022-05-11 16:08:18 +01:00
Sanne de Vries
dc14b9943f Updated publishing flow copy
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-11 16:04:42 +01:00
James Morris
7e7c1e4bf5 Removed the unnecessary component code for the Community module in new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 15:48:55 +01:00
Simon Backx
f6259f1f63 Moved dashboard control panel to developer experiments 2022-05-11 16:29:58 +02:00
James Morris
07b3f26e08 Fixed z-indexing that messed with some dropdowns and fixed the extra long widths on others
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 14:32:55 +01:00
Kevin Ansfield
37aec66e83 Fixed linter error 2022-05-11 12:56:19 +01:00
Kevin Ansfield
627b6f259a Added error handling to publish flow confirm step
closes https://github.com/TryGhost/Team/issues/1555
closes https://github.com/TryGhost/Team/issues/1588

- added task to the confirm component's backing class so it can be wrapped in step-specific error handling
- added display of general/email error message above the confirm button
- fixed error state of the confirm button showing as green and having incorrect spacing due to the icon being hidden in CSS rather than not displayed
2022-05-11 12:48:31 +01:00
Peter Zimon
1fa86d8c0f Removed unused JS variable 2022-05-11 12:58:59 +02:00
Peter Zimon
d24ec03177 Updated Paid breakdown tooltip positioning 2022-05-11 12:50:05 +02:00
Peter Zimon
032e86c12e Fixed Paid breakdown chart bar thickness 2022-05-11 12:20:20 +02:00
Peter Zimon
c2b49028f1 Updated dashboard totals chart ticks
- set 30 days to show every other gridline
- set 90 days to show every 3rd gridline

Note that this required to add an extra day to the displayed number of days.
2022-05-11 12:16:31 +02:00
Simon Backx
2d4bbad094 Implemented newsletter limits
refs https://github.com/TryGhost/Team/issues/1583

- When adding a newsletter, check the limits (both via button and route)
- When unarchiving a newsletter, check the limits
- Bumped `@tryghost/limit-service` package, required to make limit checking work for newsletter
- Added the `getNewslettersCount` query to the `limit` service
2022-05-11 12:10:26 +02:00
James Morris
97553181ce Removed All Time from the graphs in the new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 11:06:07 +01:00
Kevin Ansfield
e87e564462 Fixed published posts count in publish flow
no issue

- the count fetch was including all posts rather than just published ones so it never matched the expected count
2022-05-11 10:37:32 +01:00
Kevin Ansfield
ebcf4c7c16 Added member count to publish flow newsletter dropdown
no issue

- it's useful to see an indication of how many overall members are subscribed to each newsletter when selecting which newsletter to send to
- added `?include=count.members` to the newsletter fetch query so the counts are available to show in the dropdown
2022-05-11 10:24:55 +01:00
Peter Zimon
6e3267315a Improved dashboard tooltip positioning 2022-05-11 10:51:46 +02:00
Kevin Ansfield
28919eb057 Fixed "Already sent" showing in publish options when email disabled in settings
refs 46f01c2d8f

- if you had previously had emails enabled and you had sent a post as an email, when disabling members/emails all email related UI was hidden except for the "Already sent as email" message when publishing which was confusing as there is no other indication anywhere about emails and no way to view it
- added `emailDisabledInSettings` getter to PublishOptions
  - used in `emailUnavailable` getter in place of a duplicate read of the settings
  - used in the `<PublishFlow::Options>` component to conditionally hide the "Already sent" message
2022-05-11 09:43:55 +01:00
Kevin Ansfield
46f01c2d8f Removed email publish options when email is disabled, added message if already emailed
no issue

- when email is unavailable (members/email disabled, already emailed, publishing a page) don't show any email options in the publish flow so there's no confusion and a cleaner options list
- if a post has already been emailed indicate that with a "Already sent as email" when only one newsletter exists or "Already sent to {newlsetter name}" when multiple exist
2022-05-11 09:33:32 +01:00
Kevin Ansfield
8652f16005 Fixed publish confirmation button text
no issue

- the button text would still say "Publish & send" when no members were selected
- changed from comparing `publishOptions.publishType` directly to using the `willPublish` and `willEmail` convenience getters so the button text better matches the action being taken
2022-05-11 09:33:32 +01:00
Peter Zimon
ce81b9c342 Fixed total charts tooltip offset 2022-05-11 10:30:15 +02:00
Peter Zimon
1310a092d1 Updated totals chart tooltip 2022-05-11 09:26:57 +02:00
Peter Zimon
fe3e8ee64d Updated Paid mix tooltips 2022-05-11 09:03:56 +02:00
Peter Zimon
6e7eeba94e Updated MRR chart tooltip 2022-05-11 08:29:44 +02:00
Peter Zimon
da3053b3ae Updated Paid breakdown tooltip 2022-05-11 07:54:36 +02:00
Sanne de Vries
e134e5b365 Updated publishing flow header
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-10 21:10:17 +01:00
Kevin Ansfield
cf3f872fa6 Added client-side validation check for post before opening publish/update flows
refs https://github.com/orgs/TryGhost/projects/59/views/20

- before the publish/update flow modals are opened, perform a `post.validate()` call, if it fails show the red error bar and don't open the modal
- shows validation errors early rather than being hidden until a save occurs at the end of the publish flow
2022-05-10 19:24:54 +01:00
James Morris
1c1dbc9310 Added a small right margin to the open rate bar graphs in new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 19:05:44 +01:00
James Morris
236f6589c2 Removed a ton of unnecessary files and refactored the MRR component to be consistent
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 18:54:41 +01:00
James Morris
c488ca4dc5 Fixed up a linting issue for the empty state for Paid Mix
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 18:43:08 +01:00
James Morris
8bf30b3a68 Basic improvements to the Paid Mix empty state
refs: https://github.com/TryGhost/Team/issues/1531

- still not ideal, but better than it was and now not showing as broken
2022-05-10 18:40:27 +01:00
Sanne de Vries
d364116948 Updated publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-10 17:57:48 +01:00
James Morris
cf3650ddcc Better styling for the new empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
9c98e2e094 Removed unneeded variables and functions based on pull request review
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
c0fd3e288b Added in a better responsive design to the new empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
53235a2c33 Added in the new copy for the empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
d6e98eca68 Fixed up linting errors for new empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
f9231afa2a Further refinements to the new empty state for 0 members in new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594

- this much more matches the style of the design
- it now covers the anchor and engagement charts
- has better fake data for all charts under the notice
- tweaked things for this in dark mode
2022-05-10 17:39:36 +01:00
James Morris
8af605babe Basic working empty state for the anchor chart when there are 0 members
refs: https://github.com/TryGhost/Team/issues/1594

- has new loading checks to see if there are 0 members
- has a blurred overlay box that works over the top of the anchor chart
- styles are still not perfect but work well enough for the mo
2022-05-10 17:39:36 +01:00
Simon Backx
c36a5bbaeb Fixed paidMembersByCadence always having keys
refs https://github.com/TryGhost/Team/issues/1601

When there is no data in the backend, no keys are added.
2022-05-10 18:06:24 +02:00
James Morris
917f17b7e6 Removed tick lines for All Time on totals chart and adjusted bar thickness depending on days selected for Paid Subscribers
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 16:42:12 +01:00
Simon Backx
2b4e80b3dd Rounded MRR in dashboard
refs https://github.com/TryGhost/Team/issues/1602

- Added `cents` option to ghPriceAmount helper.
- Removed cents from MRR in dashboard.
2022-05-10 17:35:51 +02:00
Daniel Lockyer
53c93f7fd7 Hide system info when running in hosted environments
refs https://github.com/TryGhost/Toolbox/issues/326

- we want to simplify the What's New screen to hide the fields that are
  irrelevant for users in hosted environments
- this should still show the database warning for self-hosters
2022-05-10 14:11:23 +01:00
Simon Backx
d11cf9e1c7 Added newsletter name in post scheduled tooltip
refs https://github.com/TryGhost/Team/issues/1576

This change was required to avoid showing 'all members' or 'all paid members', when it was in fact 'all paid subscribers of newsletter X'. The newsletter name is only shown when multiple newsletters are activated on a site.
2022-05-10 15:00:30 +02:00
Kevin Ansfield
59e7b720a2 Added <GhPostBookmark> and displayed on publish flow complete step
refs https://github.com/TryGhost/Team/issues/1598

- added `<GhPostBookmark>` card for displaying a bookmark card style representation of a post
  - updated designsandbox route to include it for easier styling without needing to constantly go through the publish flow to see changes whilst styling
- updated publish flow complete step to render a bookmark card if a post/page was published
- added `{{post-author-names}}` helper so the author name concatenation logic can be re-used across the posts list and bookmark component
2022-05-10 13:26:13 +01:00
Simon Backx
bf098cc730 Updated member counts for post newsletter
refs https://github.com/TryGhost/Team/issues/1576

- Recipient counts in scheduled post status at top of editor fixed for selected newsletter
- Added `fullRecipientFilter` getter on post model which includes the newsletter's recipientFilter
- Updated scheduled notification (used in old publishing flow or via preview)
2022-05-10 14:13:39 +02:00
Simon Backx
98e80cb6f8 Replaced newsletterId usage with newsletter
refs https://github.com/TryGhost/Team/issues/1569
refs https://github.com/TryGhost/Team/issues/1596
refs https://github.com/TryGhost/Team/issues/1576

- Removed some usages of post.newsletterId with post.newsletter
- Renamed newsletterId adapterOption from newsletterId to newsletter, in preparation of https://github.com/TryGhost/Team/issues/1596 (still sending newsletter_id)
- Removed newsletterId property of post model
2022-05-10 13:56:30 +02:00
Kevin Ansfield
a5fe1fa48c Updated publish complete step copy
refs https://github.com/TryGhost/Team/issues/1598

- pre-fetch post count when reaching the confirm step so it's available once save is complete
- updated copy on complete step to reflect the action that occurred, including the number of published posts when a post was published
- added `{{is-moment-today someDate}}` helper so we can switch between "today" and another date format
2022-05-10 12:51:05 +01:00
Kevin Ansfield
a1d26a575c Fixed flash of copy change when confirming an email-sending publish
no issue

- `@publishOptions.willEmail` is derived state that changes when the model status changes, this was causing the text to momentarily change when confirming because saving requires the post status to be changed from `draft` to `published/scheduled`
- added static `willPublish` and `willEmail` properties to the confirm step component's backing class that are set from the data passed in during construction so we don't end up with changing copy due to underlying model updates
2022-05-10 11:58:59 +01:00
Sanne de Vries
2e18aaaf2c Updated scheduled and published modals
Refs https://github.com/TryGhost/Team/issues/1597
2022-05-10 11:53:10 +01:00
Kevin Ansfield
967249ff6a Fully fixed flash of "draft" text when reverting to draft
refs 713e2b5ecc

- added a timeout to wait for the modal animation to finish before changing the post status and saving so we're not causing copy changes whilst the modal is still visible
2022-05-10 11:51:55 +01:00
Kevin Ansfield
607378580b Fixed email-only publish flow
no issue

- we were comparing the wrong `publishType` value
- we were accessing `this.willEmail` _after_ setting model properties that would change it's value so we grab the value before making any changes
2022-05-10 11:43:20 +01:00
Kevin Ansfield
b0038d71b6 Fixed linting error
refs 713e2b5ecc
2022-05-10 11:33:17 +01:00
Kevin Ansfield
f8084f69dc Fixed flash of "Save" button after save has completed
refs https://github.com/TryGhost/Team/issues/1597

- disabled automatic reset of the `<GhTaskButton>` used for saving so we don't have conflicting timeouts (button state auto reset is 2.5sec, display of save button before it's removed is 3sec)
2022-05-10 11:32:06 +01:00
Kevin Ansfield
713e2b5ecc Fixed flash of "Draft" when reverting a post to a draft
no issue

When reverting a post/page to a draft we were applying the model changes, saving, then closing the modal. This had the unwanted effect of updating the modal's copy whilst the save was in progress because it's all derived state and we're changing that state.

- changed revert button behaviour to instantly close the modal with a return value that lets the publish management know to run the revert task once the modal has closed
- added a popup notification to confirm successful revert
2022-05-10 11:22:46 +01:00
Simon Backx
23c1939515 Fixed newsletter used from post in email preview 2022-05-10 12:21:05 +02:00
Simon Backx
651f498f0b Removed usage of newsletterId in scheduled publishmenu 2022-05-10 12:16:38 +02:00
Simon Backx
95fa290fa8 Fixed button type on div causing button appearance in Safari
no issue

In Safari, the second dropdown looked a bit weird when you select 'publish only' because of type=button being used on a div.
2022-05-10 12:12:27 +02:00
Kevin Ansfield
e12ab83bed Fixed "Revert to draft" button
refs 756f5094b4

- `saveTask` was renamed to `publishTask` then repurposed as a general `saveTask` but the `revertToDraftTask` wasn't updated to reflect the rename
2022-05-10 10:19:29 +01:00
Kevin Ansfield
756f5094b4 Added "Save" button to editor for scheduled and published posts
refs https://github.com/TryGhost/Team/issues/1597

- added "Save" button to editor for scheduled and published posts when any edits have been made
- shows "Saving..." then "Saved" for 3 seconds before disappearing
  - replaces "Saving..." indicator shown in status bar on the left
- added `showIcon` argument to `<GhTaskButton>` so it can be used for text style buttons
- changed editor status behaviour to only show "Scheduled" by default with the full text shown on hover
2022-05-10 10:04:21 +01:00
Simon Backx
8a303fe411 Fixed paid visible on dashboard when stripe is not connected
refs https://ghost.slack.com/archives/C02G9E68C/p1652090614031099
2022-05-09 17:56:05 +02:00
James Morris
9c02f6a792 Updated What's New copy to be shorter and so doesn't so easily go to two lines
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-09 16:51:11 +01:00
Kevin Ansfield
e74b042d18 Fixed undefined member count for scheduled posts in publish update flow
no issue

- in the update flow we were always using `post.email.emailCount` but scheduled posts won't yet have a `post.email` record
- switched to showing a count of members based on the post's newsletter slug and `emailRecipientFilter`
2022-05-09 14:11:17 +01:00
Kevin Ansfield
2768dc74ad Fixed emails not being sent when using new publish flow
no issue

- `this.willEmail` was changed to include the post status as we only allow sending an email for draft posts but that meant the order of operations in the save task was wrong because we checked `willEmail` _after_ changing the status on a post meaning the newsletter/recipient filter query params were never attached when publishing
2022-05-09 14:11:17 +01:00
Matt Hanley
cae5adc6ed Switched Admin client to use avatars returned by the member API (#2373)
- Admin used a helper to generate Gravatar URLs for members
- This change switches to using the `avatar_image` returned by the Member API
- The helper predates the existence of `member.avatar_image`, and is no longer required
2022-05-09 13:29:45 +01:00
James Morris
0148f1deaa Added in the year to the date formats for anchor chart and tooltips for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-09 11:25:38 +01:00
James Morris
a972a3246b Fixed the Paid Mix alignement to be inline with Annual on new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-09 11:00:39 +01:00
Sanne de Vries
4a16cf74bc Updated publishing flow datepicker
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-09 10:53:44 +01:00
Kevin Ansfield
fc25bf5713 Added ability to set classes for parts of <GhDateTimePicker>
no issue

- adds additional class arguments:
  - `@datePickerTriggerClass`
  - `@datePickerClass`
  - `@timeInputClass`
2022-05-09 10:31:14 +01:00
Sanne de Vries
7356933d12 Made copy changes to publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-06 17:10:08 +01:00
Kevin Ansfield
f9ce41620a Updated confirm publish button text
no issue

- button text changed to include the post type and time of publish
- the button text has become more complex than a static string so the logic was moved into a getter on the confirm component backing class
2022-05-06 15:12:38 +01:00
Sanne de Vries
a4c1f2f7e0 Added animation to publish confirmation button
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-06 14:56:11 +01:00
Sanne de Vries
f4405927ee Updated publish settings forms
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-06 13:54:15 +01:00
Simon Backx
dd901c6790 Fixed paid subscribers chart reloading when toggling fake data
refs https://ghost.slack.com/archives/C02G9E68C/p1651773627838629?thread_ts=1651771893.729649&cid=C02G9E68C

The chart was not reloading when the fake data toggle was changed. This code is only used when using mocked data. So if you loaded the page without mocked data, everything was working fine and the chart did show the right data. If you then enabled fake data, the chart just won’t reload and would keep showing the initial data (so it wasn’t always showing mocked data, just the initial data).
2022-05-06 14:35:13 +02:00
Simon Backx
089686132c Improved newsletter dragging
refs https://github.com/TryGhost/Team/issues/1582

- The draggable object container was too small and didn't include the drag handle
- Increased the size of the draggable object to include the drag handle by adding a container div
- The drag handle now doesn't require you to hover the card before becoming visible
- Fixed a bug where some newsletters would show the drag handle even when they were not hovered when you were dragging a different newsletter. When dragging, now only the dragged newsletter will show the drag handle, so it is more clear where you are dragging to.
- Fixed fading animation of the drag handle (visibilty animation needed step-start and step-end added)
- Fixed jumpiness when dragging or moving the last newsletter card, due to animated margin updates after a drag
- Fixed padding issue for newsletter cards on smaller devices (padding did increase) breaking the animation
2022-05-06 14:09:43 +02:00
James Morris
9af743ff3f Fixed the spacing issue with Subscribe button on new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-06 11:50:14 +01:00
Kevin Ansfield
b39fc7dba5 Changed recipient wording in publish flow to be more specific
no issue

- highlight all/free/paid/specific in the recipient overview wording in the options and confirmation stages of the publish flow
- fix "change settings" button on confirm step closing instead of going back to the options stage
2022-05-06 10:23:37 +01:00
Sanne de Vries
416976368b Updates publish settings
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-06 08:06:45 +01:00
Kevin Ansfield
bee7760815 Added default recipient settings handling to publishing flow
closes https://github.com/TryGhost/Team/issues/1593

- swapped `recipientFilter` for `selectedRecipientFilter` tracked property with a default value of `undefined`
- added `defaultRecipientFilter` getter that uses settings and post attributes to return a filter string that matches the defined default recipient settings
- added `recipientFilter` getter to replace the previous tracked property, this checks `selectedRecipientFilter` being `undefined` and will return `defaultRecipientFilter` instead
  - changing the filter updates `selectedRecipientFilter` acting as an override of the default
  - keeping `recipientFilter` naming means the options part of the flow requires no changes
2022-05-05 18:18:54 +01:00
James Morris
32ce367ee1 Adjusted some of the footer hover links for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-05 18:17:07 +01:00
Simon Backx
26e441d88d Updated members recipient selector counts
refs https://github.com/TryGhost/Team/issues/1576
refs https://github.com/TryGhost/Team/issues/1592

Improved code to use the members count fetcher in the recipient selector.
2022-05-05 18:09:41 +02:00
Simon Backx
a103184c6a Updated newsletter recipientFilter to use slugs instead of instead
refs https://github.com/TryGhost/Team/issues/1576
refs https://ghost.slack.com/archives/C02G9E68C/p1651763933403669?thread_ts=1651763878.116549&cid=C02G9E68C
2022-05-05 17:37:34 +02:00
Simon Backx
1f5f9645e6 Updated members count to use selected newsletter when publishing
refs https://github.com/TryGhost/Team/issues/1576

- Passes the selected newsletter to the recipient selector
- Added a `recipientFilter` getter to the newsletter model to make changes easier in the future
- Updates the `fullRecipientFilter` in the new publishing flow to use the newsletter's recipientFilter
- Already takes future paid only newsletters into account
- The counts in the status message after publishing is not updated yet (requires https://github.com/TryGhost/Team/issues/1569)
- The counts in the scheduled notification is not updated yet (requires https://github.com/TryGhost/Team/issues/1569)
2022-05-05 17:17:23 +02:00
Kevin Ansfield
03ba0da1a7 Fixed email wording showing on update-flow incorrectly
refs 8fb0d6ebb2

- logic for showing the "sent to x" wording on the published update flow was incorrect meaning it was showing for published posts/pages when nothing had been emailed
2022-05-05 16:08:45 +01:00
Kevin Ansfield
c6fdfab454 Fixed post/page wording on "View published x on site" button 2022-05-05 16:05:20 +01:00
Kevin Ansfield
8fb0d6ebb2 Added scheduled and published states to new publish flow
closes https://github.com/TryGhost/Team/issues/1589
closes https://github.com/TryGhost/Team/issues/1590

When a post is already scheduled or published the "Publish" button changes to "Update" and when clicked shows details about the last publish / upcoming schedule along with buttons to save any changes or revert to a draft.

- added separate `update-flow` modal with the save/revert options to keep the main `publish-flow` cleaner and focused just on the draft->publish flow
2022-05-05 16:02:58 +01:00
James Morris
27cb5a9fec More responsive tweaks so new Dashboard works on mobile
refs: https://github.com/TryGhost/Team/issues/1531

- better resource breakpoints at mobile widths
- also fixed the active mobile button in mobile as it was white in dark mode
2022-05-05 15:53:49 +01:00
James Morris
0fda84d71e Added in a more responsive new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531

- any triple column collapses down to one and sits underneath each other
- the mini charts' legends disappear and they also then go full width underneath each other
- the resources module loses it's thumbnail at smaller widths
- the 2/3 resources column goes to 1/2
- everything worth having has truncation that is only seen at very small sizes
2022-05-05 15:16:03 +01:00
Sanne de Vries
a01ae97801 Updated confirmation and completed pages of publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-05 14:26:06 +01:00
Simon Backx
19249bdae5 Renamed members-email-labs to newsletters and removed unused files
no issue

We still had some old components and templates from the `members-email` settings that were only were used when the (now GA) `multipleNewsletters` flag was disabled. I’ve removed them and renamed all routes and components from `members-email` and `members-email-labs` to just `newsletters` because it was sometimes hard to understand if a given components was still used or not when fixing issues.
2022-05-05 13:37:53 +02:00
Kevin Ansfield
67505f838c Added first pass of recipient options to new publish flow
closes https://github.com/TryGhost/Team/issues/1585

- adds newsletter select, free/paid checkboxes, and specific label select to the email recipients area in publish flow
- updated `PublishOptions`
  - `willEmail` getter now takes into account the recipient filter so when free+paid+specific are all unchecked the flow corresponds to email not being sent
  - save task passes through the real recipient filter
  - added `fullRecipientFilter` for use in count fetchers so the selected newsletter is taken into account whilst we use `recipientFilter` as the main filter value
- fixed issues with dropdowns being cut off
  - `{{liquid-if}}` uses `overflow: hidden` to make it's animation work, this means any popups that are larger than the expanded option size are cut off
  - switched away from rendering the selects inline so they aren't limited by parent container size
  - fixed `z-index` issues to they appear on top of the modal
2022-05-05 11:18:49 +01:00
Kevin Ansfield
7c4674507e Switched members-count-fetcher to use members-count-cache
no issue

In the new publish flow we use `{{members-count-fetcher}}` to show member counts as needed in the template without needing to worry about manually fetching counts in the backing classes. However, when switching between states in the flow the count would be re-requested resulting in some glitchy looking async count rendering. By changing `{{members-count-fetcher}}` to use our `members-count-cache` service internally we reduce the likelihood of an async count being triggered when switching between publish flow states.

- updated `members-count-cache` service methods to work with filter strings or full query objects
- switched `members-count-fetcher` resource to use `members-count-cache` in place of directly querying the store
2022-05-05 11:18:49 +01:00
James Morris
1fc436f3e2 Small hack fix to totals chart to keep responsiveness for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531

- we've had to use a 99% width hack to ensure ChartJS is responsive
- this introduces a small negative margin to fix the container whilst keeping hack
2022-05-05 11:11:55 +01:00
Simon Backx
93632349b9 Fixed newsletter includes when adding or editing (#2365)
refs https://github.com/TryGhost/Team/issues/1571

- When creating a new newsletter, the counts were not loaded
- When updating a newsletter, the counts were not updated
- Requires https://github.com/TryGhost/Ghost/pull/14696
2022-05-05 11:31:45 +02:00
Fabien 'egg' O'Carroll
fe4d2aeb9c Removed usage of hasActiveStripeSubscriptions API (#2364)
refs https://github.com/TryGhost/Team/issues/1147

This endpoint is deprecated
2022-05-04 17:24:56 +01:00
James Morris
983d37253a Changed new Dashboard to default to 30 days rather than 7
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-04 17:02:08 +01:00
James Morris
d656258273 Fixed the dark mode border for What's New and changed text case for Staff Picks
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-04 16:56:54 +01:00
James Morris
516a7c3701 Recent post and member activity table updates for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531

- added in published dates if newsletters not enabled
- also tried out a state to remove engagement if members not enabled
2022-05-04 16:45:42 +01:00
Kevin Ansfield
6a28de85b8 Fixed editor error handling
refs adeef741fb

- there's no local `error()` action, we need to use `this.send()` so the route-level error handler is triggered
2022-05-04 16:30:59 +01:00
Simon Backx
bb4b3a7eec Handled duplicate newsletter name errors correctly
refs https://github.com/TryGhost/Team/issues/1564

- Shows the error inline
- Depends on https://github.com/TryGhost/Ghost/pull/14694
2022-05-04 15:58:06 +02:00
James Morris
ae1010ea03 Adding in more hover states and cleaning up what's there
refs: https://github.com/TryGhost/Team/issues/1531

- fixed up the hover states for staff picks and what's new
- matched padding and text baseline alignment for both boxes
- added in some truncation to stop breakage
2022-05-04 14:04:49 +01:00
James Morris
692c7619ef Tweaks to recents box for new Dashboard based on feedback
refs: https://github.com/TryGhost/Team/issues/1531

- made whole row clickable
- added in hover state based on posts table style
- added in event icons for activity
- increased row spacing
- other subtle tweaks based on feedback
2022-05-04 13:29:55 +01:00
Kevin Ansfield
adeef741fb Added first iteration of saving to new publish flow
refs https://github.com/TryGhost/Team/issues/1542

- extracted before/after save routines in the editor controller into separate actions
  - allows saving to occur in the publish flow without it needing any editor-specific knowledge
  - allows for easier cleanup of email related logic from the editor save tasks later on
- added `saveTask` to `PublishOptions`
  - applies the selected options to the post model where they correspond to model attributes and keeps the previous values in memory so the changes can be undone on failure - this keeps the local model state in sync because if a publish fails we want the editor to continue showing the draft state, non-scheduled publish time, and not have an unexpected email-only state
  - saves the post model directly passing `adapterOptions` so the save request query params match the chosen publish options
- added a `saveTask` to the `<PublishManagement>` component
  - passed through to the `publish-flow` modal and is triggered by the confirm button on the confirmation screen
  - runs the before/afterSave arguments passed in from the editor
  - runs the `saveTask` on `PublishOptions` which handles everything needed to change status and send emails
  - polls the post after saving to wait for the attached email to switch to submitted/failed which lets us show a failure message and retry button as required (message + retry not yet implemented)
- adds "complete" state to publish flow once save has finished
  - confirms what just happened based on saved post data rather than chosen publish options
  - has a link to the view the post
2022-05-04 10:30:45 +01:00
Simon Backx
6adecb5db1 Removed newsletter name from activity feed if no multiple newsletters
refs https://github.com/TryGhost/Team/issues/1563

- Check if we have multiple newsletters in the members-events-fetcher
- Pass the resulting value to the `parse-member-event` helper
- Pass the value to the activity feed table and table-row components
2022-05-04 10:23:32 +02:00
Peter Zimon
300cd79d3e Updated Dashboard spacings 2022-05-03 17:08:30 +02:00
Peter Zimon
3996455aa1 Updated minicharts positions 2022-05-03 16:34:17 +02:00
Peter Zimon
d0a77a48ba Dashboard typography cleanup 2022-05-03 16:26:05 +02:00
Simon Backx
a3218b0a2b Improved newsletter activity feed copy
refs https://github.com/TryGhost/Team/issues/1570
refs https://ghost.slack.com/archives/C02G9E68C/p1651581277636729?thread_ts=1651569897.474819&cid=C02G9E68C

Activity feed now shows 'Subscribed to newsletter – Weekly newsletter" text
2022-05-03 14:37:45 +02:00
Simon Backx
5c6316f051 Fixed linting error 2022-05-03 14:25:50 +02:00
Simon Backx
da3b3850f5 Added the newsletter name to the activity feed
refs https://github.com/TryGhost/Team/issues/1563

- When a member (un)subscribes to a specific newsletter, we should add the name of the newsletter.
- Replaced CSS lowercase/first uppercase transform with a new HBS helper so we can maintain the caps in the newsletter names.
- Copy is still WIP, refs https://ghost.slack.com/archives/C02G9E68C/p1651569897474819
2022-05-03 14:24:18 +02:00
Fabien 'egg' O'Carroll
94ae33858d Fixed mergeDates zero and one item in list (#2360)
The exit clause of the mergeDates function should return an array rather
than an object, to ensure that an array is always returned. Because we
are using the concat method when recursing, this continues to work for
longer lists.

We want to return an empty array if list is empty, this protects against
returning [undefined]
2022-05-03 12:01:23 +01:00
Peter Zimon
c2102477a7 Updated Resources design on Dashboard 2022-05-03 12:21:30 +02:00
Simon Backx
21fd205073 Fixed newsletters limited to 15 items
refs https://github.com/TryGhost/Team/issues/1565

If you had more than 15 newsletters we hit default pagination in the API and Admin didn't show any more.
2022-05-03 09:01:41 +02:00
Simon Backx
7ad8f63b22 Fixed linting errors and removed debug log 2022-05-02 10:52:27 +02:00
Simon Backx
fdf425d95a Added dynamic filter for resources
refs https://github.com/TryGhost/Team/issues/1572

- Depending on the state of the site, other resources are shown.
- Also cleaned up error catching.
2022-05-02 10:45:15 +02:00
Simon Backx
625635c6ed Added tag filter to newsletter resources module
refs https://github.com/TryGhost/Team/issues/1572

When fetching the newsletters, other resources were included. Now we filter
on the newsletter tag so we only include newsletter and not normal resources.
2022-05-02 10:22:01 +02:00
Sanne de Vries
814f9043aa Updated publish settings page
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-02 08:50:48 +01:00
James Morris
8c692b1d73 Fixed linting bugs and tweaked mini chart starting heights
refs: https://github.com/TryGhost/Team/issues/1531
2022-04-28 17:55:36 +01:00
James Morris
fcd11fe471 Fixed the resources section to pull the latest
refs: https://github.com/TryGhost/Team/issues/1531
2022-04-28 17:16:40 +01:00
Sanne de Vries
88e10f2305 Updated publish settings page
Refs https://github.com/TryGhost/Team/issues/1544
2022-04-28 16:46:58 +01:00
James Morris
059ad77939 Tons of tweaks based on feedback for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-04-28 16:40:27 +01:00
Peter Zimon
f81801549b Updated copy for Dashboard resources 2022-04-28 17:33:26 +02:00
Peter Zimon
5c71448575 Udpated resources section on dashboard 2022-04-28 17:18:17 +02:00
Peter Zimon
3b3140a002 Updated resources section 2022-04-28 16:48:22 +02:00
Kevin Ansfield
f28320abae Added confirmation step to new publish flow
refs https://github.com/TryGhost/Team/issues/1542

- added `willPublish` and `willEmail` convenience getters to `PublishOptions`
- added confirmation step that is switched to when clicking the Continue button in the publish flow
- separated options and confirmation steps into discrete components used by the `publish-flow` modal
2022-04-28 15:36:01 +01:00
Kevin Ansfield
357bbf56cf Fixed PublishOptions newsletter setup
refs https://github.com/TryGhost/Team/issues/1542

- assigning the result of `peekAll('newsletter').filter()` to `newsletters` doesn't work because the live peekAll array gets transformed to a static array so it was always blank
  - assigned result of `peekAll('newsletter')` to `allNewsletters` and replaced `newsletters` property with a getter that uses `allNewsletters` to return an array of filtered and sorted newsletters
- fixed incorrect sort order for `defaultNewsletter`
- assigned default newsletter to tracked `newsletter` property as part of setup once newsletters have been fetched
- updated publish-flow template to show a real count and newsletter name
2022-04-28 15:36:01 +01:00
Daniel Lockyer
7ea5bdcdf8 Fixed success button state for POST ../email_previews/..
refs https://github.com/TryGhost/Toolbox/issues/308

- this endpoint is being switched to return a 204 with no body upon success
- if we don't change this code, the button will get stuck in a red Retry
  state because it reads the `undefined` body and thinks it's an error
- this commit makes sure we return true if the POST is successful
2022-04-28 15:33:10 +01:00
Daniel Lockyer
e1f05ed126 Renamed reset_all_passwords Authentication API endpoint to /global_password_reset
refs https://github.com/TryGhost/Toolbox/issues/308

- our API has a pattern of using nouns and not verbs for the endpoint
  names, so this changes the endpoint for v5
2022-04-28 15:33:09 +01:00
Daniel Lockyer
1068070bd2 Renamed passwordreset body object to password_reset
refs https://github.com/TryGhost/Toolbox/issues/308

- I've just renamed the endpoint to `password_reset` but we might as
  well change the body object to make the change in v5 too
2022-04-28 15:33:09 +01:00
Daniel Lockyer
5aa5770791 Renamed /passwordreset authentication API endpoint to /password_reset
refs https://github.com/TryGhost/Toolbox/issues/308

- we have a pattern of splitting words via an underscore in the API, so
  v5 splits apart `passwordreset` to `password_reset`
- I'll follow up whether we want to fixup the `passwordreset` body
  object
2022-04-28 15:33:09 +01:00
Daniel Lockyer
bc6ce7a2dd Renamed /email_preview endpoint to /email_previews
refs https://github.com/TryGhost/Toolbox/issues/308

- we have a pattern of using plurals for endpoints but `email_preview`
  was implemented without it
- in v5, we're fixing that so we need to update Admin to take that into
  account
2022-04-28 15:33:09 +01:00
Sanne de Vries
b23dc541c5 Fixed tooltip overflowing in edit-newsletter modal 2022-04-28 14:47:47 +01:00
Peter Zimon
b825096213 Fixed Activity feed header 2022-04-28 15:28:56 +02:00
Sanne de Vries
d3ca3eb47c Hid subscriber and post count behind multiple-newsletter-UI flag 2022-04-28 13:44:44 +01:00
Sanne de Vries
699e977a34 Fixed email footer textarea overflowing in newsletter modal
No issue
2022-04-28 13:40:22 +01:00
Simon Backx
d25b94fb77 Fixed sender name and email in email preview link
refs https://github.com/TryGhost/Team/issues/1568

Sender name and email of newsletter was not used in the preview.
2022-04-28 12:01:25 +02:00
Simon Backx
2a5fe4b7db Fixed email preview sender name and email
refs https://github.com/TryGhost/Team/issues/1568

Email and sender name were not fetched from the default newsletter
2022-04-28 11:52:42 +02:00
Simon Backx
9b87b4c40a Added basic newsletter creation test
refs https://github.com/TryGhost/Team/issues/1477

- Very basic test only
- Includes some extra test attributes in the components
- Commented out a test that was not yet fininished
2022-04-28 10:50:27 +02:00
Peter Zimon
fb5f263ace Email settings design update (#2359)
Updated Email settings and Portal settings design to make it more scalable and more consistent with the rest of the Admin.
2022-04-28 10:24:12 +02:00
Kevin Ansfield
43d417858a Switched publish flow dropdowns to expanding blocks and added publish time options
refs https://github.com/TryGhost/Team/issues/1542

- moved publish-flow modal into `components/editor-labs/modals/publish-flow` as we have enough editor-related components to keep them in one place
- updated publish flow design to use expanding blocks in place of dropdowns
  - added `openSection` property in publish-flow modal and associated action for toggling sections
  - moved "publish at" option into a separate component to keep publish-flow modal cleaner (keeps option-specific actions out of the main modal component)
  - used `{{liquid-if}}` to animate the expanding blocks
- added schedule time properties to `PublishOptions`
  - kept "is scheduled" and "scheduled at" separate so it's possible to keep the selected schedule time across selecting/deselecting the option to schedule
  - ensures schedule date is kept to the minimum 5-minute in the future across option changes
  - updated publish-management to reset the scheduled option to "Right now" when the publish-flow modal is opened if a schedule time was previously set but is now in the past
2022-04-27 18:21:01 +01:00
James Morris
38a26e8760 Added in basic loading states for charts and some layout and copy tweaks
refs: https://github.com/TryGhost/Team/issues/1531

- charts now have basic working loading states, could be improved though
- trying out staff picks description and layout tweaks
- lots of small design tweaks based on feedback
2022-04-27 17:25:46 +01:00
James Morris
ef4321d707 Fixed the gradient for MRR for new Dashboard in light mode
refs: https://github.com/TryGhost/Team/issues/1531
2022-04-27 15:38:58 +01:00
Fabien 'egg' O'Carroll
b0a875f733 Wired up subscription stats api (#2350)
refs https://github.com/TryGhost/Team/issues/1512

Adds the new endpoint `/stats/subscriptions/` which provides data for
the paid mix and paid breakdown charts.

Made the filledMissingDates function more generic by passing in a
`copyData` function which is used to populate a date from the previous
days data, if the data for that date is missing.
2022-04-27 15:11:01 +01:00
James Morris
e5d5e359d7 Fixed layout bugs with new dashboard charts
refs: https://github.com/TryGhost/Team/issues/1531

- investigated how to make the layout not break on resize
- using a width 99% hack to make chartjs react properly
- redid the markup for the minicharts for more stable loading
- added in a subtle gradient for the mrr minichart
2022-04-27 14:40:44 +01:00
Sanne de Vries
ccd722a5f7 Updated disabled newsletter dropdown in scheduled state of publish menu 2022-04-27 11:16:39 +01:00
Peter Zimon
7392457fc5 Deleted newsletter confirmation modal 2022-04-27 11:56:30 +02:00
Kevin Ansfield
7099e9e0b6 re-organised newsletter modal components 2022-04-27 11:52:17 +02:00
Kevin Ansfield
c4ad61ac0f Added disabled newsletter dropdown to scheduled state of publish menu (#2357)
no issue

If you scheduled a post to a specific newsletter it was no longer visible in the scheduled state of the publish menu making it difficult to know the behaviour when coming back to a scheduled post.

- duplicated the newsletter dropdown from the draft to the scheduled state components and disabled it the same as the other recipient options
- added temporary workaround for missing newsletter embed for the posts endpoint in the API
  - adds `newsletterId` attribute to the post model
  - uses `post.newsletterId` to find the matching newsletter model from the available newsletters list
2022-04-27 10:49:55 +01:00
Kevin Ansfield
404d3c44cf Switched to a minimal form when creating a newsletter (#2356)
no issue

The full edit newsletter form with all the settings, design options, and preview felt quite overwhelming when the only piece of data that's required to create a newsletter is the name.

- re-organised the newsletter modal components by renaming `modals/edit-newlsetter` to `modals/newsletters` to better represent the full suite of modals that are used in newsletter management
- added a `modals/newsletters/new` component containing a minimal form with name/description/opt-in-existing fields
- switched the `new-newsletter` route to open the new modal rather than the previous dual-purpose edit modal
- moved message about newsletter creation into the create modal and dropped the separate create confirmation modal
- dropped unnecessary unsaved-changes confirmation
- removed the now-unused opt-in-existing behaviour from the edit newsletter modal

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2022-04-27 10:36:43 +01:00
Sanne de Vries
76ec5bef46 Fixed linter error 2022-04-27 10:17:16 +01:00
Sanne de Vries
75a51d6a8f Updated publish settings page design
Refs https://github.com/TryGhost/Team/issues/1544
2022-04-27 10:08:40 +01:00
James Morris
a5de8c76d6 Working on custom tooltips for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1534
2022-04-26 18:57:01 +01:00
Sanne de Vries
8fc797609d Updated newsletter dropdown in publish-menu
Refs https://www.notion.so/ghost/Pre-5-0-V1-multiple-newsletter-release-49fa1b62b8e840e29dca32d79ef201f5#952519fa03de408ca6f2ab9a4c754daa
2022-04-26 17:53:52 +01:00
James Morris
118aae2820 Bringing mini charts up to the right and other style tweaks
refs: https://github.com/TryGhost/Team/issues/1531
2022-04-26 14:52:55 +01:00
Peter Zimon
ac23f3cdae Email design screen cleanup 2022-04-26 13:10:16 +01:00
Rishabh
8dd371f1e8 Added post and subscriber count to newsletters
- updates newsletter management to show count of posts and members for a newsletter
2022-04-26 13:10:16 +01:00
Rishabh
c052ab1334 Added default newsletters for new member via Admin
refs https://github.com/TryGhost/Team/issues/1469

- default newsletters were set for new members added on members list except "add yourself" feature
- updates default newsletters for new member added via "Add yourself" button
2022-04-26 13:10:16 +01:00
Rishabh Garg
c15711434f Updated route for newsletter settings (#2353)
- updates newsletter settings route to `/settings/newsletters` for GA
2022-04-26 13:10:16 +01:00
Rishabh
6344344551 Updated newsletter management heading
- without the multiple newsletter UI flag, a site can have only one newsletter
- updates the heading for newsletter management UI to singular in that case
2022-04-26 13:10:16 +01:00
Rishabh
57b8a83880 Wired member newsletter subscription to existing toggle
refs https://github.com/TryGhost/Team/issues/1554

With multiple newsletters, the subscribed property on a member is replaced by newsletter(s) [] which defines member's subscription instead. This change -

- updates the existing subscription toggle for member on detail screen to work with new backend
- shows the new multiple newsletter subscription UI only if site has more than 1 newsletters
2022-04-26 13:10:16 +01:00
Simon Backx
384c461484 Updated countString formatting in members-count-cache
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
0b45de28be Updated subscriber count used in dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
78034d58b5 Updated counts used in default recipients selection in settings
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
f62bb6e8f2 Updated recipient counts in scheduled post status at top of editor
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
18f4748e8b Fixed tests partially for updated member counts
no issue

Also moves some reused test methods to the test helpers folder (wasn't able to move it to the fixtures because too many tests were failing):
- enableNewsletters helper
- enableStripe helper
- enableMailgun helper
2022-04-26 13:10:16 +01:00
Simon Backx
04aff7f51b Removed unused memberCount property passed to GhPublishmenu
refs https://github.com/TryGhost/Team/issues/1538

The memberCount property was not used, so I removed all related code and fetch.
2022-04-26 13:10:16 +01:00
Simon Backx
1beadb5304 Updated counts in (re)schedule notification
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
38bc4705cd Updated subscribed member count in publish menu used for enabling/disabling email UI
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
968af15235 Updated recipient count in publish confirmation
refs https://github.com/TryGhost/Team/issues/1538
2022-04-26 13:10:16 +01:00
Simon Backx
bcb8585a9b Updated free / paid members counts in recipient selection UI
refs https://github.com/TryGhost/Team/issues/1538

These counts now use the newsletter relation of members instead of the subscribed property.
2022-04-26 13:10:16 +01:00
Sanne de Vries
1bef35c9a8 Updated publish settings page
Refs https://github.com/TryGhost/Team/issues/1544
2022-04-26 12:07:46 +01:00
James Morris
a46d01ca5f Implemented a more fleshed out resources section for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1556

- working implementation of all the parts of the dashboard
- now includes the what's new section again
- has dynamic, yet basic, newsletters
2022-04-26 11:33:34 +01:00
Kevin Ansfield
93fa048a62 Added rough version of publish type dropdown
refs https://github.com/TryGhost/Team/issues/1542

- wired up a basic dropdown with radio buttons for publish type ready for initial behaviour and styling assessment
2022-04-25 11:22:50 +01:00
Kevin Ansfield
2be1673106 Added initial "publishOptions" setup
refs https://github.com/TryGhost/Team/issues/1542

- adds a `PublishOptions` class
  - an instance of this class provides everything the UI needs to display and set the publish options relevant to the current post object and overall system state
  - the `publish-flow` modal is passed a `PublishOptions` instance when it opens
  - as part of the constructor it triggers a background load of any additional data it requires to control available options such as member counts, email limits, and newsletters
- adds a `{{publish-options}}` resource
  - sets up and returns `PublishOptions` instance
  - passes through service dependencies which are not available directly in the `PublishOptions` class as it's a custom native class outside of Ember's DI management
  -  used to ensure we can get a clean `PublishOptions` instance any time the passed in `post` object is replaced meaning we don't have to rely on observers and manual teardown/setup
- updated `<PublishManagement>` component
  - sets up `publishOptions` property using `@use` and the `{{publish-options}}` resource so reactivity for changing post objects is handled automatically
  - uses the `publishOptions.isLoading` property to disable the publish flow trigger button until all of the data required to manage the flow is available
- updated `publish-flow` modal to use some of the initially available `publishOptions` data
2022-04-22 17:56:49 +01:00
James Morris
bfb02d4458 Added in a rudimentary resources box with staff picks at bottom
refs: https://github.com/TryGhost/Team/issues/1531

- added in a multi resources box that spans whole width that includes dynamic staff picks
- various other tweaks to styles
2022-04-22 17:47:48 +01:00
James Morris
3cb7d657b5 Moved the anchor chart select for Total/Paid/Free to the title
refs: https://github.com/TryGhost/Team/issues/1548

- this moves from a secondary dropdown to it being the main title one
- includes a few style fixes including fixing resources box in dark mode
2022-04-22 16:27:27 +01:00
James Morris
84873964b1 Fixed bug with Engagement chart not show paid options
refs: https://github.com/TryGhost/Team/issues/1531
2022-04-22 15:46:53 +01:00
James Morris
2f0a0faba4 Removed the need for CSS Grid as the layout is now simpler
refs: https://github.com/TryGhost/Team/issues/1531

- css grid was good when the layout was more complex but it's less needed now
- tried out some subtle gradients for the resource box
- tidied and cleaned up some css that wasn't needed anymore
2022-04-22 15:27:49 +01:00
James Morris
53a393f3e1 Adjustments to tooltips for all charts in new dashboard so more visually pleasing
refs: https://github.com/TryGhost/Team/issues/1547

- added padding and margins to all charts so tooltips don't clip
2022-04-22 14:49:03 +01:00
James Morris
fe02e77bd6 Fixed up linting issues with previous commit for Paid Mix
refs: https://github.com/TryGhost/Team/issues/1547
2022-04-22 14:13:33 +01:00
James Morris
39efe84738 Converted the Paid Mix over to a stacked horizontal bar chart
refs: https://github.com/TryGhost/Team/issues/1547

- moved to horizontal bar chart
- made the tooltips work differently for this
- added in a simple legend for the cadence chart
- style issues remain but wanted to get functionality in there first
2022-04-22 14:04:58 +01:00
James Morris
58daafdef4 Further layout tweaks for new Dashboard (#2345)
* Subtle tweaks to the recent posts

refs: https://github.com/TryGhost/Team/issues/1531

* Combining Recent Posts and Members Activity together and other layout tweaks

refs: https://github.com/TryGhost/Team/issues/1531

- attempting to combine recent posts and members activity together
- various layout tweaks to make this work better
- tons of tiny style tweaks
2022-04-22 11:42:51 +01:00
Sanne de Vries
1b2bcbb0fa Updated back button on publish settings page
Refs https://github.com/TryGhost/Team/issues/1544
2022-04-22 10:33:59 +01:00
Sanne de Vries
407c7649f1 Fixed copy in newsletter creation confirmation modal
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-22 09:06:06 +01:00
Sanne de Vries
e749918427 Updated newsletter creation confirmation copy
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-22 08:51:21 +01:00
Rishabh
1b1a52dbea Added newsletter creation UI behind separate flag
Enables splitting of multiple newsletters backend and ability to add newsletters behind different flags. This allows release and testing of all the new backend behavior for multiple newsletters to work with the default newsletter, and later allow sites to create multiple newsletters.
2022-04-22 12:44:42 +05:30
Rishabh
2c122c7fa4 Added multiple newsletters UI feature flag 2022-04-22 12:42:03 +05:30
Sanne de Vries
7742303802 Updated publish settings page
Refs https://github.com/TryGhost/Team/issues/1544
2022-04-21 16:21:37 +01:00
Sanne de Vries
2464675e4b Updated new publish settings page
Refs https://github.com/TryGhost/Team/issues/1544
2022-04-21 15:51:06 +01:00
Kevin Ansfield
14e2c59335 Fixed error from backdrop click handler for modals without options
refs 5d839a4725

- `top.options` is not guaranteed to exist, put optional chaining in place so we aren't attempting to read `ignoreBackdropClick` from `undefined`
2022-04-21 11:41:45 +01:00
Kevin Ansfield
2f849c431f Fixed newsletter list sometimes showing no newsletters
no issue

- depending on when the newsletter settings route is accessed we would sometimes show an empty newsletter list
- the problem stems from the use of a non-reactive fixed list of displayed newsletters where we manually update the list when we know the list should change. On initial load we were using `await store.findAll('newsletter')` then updating the displayed list, however the default behaviour for `store.findAll()` is to immediately return a live array - this doesn't work for our use-case because we'd then potentially update our displayed list from incomplete data
- added the `{reload: true}` option to the `findAll()` call to force a wait for the API request to finish before updating the displayed list of newsletters
2022-04-21 11:33:52 +01:00
Kevin Ansfield
5d839a4725 Added Ctrl/Cmd+Shift+P shortcut for starting publish flow
refs https://github.com/TryGhost/Team/issues/1542

With the old publish menu flow the `Ctrl/Cmd+Shift+P` would immediately publish without showing any of the publish options which isn't ideal. For the redesign we'd like to try showing the publish flow modal instead.

- added key handler for the shortcut to the publish-flow triggering button
- added `ignoreBackdropClick` option to the publish flow modal and support for it in our modal backdrop click handler
  - the shortcut simulates a click on the button which when the modal is open equates to a backdrop click meaning repeated presses of the Cmd+Shift+P shortcut resulted in glitchy modal open/close behaviour
2022-04-21 11:33:52 +01:00
Sanne de Vries
b5dd98b62f Updated edit newsletter modal copy
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-21 11:23:50 +01:00
Sanne de Vries
3764882e5a Updated copy for archive and reactivate newsletter modals
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-21 11:20:29 +01:00
Kevin Ansfield
8ca2c6935a Added static mockup of basic publish flow
refs https://github.com/TryGhost/Team/issues/1542

- adds `<EditorLabs::PublishManagement>` component that displays the relevant button for triggering publishing flows and will eventually store publish options for the editing session duration and manage the saving flow
  - displays a "Publish" button that triggers the publish flow modal
- adds `editor-labs/publish-flow` full-screen modal containing a static mockup of the desired sentence-structure publish options design
2022-04-20 18:41:29 +01:00
Kevin Ansfield
f5fef46856 Added publishingFlow labs flag toggle
refs 05da593516

- used for switching between old publish menu and new publishing flow
2022-04-20 16:48:54 +01:00
Kevin Ansfield
c94b80dd4b Added showHeaderName newsletter attr for controlling newsletter title/subtitle
refs https://github.com/TryGhost/Team/issues/1532

- added `showHeaderName` attribute to newsletter model
- added attribute toggle to the newsletter design settings form
- updated newsletter preview behaviour
  - if both title and name are on, show name as a subtitle
  - if title is off but name is on, show name as main title
  - adjusted higher-level "show header" and "show header title" conditionals to account for the new setting
2022-04-20 16:05:10 +01:00
Simon Backx
46fd0e4a27 Added open rate and charts to recent posts
refs https://github.com/TryGhost/Team/issues/1535

Also made some temporary changes in CSS to get the percentage bar in.
2022-04-20 15:31:12 +02:00
Kevin Ansfield
da1621d818 Fixed newsletter header image not showing in design form
closes https://github.com/TryGhost/Team/issues/1541

- copy/pasta from migrating old email design settings to newsletter design form
2022-04-20 14:09:30 +01:00
Simon Backx
a1b9ec830a Moved comped members into paid members counts
no issue

In dashboard 5.0, comped members should be included in paid members and are not considered free members.
2022-04-20 14:45:34 +02:00
James Morris
a06003e7b5 Introduced new layout to bring new Dashboard closer to release (#2342)
refs: https://github.com/TryGhost/Team/issues/1531

- broke apart the combined chart
- added back in the paid mix chart
- separated out the mini charts into separate components
- made top chart work with total, paid and free
- added in an overview section back at the top for total, paid, free
- made metric labels and values larger and easier to parse

Co-authored-by: Simon Backx <simon@ghost.org>
2022-04-20 14:43:11 +02:00
Kevin Ansfield
79eea318a9 Updated existing subscriber count in newsletter create confirmation
refs 50c762e222

- the count should only include members that are subscribed to active newsletters
  - the filter change was accidentally included in a previous commit (50c762e222)
- removed the unnecessary `{{concat}}` usage
2022-04-20 13:20:03 +01:00
Kevin Ansfield
50c762e222 Added confirmation dialog when unarchiving a newsletter
closes https://github.com/TryGhost/Team/issues/1540
refs 58290a6134

- follows same pattern as archiving
2022-04-20 13:15:45 +01:00
Kevin Ansfield
e7ddf8aaef Fixed create newsletter confirmation showing when editing existing newsletter
closes https://github.com/TryGhost/Team/issues/1537

- added conditional around the create confirmation modal display so it's only shown when attempting to save a new newsletter record
2022-04-20 12:52:20 +01:00
Kevin Ansfield
58290a6134 Added confirmation dialog when archiving newsletter
closes https://github.com/TryGhost/Team/issues/1530

- added confirmation modal that uses passed in archive task when confirming to provide feedback on progress
- switched archive link from immediately triggering the archive task to an action that launches the confirm modal
2022-04-20 11:08:57 +01:00
Sanne de Vries
1c34e41ea3 Fixed horizontal position of dropdown menus in newsletter settings
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-20 11:06:05 +01:00
Kevin Ansfield
b349317a9d Fixed interfering actions menus in newsletter management
no issue

When multiple newsletters existed, the actions dropdown menus were all rendered on top of each other but hidden with CSS. This resulted in clicks that you expected to open an actions menu immediately triggering actions on a newsletter higher up in the list.

- switched from `<GhDropdown>` to `<GhBasicDropdown>` which adds/removes the dropdown content elements rather than rendering everything and hiding with CSS
- updated styling to match previous implementation
- added `.anim-fade-in-scale` classes for use with `{{css-transition}}` so we can keep the open/close animation
  - `ember-basic-dropdown` does have support for transitioning in/out CSS classes but they are only triggered on the first open/close for each menu which resulted in oddly inconsistent behaviour with multiple menus in a list
  - close animation doesn't actually work because the outer elements are removed by `ember-basic-dropdown` preventing `css-transitions` from performing it's animation
2022-04-20 10:50:11 +01:00
Sanne de Vries
029cfca415 Added section headings to newsletter modal
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-20 10:40:58 +01:00
Sanne de Vries
64bd016950 Updated edit newsletter modal
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-20 09:34:29 +01:00
Sanne de Vries
b61f45d544 Updated newsletter settings copy
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-20 09:14:17 +01:00
Kevin Ansfield
baf75c39cf Added auto-subscribe newsletter count when confirming newsletter creation
refs https://github.com/TryGhost/Team/issues/1528

- used the already-loaded newsletters list to pass the slugs of active newsletters to the confirm modal, this allows use of the `{{members-count-fetcher}}` resource with the query `/members/?filter=newsletters:[...slugs]` to fetch a member and full count metadata
- added inclusion of `{{join}}` helper from `ember-composable-helpers` addon
2022-04-19 21:56:13 +01:00
Kevin Ansfield
f6c9ffcf60 Fixed conflicting test selector in <GhTaskButton>
refs 8e120a74d6

- we use `data-test-state` inside of some modals which also use `<GhTaskButton>` which caused unrelated tests to start failing due to a change in matching element counts
2022-04-19 20:42:47 +01:00
Kevin Ansfield
8e120a74d6 Fixed <GhTaskButton> behaviour
refs 502fcaba3c

- the conditional for `isFailure` was wrong meaning we were showing the idle state unintentionally
- fixed the conditional so it checks for the return value rather than a `null` error
- updated the template with test selectors so it's easier to determine state where class names are not sufficient to differentiate
2022-04-19 20:25:27 +01:00
Kevin Ansfield
502fcaba3c Added "Opt-in existing subscribers" option to newsletter creation
refs https://github.com/TryGhost/Team/issues/1528

- adds "opt-in existing" toggle to newsletter modal that's only shown when creating a newsletter
  - defaults to true
- updated newsletter save flow to show confirmation before creation
  - alters message to reflect auto-subscribe selection
  - count of existing subscribed members is not implemented as it's not yet supported by the API
- updated newsletter adapter and save flow to use auto opt-in selection
  - when option is checked the save URL is changed to `POST /members/?opt_in_existing=true`
- modified task button component to ignore a task return value of `canceled` so when it's received the buttons returns to the idle state instead of showing a saved or failed state
  - used by save routine when the "Back to edit" button is clicked in the create confirmation modal
2022-04-19 20:01:08 +01:00
Kevin Ansfield
5437063d4b Fixed newsletter subscription toggles on member details screen
no issue

- member records are not re-fetched when navigating from the members list to the member details screen, instead the already loaded member object is passed through to the route directly to provide a faster navigation experience
- however, the objects used in the member list are proxy objects in order to support the lazy-loading infinite scroll. Proxy objects require the use of `get()` so errors were thrown when the newsletter subscription toggles were used
2022-04-19 19:34:59 +01:00
Kevin Ansfield
86a69ece65 Updated newsletter email verification endpoint
refs https://github.com/TryGhost/Ghost/pull/14491

- API endpoint used when completing verification of a newsletter email change has moved to `PUT /newsletters/verifications/` to follow our API patterns
2022-04-19 19:34:59 +01:00
Djordje Vlaisavljevic
0ca9f32d36 Updated design for newsletter preferences
refs https://github.com/TryGhost/Team/issues/1492
2022-04-19 17:04:22 +02:00
Sanne de Vries
09467a0bb7 Updated newsletter modal
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-19 12:31:16 +01:00
Sanne de Vries
9271fa581b Updated newsletter modal sidebar layout
https://github.com/TryGhost/Team/issues/1525
2022-04-18 17:10:11 +01:00
Sanne de Vries
ef1411ae29 Fixed archived description in Email newsletter settings
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-18 11:11:51 +01:00
Sanne de Vries
55752d44b7 Added active and archived newsletter descriptions
Refs https://github.com/TryGhost/Team/issues/1525
2022-04-18 10:57:23 +01:00
James Morris
685fa19d36 Moved back the breakdown graph to be back with the total paid
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-15 12:18:46 +01:00
Kevin Ansfield
d10da5a02b Updated newsletter management for switch to nullable sender_name
refs https://github.com/TryGhost/Team/issues/1513

- `sender_name` is now nullable with a fallback to the site title
- updated new-newsletter route
  - removed default setting of site title in `senderName` of the new newsletter instance
  - removed extra checks when showing unsaved changes modal as we no longer need to compare the `senderName` attribute against the site title
- updated newsletter preview so the sender name falls back to the site title
- updated sender name input placeholder to show the site title
- removed not-empty validation
- fixed the switch to "multiple newsletter" state in the background of the new-newsletter modal
  - problem was `displayingDefault` getter was looking at all active newsletters rather than just the filtered ones so it was counting the new-but-unsaved newsletter even though it wasn't displayed in the list
  - fixes layout glitch when the new-newsletter modal animates out after cancelling creation
2022-04-15 09:43:22 +01:00
James Morris
4be9538750 Tiny tweaks to the dashboard
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-14 17:17:17 +01:00
James Morris
25db233351 Added back in the Total Paid Members graph 2022-04-14 16:48:49 +01:00
Rishabh
bfd36cd3c8 Removed member generic subscribe button for multiple newsletters
refs https://github.com/TryGhost/Team/issues/1492

We have a dedicated newsletter preference section with multiple newsletters in member detail screen, so the generic subscribed toggle can be removed.
2022-04-14 20:44:09 +05:30
Simon Backx
fdaf9c5614 Fixes price formatting in MRR tooltip + added support for currencies
refs https://github.com/TryGhost/Team/issues/1521

- Formatted the number correctly in the tooltip
- Correctly get the currency that is used in the MRR stats and show that symbol instead of a hardcoded $
2022-04-14 17:05:01 +02:00
Simon Backx
2cbe7b763e Added net line to paid breakdown graph
refs https://github.com/TryGhost/Team/issues/1522
2022-04-14 16:52:22 +02:00
Rishabh Garg
0bfc402090 Added newsletter management for member (#2336)
refs https://github.com/TryGhost/Team/issues/1492

Allows site owners to manage member's newsletter preference directly in Admin.

- also adds `visibility` property for newsletter model
- updates members test model to include `visibility`
2022-04-14 20:10:04 +05:30
James Morris
d3d0a6509d Moved around the delta sub graph to MRR to hopefully make sense contextually
refs: https://github.com/TryGhost/Team/issues/1462

- moved the delta graph into the revenue graph of the main combined graph
- made the secondary dropdown work again
- updated some chart titles
- tidied up the code and styles to make it work well
2022-04-14 15:28:55 +01:00
Kevin Ansfield
4c5144cb61 🐛 Fixed close button on "unsaved changes" modal not always behaving like "Stay" button
no issue

The close button in the unsaved changes modal used the `@close` action directly compared to the "Stay" button which used `(fn @close false)`. The close button version without explicit arguments resulted in the first argument being a `PointerEvent` instance which if checked as a modal return value as `if (shouldClose)` would evaluate as truthy therefore matching the "Leave" behaviour instead of the "Stay" behaviour.

- changed modal to explicitly call `(fn @close false)` when the close button is clicked
- updated design settings route to have an explicit `shouldLeave === true` check so default behaviour is always "Stay"
2022-04-14 12:39:10 +01:00
Kevin Ansfield
179d58aa08 Cleaned up call of a removed function - fixes tests (#2335)
refs e398557a75

- `resetEmailAddresses()` was called when saving the labs version of members-email settings screen but the function no longer exists, this was throwing an error which broke all following tests in CI
2022-04-14 11:01:09 +01:00
Kevin Ansfield
e398557a75 Added sender email verification flow for newsletters
refs https://github.com/TryGhost/Team/issues/584
refs https://github.com/TryGhost/Team/issues/1498

- updated newsletter save routine in `edit-newsletter` modal to open an email confirmation modal if the API indicates one was sent
  - modal indicates that the previously set or default email will continue to be used until verified
  - response from API when saving looks like `{newsletters: [{...}], meta: {sent_email_verification: ['sender_name]}}`
  - added custom newsletter serializer and updated model so that the `meta` property returned in the response when saving posts is exposed
    - Ember Data only exposes meta on array-response find/query methods
    - https://github.com/emberjs/data/issues/2905
- added `/settings/members-email-labs/?verifyEmail=xyz` query param handling
  - opens email verification modal if param is set and instantly clears the query param to avoid problems with sticky params
  - when the modal opens it makes a `PUT /newsletters/verify-email/` request with the token in the body params, on the API side this works the same as a newsletter update request returning the fully updated newsletter record which is then pushed into the store
- removed unused from/reply address code from `<Settings::MembersEmailLabs>` component and controller
  - setting the values now handled per-newsletter in the edit-newsletter modal
  - verifying email change is handled in the members-email-labs controller
- fixed mirage not outputting pluralized root for "singular" endpoints such as POST/PUT requests to better match our API behaviour
2022-04-13 19:34:58 +01:00
James Morris
cc6c0acf55 Tiny fix to add transparent border on big metrics so they don't move on selection for new dashboard
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-13 15:30:32 +01:00
James Morris
df30298651 More layout and chart adjustments to better improve the design
refs: https://github.com/TryGhost/Team/issues/1462

- added back in the main title to the top chart
- brought back the main metric background and centered buttons
- adjusted lots of spacing
- made the chart ticks for main graph dynamic
- improved the look of the breakdown graph
2022-04-13 15:27:42 +01:00
Simon Backx
3167679b03 Cleaned up email chart 2022-04-13 15:36:12 +02:00
Simon Backx
960536dcda Improved anchor chart and reloading of charts
refs https://github.com/TryGhost/Team/issues/1510

- Fixes site status not loading (https://github.com/TryGhost/Team/issues/1510) for mocked data because of tasks were already pending (reloadAll now cancels them first)
- Reload no longer required when switching anchor chart type
- Removed paidOptionSelected (fixes bug when swiching)
- Moved did-insert of anchor chart to topmost element
- Renamed chartDisplay values
2022-04-13 14:56:34 +02:00
Fabien 'egg' O'Carroll
2072209d4d Updated subscription event handling (#2332)
refs https://github.com/TryGhost/Team/issues/1302

* Tweaked the getIcon() function to better support the new event data variable for cancelled
* Added back in info for events across all activity lists

Co-authored-by: James Morris <moreofmorris@users.noreply.github.com>
2022-04-13 10:28:13 +01:00
Kevin Ansfield
e193ff15a5 Added unsaved changes confirmation modals to new/edit newsletter routes
closes https://github.com/TryGhost/Team/issues/1475

- updated new+edit newsletter routes to open a confirmation modal if the form modal is closed or the route is exited
- added z-index to modal background so the layering behaves as expected when modals are stacked
2022-04-12 21:32:27 +01:00
James Morris
356a1ead2a Added in dark mode grid lines for charts and futher style tweaks to the new dashboard
refs: https://github.com/TryGhost/Team/issues/1462

- added in dynamic dark mode grid lines for the charts
- added in some subtle other dark mode tweaks for borders
- limited the recent posts to 3 instead of 5
2022-04-12 17:56:55 +01:00
James Morris
e4891e3462 Moved the new dashboard over to a CSS Grid layout and cleaned up a ton of the code
refs: https://github.com/TryGhost/Team/issues/1507

- changed the layout over to use css grids instead of the random flex and divs
- cleaned up the based dashboard-v5 file so its rendering much cleaner components
- refactored and took out a ton of old css that wasn't needed anymore
- moved the dashboard-v5 css into it's own css file to keep things cleaner
- includes a few stylistic changes along the way
2022-04-12 16:04:20 +01:00
James Morris
1b89416064 Moved all the section and boxes to their respective Ember components to massively tidy up the new Dashboard layout
refs: https://github.com/TryGhost/Team/issues/1507
2022-04-12 16:04:20 +01:00
Kevin Ansfield
4565882941 Updated newsletter model and form for latest schema
refs https://github.com/TryGhost/Team/issues/1500

- `senderEmail` is now nullable with a fallback to `noreply@{site domain}`
- `senderName` is not nullable and has no fallback
  - updated preview and input placeholder to match real-world behaviour
  - inserted site title as the default value when creating a new newsletter to avoid friction with the sender name needing to be filled in when saving
- switched `senderReplyTo` input field to a select with "newsletter" and "support" options
  - added basic `<Inputs::Select>` component as `<OneWaySelect>` had re-rendering issues causing loss of selected value when the label of the newsletter email changed to reflect a custom newsletter email value
2022-04-12 14:01:41 +01:00
James Morris
103be11b7c Moved all the new Dashboard files into folders to help with organisation a bit more
refs: https://github.com/TryGhost/Team/issues/1506
2022-04-12 13:09:00 +01:00
James Morris
84c316bde9 Moving back the metrics to under the main graph and adding paid breakdown graph to dropdown based on feedback
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-12 11:53:51 +01:00
James Morris
f046e5e118 More layout tweaks to new dashboard
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-12 11:53:51 +01:00
James Morris
7e499573e5 Moving the new dashboard layout forward with more ideas
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-12 11:53:51 +01:00
Simon Backx
ed18d63450 Improved mocked state generator for dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1489

- Apart from newer sites (state with days < 30) the MRR will start to deviate from the paid members graph. This will normally also be the case for real sites.
- All graphs will be zeroed out if state 'no data' is selected.
- The generator is a bit too complex to make this happen. It was some trial and error, but doesn't matter that much since we'll nuke this code once 5.0 is out.
2022-04-08 11:26:59 +02:00
Simon Backx
7b12785c30 Synced the start date of members and MRR 'all time' charts (dashboard 5.0)
no issue

- When using 'all time' in the past, the start date of the total members/paid members chart would differ from the MRR chart. They are now synced.
- The start date is always the earliest date we have data for (MRR or member counts)
- The all time chart is minimum 90 days long
2022-04-08 10:04:42 +02:00
Simon Backx
b3bb12a4ce Fixed swapped paid members and MRR chart in anchor chart
no issue

When selecting 'paid members', the MRR chart was shown and vice versa.
2022-04-08 09:54:29 +02:00
Simon Backx
0d7ada66b3 Replaced usage of older MRR stats endpoint with new endpoint
refs https://github.com/TryGhost/Team/issues/1470

- Correctly uses the highest value currency in the MRR graph
2022-04-08 09:51:30 +02:00
Kevin Ansfield
738dbba82a Fixed moving border when hovering default newsletter
no issue

- when displaying only the default newsletter there's no option to drag/re-order but the border was still moving on hover as it does when displaying the drag handle
- updated the class name to take `displayingDefault` into account when adding the draggable class
2022-04-07 17:04:08 +01:00
Kevin Ansfield
e433f8b9cf Added drag-and-drop sorting of newsletters
closes https://github.com/TryGhost/Team/issues/1483

- updated newsletters list to use `<SortableObjects>` and `<DraggableObject>`
- swapped the `filteredNewsletters` reactive getter for a tracked property because `<SortableObjects>` replaces the value with a new array when re-ordering which isn't compatible with a getter
  - required explicit update of the list any time the list should change through filter swap, archive, unarchive
  - required explicit update of the list via router event when leaving the "new newsletter" route so any newly added newsletter can be displayed
- added action for handling update of `sort_order` properties when a re-order occurs
  - updates every newsletter setting `sort_order` of the active newsletters first based on the new order, followed by all archived newsletters following their existing order
- disabled sorting of newsletters in the archived newsletters list
  - hides the grab handle and disables the resize on hover
  - allowing re-order of archived newsletters would complicate the re-order+save algorithm and re-ordering archived newsletters doesn't have a use-case
2022-04-07 16:42:50 +01:00
Simon Backx
43679ae4b7 Added staff picks component to dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1487

- Fetches the staff picks from the RSS feed
- Shows the first 5 staff picks (amount is adjustable)
- Adds utm_source=ghost to external links
- Includes a temporary CSS class to keep it a bit orderly
2022-04-07 15:24:50 +02:00
Kevin Ansfield
670a10d8ed Updated newsletter model - removed default and added slug
refs https://github.com/TryGhost/Ghost/pull/14428
refs https://github.com/TryGhost/Ghost/pull/14436

- `default` is now represented by the first newsletter when ordered by `sort_order`
- `slug` has been added to match pattern for all resources used in filter queries to have a slug
  - no current use-case so it's not exposed in the UI
2022-04-07 13:50:16 +01:00
Simon Backx
7833da8365 Added latest newsletters to dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1488

- Includes a new component that fetches the latest X newsletters.
- Displays these newsletters using design from old dashboard.
- Currently shows 10 newsletters, but we'll want to change that later.
- Temporary CSS class added.
2022-04-07 13:02:58 +02:00
Simon Backx
811aa92394 Fixed loading of paid mix chart
no issue

Moved did-insert to native DOM element.
2022-04-07 10:34:21 +02:00
James Morris
560d862d91 The big cleanup (#2328)
* Trying out a tooltip alternative for combined graph in new dashboard

refs: https://github.com/TryGhost/Team/issues/1467

* Trying out a different type of interaction with the combined graph for the new dashboard that includes different style

refs: https://github.com/TryGhost/Team/issues/1467

* Working through the interface and code to majorly clean up for the new Dashboard

refs: https://github.com/TryGhost/Team/issues/1462

- lots of moving around css
- trying out some different layouts
- refactoring lots of code
- known bug: paid graphs don't work
- known bug: without newsletters, layout breaks

* Finishing up the basic styling of the new dashboard to be more presentable

refs: https://github.com/TryGhost/Team/issues/1462

- add an animation between the top metrics on combined graph
- ensure all graphs are responsive to parent container
- refactor many of the components and tidy up the styles
- tighten up spacing, headers, chart heights and more
- make the tooltip hovers a little more presentable
- balance the colors to be more muted, for the moment
- a million other tiny tweaks
2022-04-06 18:11:46 +01:00
Simon Backx
9b8875c4be Added Whats New component to Dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1486

Includes a new component that correctly fetches the changelog and displays them in the old format (still requires some design changes).
2022-04-06 15:43:41 +02:00
Kevin Ansfield
e3de4ee704 Wired up active/archived newsletter filter
closes https://github.com/TryGhost/Team/issues/1476

- added dropdown for switching between active and archived newsletters
- modified the "default" newsletter display so it's only activated when a single active newsletter is shown
- added ability to un-archive a newsletter with a switch between "archive" and "un-archive" actions based on newsletter status
  - if all archived newsletters are un-archived, automatically switches to "active" filter so you're not left with an empty list
2022-04-06 13:18:07 +01:00
Kevin Ansfield
e5c26aac89 Added newsletter dropdown to publish menu
closes https://github.com/TryGhost/Team/issues/1479

- updated post adapter to append `?newsletter_id=xyz` when passed a `newsletterId` adapterOption
- updated editor save task to pass `options.newsletterId` through as `adapterOptions.newsletterId`
- set up `post.newsletter` relationship ready for handling embedded newsletter association from the API
  - explicitly deleted when serializing back to the API as it doesn't yet ignore the attribute
- updated `<GhPublishmenu>` for newsletter support
  - fetches newsletters on first render so they are available in the dropdown
  - sets "default" (first in the ordered list) newsletter as the initially selected newsletter
  - adds newsletter dropdown to draft publish menu
  - passes `newsletterId` option to editor save task when it's set

This is a minimal implementation for testing. Not included:
- correct free/paid member counts based on selected newsletter
- correct member count in confirmation modal
- indication of selected newsletter for scheduled post
2022-04-06 10:22:06 +01:00
Naz
114b359ab7 Reverted Accept-Version header usage in Admin API communication
closes https://github.com/TryGhost/Toolbox/issues/222
refs https://github.com/TryGhost/Toolbox/issues/227
refs 74735ab59c
refs e23ae31e8f

- The usecases for the Accept-Version header have shown we should not be exposing the users of the clients we control to unnecessary notification about client-API incompatibility. Ghost-Admin is one of those clients that is always expected to be up to date with the version of Ghost it ships with, so the Accept-Version header should not be used here
2022-04-06 10:12:09 +08:00
Kevin Ansfield
6e0be9e175 Wired up newsletter management with real newsletter model and API
refs https://github.com/TryGhost/Team/issues/1441

- switched "leave settings" confirmation modal on members email settings screen over to modern modal pattern
- removed unused `showEmailDesignSettings` property and `closeEmailDesignSettings()` action on `<Settings::MembersEmailLabs>` component
  - the used property and action live on the controller, looks like it was a copy/paste hangover when functionality was moved to a component
- added newsletter model
  - includes design-related attributes which are not yet supported by the API but are due to be added
  - includes `default` attribute but there is no setting for it, due to be removed from the API but it's needed for save not to error for now
  - set up basic mirage model and endpoints
  - added validation for main settings to match API validation
- added `EditNewsletter` modal
  - separate tabs for general newsletter settings and design-related settings
  - used for both creating and editing newsletters
- added `/settings/members-email/newsletters/new` and `/settings/members-email/newsletters/:id` routes
  - both display the `EditNewsletter` modal on top of the members-email settings screen with the appropriate newsletter model
- updated `<Settings::MembersEmailLabs::NewsletterManagement>` component to work with real newsletter model instances and the new add/edit routes
- removed now-unused `newsletter` service that was providing mocked data for earlier design iteration
2022-04-04 19:30:52 +01:00
Kevin Ansfield
9ab2f5dd3e 🐛 Fixed incorrect modal heights
closes https://github.com/TryGhost/Ghost/issues/14416
refs 1357390ac5

- after switching to a proper package version of our `ember-promise-modals` fork the addon's CSS was injected into the vendor file causing conflicts with our own modal styling
- added `align-items: unset` style override on `.epm-modal-container` so we're not fighting the addon's default `align-items: center;` style
2022-04-04 09:55:33 +01:00
Kevin Ansfield
1357390ac5 🐛 Fixed incorrect modal and theme preview positioning
closes https://github.com/TryGhost/Ghost/issues/14415

- after switching to a proper package version of our `ember-promise-modals` fork the addon's CSS was injected into the vendor file causing conflicts with our own modal styling
- added `transform: none` style override on `.epm-modal` so we're not fighting the addon's default `translate(0, -30vh) scale(1.1);` transform
2022-04-04 09:43:54 +01:00
Kevin Ansfield
86598fbd76 Extracted newsletter management section into separate component
refs https://github.com/TryGhost/Team/issues/1441

- pulls newsletter-related functionality into one place to keep higher-level components from knowing about too many concepts and becoming bloated
- updated temporary newsletters service to have fully tracked objects so the `active/archivedNewsletters` properties can be closer to how they will work with full models
2022-04-03 22:14:07 +01:00
Kevin Ansfield
ec5a080d56 Converted <Settings::MembersEmailLabs> to Glimmer component
refs https://github.com/TryGhost/Team/issues/1441

- bringing code up to more modern style ready for further development
2022-04-03 22:14:07 +01:00
James Morris
93f30eadb7 Added little copy tweak to engagement charts to be clearer
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-01 17:09:17 +01:00
James Morris
298e9b4d04 Further tweaks to the new dashboard to make it feel a little nicer
refs: https://github.com/TryGhost/Team/issues/1462
2022-04-01 17:04:39 +01:00
James Morris
8fe18d7e30 Dashboard consolidated graph (#2323)
* Basic work to combine the three line graphs for the new dashboard

refs: https://github.com/TryGhost/Team/issues/1467

- combined three line graphs into one main one at the top
- still working on this, so some code is a little rough

* Tidying up a few bits of consolidated graph in new dashboard

refs: https://github.com/TryGhost/Team/issues/1467

* Updated chart anchor component for removed member counts

no issue

* Updated chart paid members to not reload on days change

no refs

* Moved did-insert to top element in chart-anchor

* Fixed chart anchor to use filled member data

* Replaced chart anchor divs with buttons

* Tweaking up the paid graphs below anchor to improve visuals

refs: https://github.com/TryGhost/Team/issues/1467

* Fixed missing type attributes on buttons in chart anchor

* Updated MMR to MRR for the new consolidated graph

refs: https://github.com/TryGhost/Team/issues/1467

* Added real MRR to chart anchor

* Added open rate percentage data to chart email

Co-authored-by: Simon Backx <simon@ghost.org>
2022-04-01 14:53:55 +01:00
Kevin Ansfield
da972bfe58 🐛 Fixed non-functioning "Leave" button on unsaved-changes confirmation modals
no issue

- bumped version of our `ember-promise-modals` fork containing a workaround for modal promises missing their return values
  - upstream issue: https://github.com/simplabs/ember-promise-modals/issues/565
- switched from a GitHub ref to a proper published package to avoid issues with yarn not bumping versions of the fork for developers who installed an earlier version
2022-04-01 12:47:08 +01:00
Peter Zimon
626634246f Updated Portal mock for offers (#2319)
Updated the preview block of offer creation screen to match the new style of Portal.
2022-04-01 13:22:41 +02:00
Simon Backx
0023695a29 Implemented loadSiteStatus in dashboard 5.0 stats service
refs https://github.com/TryGhost/Team/issues/1468

- Implemented loadSiteStatus with real data
- Replaced unused stripeEnabled with hasMultipleTiers
- hasMultipleTiers=false hides the tiers paid mix chart
- Improved loading and updating fake state
- Removed deprecated loadMembersCounts method in dashboard stats service
2022-04-01 10:51:15 +02:00
Kevin Ansfield
623825f8f0 🐛 Fixed scheduled send-only post switching to publish+send when rescheduling
closes https://github.com/TryGhost/Ghost/issues/14354

When setting/cleaning up the publish menu state we were incorrectly reverting to the default "publish & send" state when a post was already set to be email-only. This resulted in an unexpected and non-obvious switch to "publish & send" when re-scheduling a scheduled email-only post.

- updated the publish menu setup and cleanup routines to account for scheduled, email-only posts
- fixed the header in the publish menu to say "sent" rather than "published" when an email-only post is scheduled
2022-03-31 17:11:06 +01:00
Simon Backx
37ee53bb4a Renamed stats endpoint member again
refs 759e362a30
2022-03-31 17:11:36 +02:00
Simon Backx
09f4d9b373 Changed member count stats endpoint URL
refs https://ghost.slack.com/archives/C02G9E68C/p1648737467414789?thread_ts=1648644801.253699&cid=C02G9E68C
2022-03-31 17:06:48 +02:00
Simon Backx
01b411de85 Added paid mix chart implementation for dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1443

- Includes support for 'all' data in member count charts
- Fixed reloading of MRR data when switching between days
- Loading data now always returns a 'promise' instead of just dropping it
- Tiers and cadence paid mix chart added
- Defaults to mocked data = off (required to prevent loading paid mix tiers on page load)
- Note that there is still some discussion about the correctness of the tiers paid mix data, refs Slack https://ghost.slack.com/archives/C02G9E68C/p1648717224956659
2022-03-31 16:22:49 +02:00
Simon Backx
4cae27f5e2 Replaced custom member counting queries with MembersCountCacheService
no issue

- Replaced custom member counting queries with the MembersCountCacheService
- Results are reused if they were already fetched less then 60 seconds ago
- Fixed logic in MembersCountCacheService to only return old results (> 60) instead of new results (<= 60)
2022-03-31 16:09:41 +02:00
Simon Backx
5b120d5574 Updated member count charts to use the new Stats API
refs https://github.com/TryGhost/Team/issues/1443
refs https://github.com/TryGhost/Team/issues/1458
refs https://github.com/TryGhost/Team/issues/1459

- Includes the new paid members chart (deltas)
- Reused the counts from the stats endpoint, instead of doing separate calls to the members api browse endpoint.
2022-03-31 16:09:41 +02:00
Kevin Ansfield
78e08af003 Fixed newsletter settings tests
refs a4ca693871

- label's "for" was removed to enable more direct use of the checkbox enabling keyboard usage but the test was not updated to reflect the change
2022-03-31 11:37:38 +01:00
Kevin Ansfield
a4ca693871 Resolved template linting errors in <Settings::MembersEmailLabs>
refs https://github.com/TryGhost/Team/issues/1441

- applying scout rule
- brings template closer to swapping backing class to glimmer
2022-03-31 11:27:39 +01:00
Kevin Ansfield
d6487d3630 Created labs versions of members-email settings code
refs https://github.com/TryGhost/Team/issues/1441

- duplicated route/controller/template and component to `-labs` versions so larger changes and refactors can be made without affecting the GA code
- added redirect for `/settings/members-email -> /settings/members-email-labs` when `multipleNewsletters` flag is enabled
- cleaned up multiple-newsletters related code from the non-labs component
2022-03-31 11:06:21 +01:00
Kevin Ansfield
4bfc7529d6 Cleaned up membersActivityFeed labs flag (#2309)
no issue

- `membersActivityFeed` is GA so we don't need any of the conditionals or now-unused code
2022-03-30 12:43:52 +01:00
James Morris
f6a8febbb4 Removed an unless statement for the new dashboard activity feed to avoid linting issues
refs: https://github.com/TryGhost/Team/issues/1462
2022-03-29 17:31:12 +01:00
James Morris
fa9b8829f1 Fixing up the linting issues with my previous commit
refs: https://github.com/TryGhost/Team/issues/1462
2022-03-29 17:20:03 +01:00
James Morris
3b9525dd63 First round of getting better styles into the new dashboard
refs: https://github.com/TryGhost/Team/issues/1462

- remove dummy percentages where not necessary
- trying out a narrower width for the dashboard
- added in a basic layout for the various charts
- added more specific styles to each of the graphs
- tried out a different way of displaying metrics
- different way to show headers for each module
- made the grid and flex layouts a little more flexible
- there are some bits to still clean up with code
2022-03-29 16:53:50 +01:00
James Morris
60a3b742ea Pulled out dummy percentage comparisons on some graphs for Dashboard prototype
refs: https://github.com/TryGhost/Team/issues/1462
2022-03-29 10:20:32 +01:00
Peter Zimon
d32f4fc5e3 Typography updates (#2317)
* Updated Editor typography
* Updated email header border logic
2022-03-28 17:09:08 +02:00
Simon Backx
8d3c1dacc2 Added member count trends in dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1443

- Fetch member counts from 30 days ago
- Added Percentage component to show +1%, -1% or = changes
- Fixed: emails sent number was not formatted
- Fixed: wrong dates were used for some stats
2022-03-28 16:28:09 +02:00
Simon Backx
7d104b2b44 Improved email open rate chart in dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1443

- Now fetches email models instead of posts
- Fetches up to 8 emails
- Autofills missing emails, so we always have 8 emails
- Changed data structure of emailOpenRateStats variable in dashboard stats service
2022-03-28 14:20:07 +02:00
Simon Backx
6e8bf040a9 Added emails sent in past 30 days from real endpoints to dashboard 5
refs https://github.com/TryGhost/Team/issues/1443

- Also fixed the open rate that was used in the email open rate chart
- Calculate the total emails sent in the last 30 days
2022-03-28 13:49:44 +02:00
Simon Backx
801a910f7d Added newsletter subscribers count from real endpoints to dashboard 5
refs https://github.com/TryGhost/Team/issues/1443
2022-03-28 13:19:56 +02:00
Simon Backx
5505500fc0 Added MRR data to dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1443

Will still require some optimizations in the future.
2022-03-28 11:12:01 +02:00
Simon Backx
cc478dcb53 Added basic member counts chart implementation for dashboard 5
refs https://github.com/TryGhost/Team/issues/1443

A real API endpoint is now used to power the member counts chart. But it sill requires some optimizations.
2022-03-28 10:47:09 +02:00
Simon Backx
16d0629de3 Added last seen and member count stats from real API in dashboard 5
refs https://github.com/TryGhost/Team/issues/1443
2022-03-28 09:55:37 +02:00
Simon Backx
9213e590ad Added recent posts and email open rate data to dashboard 5
refs https://github.com/TryGhost/Team/issues/1448
refs https://github.com/TryGhost/Team/issues/1443

- Toggle to switch between fake and real data
- Email open rate can now use real data (still problem with posts that don't have email data)
- Recent posts data
2022-03-24 18:17:02 +01:00
James Morris
0890a6fe41 Added some static resources modules to dashboard prototype
refs: https://github.com/TryGhost/Team/issues/1445

- threw in some static generic resources modules based off offers styling
- these will be dynamic but adding them to pad out prototype
2022-03-24 15:29:01 +00:00
Simon Backx
abcfcbb3ed Added recent posts component in dashboard 5
refs https://github.com/TryGhost/Team/issues/1448
2022-03-24 16:21:55 +01:00
James Morris
1fc31fa60d Added more tweaks for Dashboard 5.0
refs: https://github.com/TryGhost/Team/issues/1445

- includes more tweaks
- adds on to recent merged conflicts commit
2022-03-24 15:08:12 +00:00
Simon Backx
5134e0822d Fixed tiers/cadence toggle hidden in dashboard 5 2022-03-24 16:07:06 +01:00
Simon Backx
6892bf06ef Fixed empty state not working in dashboard 5 2022-03-24 16:03:54 +01:00
Simon Backx
a41785ae95 Added async loading to dashboard 5 prototype charts
refs https://github.com/TryGhost/Team/issues/1443

- Also moved loading of charts outside of constructors to avoid infinite update loops in Ember
- Random loading delay when using fake states
2022-03-24 15:40:48 +01:00
James Morris
ef285a2f02 Merged conflicts 2022-03-24 14:02:13 +00:00
Sanne de Vries
a51b625a37 Fixed linting error and updated .to-do 2022-03-24 12:47:49 +00:00
Sanne de Vries
6e86be3b88 Added default newsletter selection component for multiple newsletters
Refs https://github.com/TryGhost/Team/issues/1441
2022-03-24 12:37:48 +00:00
Sanne de Vries
eaf21760fe Added static status toggle for when archived newsletters exist
Refs https://github.com/TryGhost/Team/issues/1441
2022-03-24 12:19:28 +00:00
Sanne de Vries
5785e156b5 Changed design for one vs multiple newsletters
Refs https://github.com/TryGhost/Team/issues/1441
2022-03-24 11:35:33 +00:00
Simon Backx
7fdf3c7433 Added mechansim to save prototype state for dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1444

- Moved control panel to separate component
- Moved storage of amount of graph days to load to dashboard stats service
- Moved storage of engagement filtered status to dashboard stats service
- Dropdown state selector
- Save state in localstorage
- SiteStatus object and loadStatus methods in dashboard stats service and mock service
2022-03-24 12:09:09 +01:00
Thibaut Patel
e0476790ad Fixed linting errors from the previous commit
refs d4cd65dc40
2022-03-24 10:43:20 +01:00
Thibaut Patel
d4cd65dc40 Added mocked newsletter service
refs https://github.com/TryGhost/Team/issues/1447

- Added a few newsletter methods (browse, add, archive/un-archive)
- This temporary code helps the frontend implementation to be done quicker
- And helps getting a better understanding of the backend implementation (schema + api routes)
2022-03-24 10:32:03 +01:00
Djordje Vlaisavljevic
0332629a10 Hid archived tiers from offer creation page
refs https://github.com/TryGhost/Team/issues/1430
2022-03-24 10:26:44 +01:00
Simon Backx
d1530c8285 Added engagement chart status dropdown
refs https://github.com/TryGhost/Team/issues/1442

Switch between all members, paid members and free members in the engagement (last seen) chart, in Dashboard 5.0.
2022-03-24 10:05:08 +01:00
Simon Backx
59c22cc3dc Fixed wrong date labels in graphs
no issue

fillMissingDates in the dashboard service did reuse the same object instead of creating new ones for dates without data.
2022-03-24 09:46:16 +01:00
Simon Backx
dfccf030d7 Added toggle between cadence and tiers for the paid mix graph
refs https://github.com/TryGhost/Team/issues/1442
2022-03-24 09:38:30 +01:00
Simon Backx
d918be7acf Added initial mocked state to dashboard 5.0
refs https://github.com/TryGhost/Team/issues/1432

Earlier, no data was shown when opening the new dashboard. Now some data is being mocked when opening the dashboard.
2022-03-24 09:11:53 +01:00
Sanne de Vries
cdb663e7c6 Updated multiple newsletters layout
Refs https://github.com/TryGhost/Team/issues/1441
2022-03-23 18:01:58 +00:00
Sanne de Vries
317bca6d8a Added grab icon to reorder multiple newsletters
Refs https://github.com/TryGhost/Team/issues/1441
2022-03-23 17:18:28 +00:00
Sanne de Vries
e326b6722c Turned default email recipients dropdown into expandable setting
Refs https://github.com/TryGhost/Team/issues/1441
2022-03-23 15:46:14 +00:00
Simon Backx
159f56b0d2 Wired all the dashboard 5.0 charts with the stats service
refs https://github.com/TryGhost/Team/issues/1442

All the data from the charts now come from the dashboard stats service
2022-03-23 16:38:57 +01:00
Sanne de Vries
81463954e4 Updated Email settings page to accommodate multiple newsletters
Refs https://github.com/TryGhost/Team/issues/1441

- Rearranged the page: publish-menu preview is removed because the publish flow will change.
- Email addresses setting removed because it will be set on an individual newsletter level
2022-03-23 14:41:24 +00:00
Simon Backx
cbc7429f69 Added separate dashboard 5.0 mocking service
refs https://github.com/TryGhost/Team/issues/1432

- All mocking logic is moved to the dashboard-mocks service
- Added @days property support and loading to first dashboard 4 graphs.
- 2 years state button added
2022-03-23 11:53:32 +01:00
Simon Backx
98c93b66c8 Added dashboard 5.0 stats service and days dropdown
refs https://github.com/TryGhost/Team/issues/1432

- Added very basic state selection at the bottom of dashboard 5.0
- Added a dashboard stats service, who is responsible for fetching and returning stats data
- Added POC for days dropdown with communication and reload between ember components
- Added proper automatic number and plural formatting for member counts
2022-03-23 10:05:47 +01:00
James Morris
d05d22c177 Better faked graphs and various tweaks for Dashboard 5.0 prototype
refs: https://github.com/TryGhost/Team/issues/1436

- added in lots of demo graphs using EmberChart
- renamed some files in v5 folder for better conventions
- put each graph for new dashboard into separate components
2022-03-22 21:59:47 +05:30
Rishabh Garg
fcf7f516b8 🐛 Fixed error on saving a paid member (#2312)
refs https://github.com/TryGhost/Team/issues/1435
refs a47b61c1d4

A recent change for showing all subscriptions of a member on detail screen introduced a circular json structure with subscription -> tiers -> subscriptions, which throws an error on saving any member with paid subscription on member detail screen.
2022-03-22 21:58:21 +05:30
Simon Backx
8937e09436 Added placeholder components and skeleton for dashboard 5 prototype
refs https://github.com/TryGhost/Team/issues/1432
2022-03-22 12:11:14 +01:00
Simon Backx
96d02a208d Fixed linting issues in dashboard 5 component 2022-03-22 09:58:42 +01:00
Simon Backx
829fee29da Added better POC styling for dashboard 5
refs https://github.com/TryGhost/Team/issues/1432
2022-03-22 09:04:52 +01:00
Simon Backx
da9298b6f0 Added some basic prototype toggles
refs https://github.com/TryGhost/Team/issues/1432
2022-03-21 19:02:57 +01:00
Simon Backx
7c96a1d562 Added dashboard 5.0 component
refs https://github.com/TryGhost/Team/issues/1431
2022-03-21 18:08:13 +01:00
Simon Backx
b7689ffe9d Added dashboard 5.0 feature flag
refs https://github.com/TryGhost/Team/issues/1431
2022-03-21 17:35:14 +01:00
Peter Zimon
303506dcba Added multiple newsletters flag 2022-03-21 16:11:53 +01:00
Peter Zimon
4d81b40573 Added Headline theme to design settings 2022-03-21 10:45:32 +01:00
Thibaut Patel
a47b61c1d4 Added canceled subscriptions in member detail screen (#2287)
refs https://github.com/TryGhost/Team/issues/1141

Showing canceled subscriptions provide a more complete picture of the activity of a member.

- Given there is no `member.product` object when a subscription is canceled, use the `member.subscriptions.price.product` objects instead of `member.products`.
- applied boy-scout rule for linter errors and and code formatting
- removed `multipleTiers` flag conditionals as it's now GA
- set up subscriptions as a separate mirage resource so they are easier to work with
    - updated `PUT /members/:id/` endpoint to match real API's complimentary subscription behaviour
    - modified mirage member serializer to match API output

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2022-03-18 16:15:42 +00:00
Kevin Ansfield
091ae194bf 🐛 Fixed duplicate email open rate column when filtering members by open rate
no issue

- email open rate is shown by default so we don't need to add the column a second time when the list is filtered by that data
- added `email_open_rate` to the default columns list so it's ignored when adding any filtered-by columns
2022-03-17 09:29:15 +00:00
Peter Zimon
004a483bb1 Fixed unsplash icon positioning in design settings 2022-03-16 08:51:14 +01:00
Kevin Ansfield
fcb27507d3 🐛 Fixed slow loading and high memory usage of members list screen
refs https://github.com/TryGhost/Team/issues/1423

- problem:
  - all members requests were automatically adding `?include=email_recipients` as the email recipients relationship was set up to be always embedded
  - embedded email_recipient records also embed the whole email record
  - on the members index screen this meant for each of the 50 members loaded on a page we were also loading every email they have ever received resulting in a huge API response
  - this was not a problem previously because the API was ignoring the `include` parameter on the browse endpoint and Admin wasn't formatting the include properly in snake_case
- solution:
  - the only place we need associated email recipients is on the member details screen where they are used to show the email activity feed
  - removing the `{embedded: 'always'}` option for the `member.emailRecipients` association stops `?include=email_recipients` being added automatically to every members request
  - the member details screen explicitly adds `?include=email_recipients` so no further changes are needed
  - activity feed will be changing to use proper event objects in the future and further optimisation can be made
2022-03-15 18:26:24 +00:00
Peter Zimon
c4644ca7a9 Changed default offer display title 2022-03-15 12:31:27 +01:00
Kevin Ansfield
4e1f292c74 Revert "Removed unused modal files"
This reverts commit 1b4126b6f0.

- this was in error, `settings/members/archive-tier` wasn't a modal file
2022-03-14 12:38:39 +00:00
Kevin Ansfield
85d7932e45 Resolved deprecation warnings for dynamic modal component binding (#2303)
refs https://github.com/TryGhost/Team/issues/559
refs 054a5f15f5

- with the update of `ember-promise-modals` we started to get deprecation warnings when using `modals.open('modal-component-name')`
  - upcoming Ember build updates will introduce tree shaking but using run-time lookup of modal components by name works against that because it's not statically analysable
- switched to importing components and passing the component class directly, eg. `modals.open(ModalComponent)`
- standardized modal component class names with a `MyModal` style to get better behaviour in code editors when it auto generates imports
- dropped the modal defaults from the modals service because we can now use a static `modalOptions` property on the modal components themselves when we want to override the defaults
2022-03-14 10:52:04 +00:00
Kevin Ansfield
32658c25c2 Fixed linter errors in <ModalProduct> template
no issue

- dropped unnecessary/invalid nested `<form>` elements
2022-03-14 10:51:19 +00:00
Kevin Ansfield
7374b0f8c6 Fixed errors thrown in tests that were causing random failures
no issue

- dropped `id` attribute added to `<GhBenefitItem>` because it was only using the index resulting in multiple `id="1"` on the page which is invalid HTML and caused Glimmer to complain
- added a check for `portalPreviewIframe` existence when the portal message listener in the offer controller is fired because it was occurring out of sync with the tests and throwing async errors that were picked up in random later tests
2022-03-14 10:28:58 +00:00
Kevin Ansfield
0be1f206a5 Removed unused modal-custom-view-form.js file
no issue

- the `custom-view-form` modal has been migrated to the newer modal style but the original modal's component file wasn't cleaned up
2022-03-14 10:00:40 +00:00
Kevin Ansfield
1b4126b6f0 Removed unused modal files
no issue

- we had two archive-tier modals with the version living in `modals/tiers/archive` being the only one used
2022-03-14 09:46:49 +00:00
Kevin Ansfield
4d8c12d2b8 Fixed sticky URL when using Escape to close view theme modal
no issue

- we were missing handling for the view-theme modal being closed outside of a route transition meaning the URL would stay on `/settings/design/view-theme/Theme` even though it's the index that was shown, preventing the same theme being viewable again and back/forward behaving as expected
2022-03-11 19:14:16 +00:00
Kevin Ansfield
4db4233b87 Fixed integration edit page not showing after creating new integration
refs 054a5f15f5

- `beforeClose` behaviour has changed slightly with the upgraded ember-promise-modals
- added a guard for the modal existing when transitioning back to the integrations index screen, this makes sure we're not transitioning back to the index screen after the modal has already initiated a transition to the integration edit screen
2022-03-11 19:10:44 +00:00
Kevin Ansfield
054a5f15f5 🐛 Fixed scheduled date/time inputs not being focusable when used from post preview modal
closes https://github.com/TryGhost/Ghost/issues/14296

- bumped fork of `ember-promise-modals` as newer version exposes all focus-trap options and per-modal disabling
- disabled focus-trap for the post preview modal because it was preventing clicks on the input elements performing default behaviour
2022-03-11 17:58:20 +00:00
Rishabh Garg
6c6447ef4f Removed multiple tiers beta section (#2298)
refs https://github.com/TryGhost/Team/issues/1267

Multiple tiers is now available for all sites by default, so there is no need anymore for the beta section to enable it.
2022-03-11 20:14:47 +05:30
Sanne de Vries
b530df1e39 Directed selfhosters to 'done' screen after setup 2022-03-11 12:42:06 +00:00
Kevin Ansfield
134cd17649 Fixed flash of "No members" state when opening publish menu
no issue

- removed the count task state from the `disableEmailOption` getter so it doesn't get used to show the "Add members" notification before the count request has finished
2022-03-11 11:35:39 +00:00
Kevin Ansfield
bc5ddd9921 Resolved linter errors in <GhMembersRecipientSelect>
no issue

- fixed duplicate `id` attribute on the specific people checkbox
- switched toggle behaviour from a click event on the surrounding div to a change event on the checkbox
  - the surrounding `<label>` has appropriate `for` attribute so it acts as the click-to-change target
- added `aria-label` attributes to the checkboxes because the label element we're using does not surround any content that labels the checkbox
2022-03-11 11:06:13 +00:00
Kevin Ansfield
f0418266f4 🐛 Fixed "Must be in the past" error when closing and re-opening publish menu whilst scheduling
closes https://github.com/TryGhost/Team/issues/1399

- the publish/schedule save type was not being reset when closing the publish menu, even though the underlying post publish date _was_ reset leading to the publish menu and the post state being out of sync
- added a reset of the save type when closing the menu, this means "schedule" will need to be re-selected when re-opening the menu but that follows the same behaviour as the reset of the publish menu options
2022-03-11 10:13:08 +00:00
Sanne de Vries
118e5b40ca Fixed subtitle alignment issue on setup 2022-03-10 22:00:42 +00:00
Kevin Ansfield
79afb5fc9c Added "Name" and "Email" filters to members screen
closes https://github.com/TryGhost/Team/issues/1408
closes https://github.com/TryGhost/Team/issues/1409

- adds new text-based filters that match against member names and emails that allows more specific filtering than search
  - new filter operators introduced for "contains", "does not contain", "starts with", and "ends with"
2022-03-10 16:45:24 +00:00
James Morris
a5002e8765 Increased size of members filters to better include all choices
refs: https://github.com/TryGhost/Team/issues/1418
2022-03-10 16:19:31 +00:00
Kevin Ansfield
e6b02fb416 Deleted unused get-started modal code
refs https://github.com/TryGhost/Team/issues/1412

- we've switched to a full "done" page instead so the now-unused modal and related styling can be cleaned up
2022-03-10 16:13:50 +00:00
James Morris
4ec15f7323 Tweaked visual things for polish with Activity
refs: https://github.com/TryGhost/Team/issues/1373

- Simplify the member details link on single member activity
- Adjust all the activity scrolling to work better at all sizes
- Make the header work properly with truncating at narrower viewports
- Remove unnecessary CSS and classes
- Remove the top line from the member detail box
- Move the member detail box so it stays when scrolling
- Make the empty state work with new member detail box position
- Better scrolling full width whilst not having full width like members
- Fix the subscriptions event icon which was a white box in dark mode
- Adjustments to global gh-list-scrolling styles at narrower viewports
- Test fully on narrower viewports and major browsers
2022-03-10 15:24:38 +00:00
Kevin Ansfield
12729bb469 Improved authentication timing in setup flow
https://github.com/TryGhost/Admin/pull/2286

- `session.authenticate()` returns from it's promise as soon as the authenticate request is completed but it was assumed that it returned after the `session.handleAuthentication()` promise was also completed. A side-effect of that was that depending on network timing, the setup flow could transition to the dashboard before we had loaded all of the necessary user, config, and settings requests
  - normally that's not a problem because `handleAuthentication()` kicks off a transition once authentication is fully complete, in the setup flow we're handling the transition manually so need a way to manage the full async flow from outside of the session service
  - it didn't show up as a problem previously because the setup flow transitioned to a third setup screen that didn't require all of the post-auth data to exist
- moved the async parts of `session.handleAuthentication()` into a task and updated to return the currently running task instance if one was already running
  - lets code that is relying on the full authentication flow to have completed call `await this.session.handleAuthentication()` without causing a double-load of the post-auth API requests
- updated setup flow
  - removed manual `session.populateUser()` call as that was a workaround for the async timing issue and caused a double-fetch of the current user API endpoint
  - added an `await this.session.handleAuthentication()` call to the manual post-auth handler so we don't transition until the full auth flow is complete
2022-03-10 11:53:37 +00:00
James Morris
b8f5fad9fe Updated the copy for All Done screen
refs: https://github.com/TryGhost/Team/issues/1376
2022-03-10 11:50:35 +00:00
James Morris
ae1ead69e4 Fixed a hbs linting problem with the Clear Member button
no issue
2022-03-09 17:25:59 +00:00
James Morris
e0f1271a31 Reduced Activity on Dashboard down to 5 from 10
refs: https://github.com/TryGhost/Team/issues/1373

- reduced from 10 to 5 to keep things visually simpler
- sneaked in a little colour tweak to link on activity member detail header
2022-03-09 17:17:47 +00:00
James Morris
ae9f4a4ac8 Tweaked to slightly improve empty filters on Activity
refs: https://github.com/TryGhost/Team/issues/1373

- nothing much here, just changing where the member detail header renders on activity
- added a little padding to empty states to better vertically center
2022-03-09 17:07:01 +00:00
James Morris
a26ca9bec6 Added some tweaks to Members Detail link for Activity
refs: https://github.com/TryGhost/Team/issues/1373

- changed searched name clear to say Clear Member as there was duplicates across the screen
- tried to tidy up the Member Detail link when filtered by members in Activity
- few tiny CSS tweaks
2022-03-09 16:59:55 +00:00
Kevin Ansfield
652fc883d7 Changed default member filter to "Name is"
refs https://github.com/TryGhost/Team/issues/1408

- "Name" is the first filter in the list and has a basic value type so it makes sense to make it the default compared to label
2022-03-09 16:52:51 +00:00
Kevin Ansfield
af08f050d3 Added "Email" members filter
refs https://github.com/TryGhost/Team/issues/1409

- added filter property definition using the same "contains" operators and parsing supported added for the "Name" filter
2022-03-09 16:05:28 +00:00
James Morris
b6426e5a00 Cleaned up members activity flow between that and details
refs: https://github.com/TryGhost/Team/issues/1373
2022-03-09 15:02:36 +00:00
James Morris
f245b56f7a Updated loading state for Activity to be full height
refs: https://github.com/TryGhost/Team/issues/1373
2022-03-09 12:31:04 +00:00
James Morris
a11e4464a3 Update subscription event icon to be more generic
refs: https://github.com/TryGhost/Team/issues/1373
2022-03-09 12:31:04 +00:00
Sanne de Vries
7671ca4364 Fixed linter error 2022-03-09 12:24:36 +00:00
Sanne de Vries
00a6645a00 Added site brand color to signup button for new staff users 2022-03-09 11:53:54 +00:00
James Morris
28ecb820bc Tweaked some copy on All Done page to make a little more sense
refs: https://github.com/TryGhost/Team/issues/1376
2022-03-09 11:23:49 +00:00
Rishabh
8800739401 Removed feature flags for small tiers beta features
Tiers will soon go to GA, and these small features that were added as part of tiers beta are now ready to go live as well along with tiers GA, so we are removing their flags and bumping them as part of tiers beta.
2022-03-09 16:17:53 +05:30
Rishabh
5b09720f1f Fixed lint 2022-03-09 14:21:16 +05:30
Rishabh
052a716d5d Removed member count from tier visibility segment
The segment select UI for restricting post access to specific tier also showed a member count for selected tiers, which was not needed as that count is dynamic and not relevant for setting access level.
2022-03-09 14:21:16 +05:30
Rishabh
987ec3f742 Added status/tier as default column for members index table
refs https://github.com/TryGhost/Team/issues/1035

- provides context on member's tier/status on default index table
- removes extra membership tier column as information is captured in status column
2022-03-09 14:21:16 +05:30
Rishabh
82d6d38b3f Fixed tier archive not updating portal preview
The tier visibility is now handled by visibility property on object, this change ensures portal preview is updated on a tier archive to show the correct Portal UI.
2022-03-09 14:21:16 +05:30
Kevin Ansfield
f65437b14c Added "Name" members filter (#2289)
refs https://github.com/TryGhost/Team/issues/1408

- switched to `@tryghost/nql` packages to get access to latest releases
- updated `GET /members` mirage endpoint with a try/catch and explicit logging to make any errors from NQL more visible
- added "Name" filter option
  - has `is`, `contains`, `does not contain`, `starts with`, `ends with` operators
  - uses a plain text field for the input value
- added support for `~`, `-~`, `~^`, and `~$` operators when generating NQL queries from filter definitions
2022-03-08 21:30:20 +00:00
Sanne de Vries
59fb35592d Updated error copy on setup page 2022-03-08 20:23:55 +00:00
Kevin Ansfield
3a9ea11213 Added "Last seen" filter to members screen
refs https://github.com/TryGhost/Team/issues/1418

- adds "Last seen" option to members filtering that lets you filter by date a member last logged in or opened an email with `before`, `on or before`, `on or after`, and `after` options
- adds "Last seen on x" data to the member details screen
2022-03-08 20:21:49 +00:00
Kevin Ansfield
4562476d4e Switched "Last seen" filter back to standard datepicker without shortcuts (#2296)
refs https://github.com/TryGhost/Team/issues/1418

- drops the block usage of `<GhDatePicker>` for the "Last seen" input that added shortcut buttons
  - not a full revert of https://github.com/TryGhost/Admin/pull/2291 as allowing block usage of the component is still useful for other component customisation
- removes CSS related to the calendar-with-shortcut buttons as we don't have any other use-cases for it at the moment
2022-03-08 20:13:33 +00:00
Kevin Ansfield
9fbb63cf41 Updated dashboard acceptance tests for latest member graphs/resources box behaviour
refs https://github.com/TryGhost/Team/issues/1376

- adjusted tests so they are in sync with expected dashboard behaviour
- removed `dashboardHideGettingStarted` feature and it's usage in the `showMembersGraphs` property as there's no longer a resource box to dismiss
2022-03-08 19:20:12 +00:00
Kevin Ansfield
3d8b06847b Cleaned up members filter nql parsing/generation
refs https://github.com/TryGhost/Team/issues/1419

- small cleanups to remove unnecessary duplication
2022-03-08 19:07:46 +00:00
James Morris
2eba17fb9c Removed the Resources Banner from the Dashboard for improved onboarding
refs: https://github.com/TryGhost/Team/issues/1376
2022-03-08 18:37:17 +00:00
Sanne de Vries
3ae3e8142a 🎨 Redesigned user authentication pages (#2286)
Refs https://www.notion.so/ghost/Invite-staff-users-steps-in-setup-guide-367737e13d97450a98a0f39ec6b68181

* Simplified the selfhoster setup flow to one setup page only
* Redesigned the reset password pages and the signup page for new staff members

Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
2022-03-08 17:30:46 +00:00
Kevin Ansfield
e46a406645 Fixed timezone handling for "on or before" date member filters
no issue

- `settings.get('timezone')` had a typo in the "on or before" nql filter generation meaning the date wasn't correctly converted to the site timezone when applying the filter
2022-03-08 17:19:44 +00:00
James Morris
fa257c3fe9 Updated the customise your site link in all done to go to settings instead
refs: https://github.com/TryGhost/Team/issues/1376
2022-03-08 16:01:55 +00:00
Peter Zimon
de1a9abe76 Fixed linter error 2022-03-08 16:47:40 +01:00
Peter Zimon
2efc7768a8 Fixed portal tiers settings margin 2022-03-08 16:40:41 +01:00
Kevin Ansfield
00991f28c9 Removed unnecessary filterType arguments in members filter value updating actions
refs https://github.com/TryGhost/Team/issues/1419

- the `filterType` argument was never used and if it is needed the full filter instance is passed around which has the `.type` property on it anyway
- dropped the `setFilterValue` action inside `<Members::FilterValue>` component as it was only calling the passed-in action with the same arguments
- makes the code a little less noisy and easier to follow
2022-03-08 15:17:00 +00:00
Kevin Ansfield
d73e9f7cfd Added array valueType to reduce members filter code duplication
refs https://github.com/TryGhost/Team/issues/1419

- continued cleanup of filtering code
  - added `array` as a `valueType` for member filters removing the need for duplicated NQL generation code between `label` and `product` filters
  - cleaned up duplicated relation string/operator handling
2022-03-08 14:43:10 +00:00
Kevin Ansfield
789d5b9395 Removed need for filter.id in members filtering
refs https://github.com/TryGhost/Team/issues/1419

- the `id` property isn't necessary for any of our use-cases and adds extra complexity to the code as we need to keep track of it and apply+increment it manually each time we work with filter instances
  - dropped the property
  - switched actions to pass the Filter instance rather than just the id so we can do direct compares when working on the filters array and modify properties on the Filter instance directly
- part of cleanup to reduce the amount of code/complexity in filtering so we can more easily refactor
2022-03-08 14:18:23 +00:00
James Morris
9bfc542400 Improved all done onboarding page to work better at smaller viewports
refs: https://github.com/TryGhost/Team/issues/1376
2022-03-08 12:17:01 +00:00
Peter Zimon
096153b9f9 Removed selectable portal settings flag 2022-03-08 11:53:19 +01:00
Rishabh
12944a4c91 Removed usage of portal products setting
refs https://github.com/TryGhost/Team/issues/1387

Tier visibility is now managed by `visibility` property, and we'll be removing the `portal_products` setting in future.
2022-03-08 15:50:21 +05:30
Kevin Ansfield
45a6286a64 🐛 Fixed Casper preview in theme directory showing an older version
no issue

- latest casper demo lives at https://demo.ghost.io
2022-03-08 09:49:52 +00:00
Rishabh
12c840787c Added default visibility to new tiers
refs https://github.com/TryGhost/Team/issues/1387

- adds default visibility as `none` for new tiers
2022-03-08 14:20:24 +05:30
Rishabh Garg
3e4e9d731b Added tier visibility handling from portal settings (#2295)
refs https://github.com/TryGhost/Team/issues/1387

This will allow us to move from the portal_products and portal_plans settings to using the visibility property on tiers to determine whether or not a tier should be visible in Portal. This updates admin to handle tier visibility property based on changes in settings. Old portal settings update is temporarily kept in though will not be used for determining visibility going forward. Also removes default product visibility being set on stripe connect.
2022-03-08 13:00:31 +05:30
Naz
74735ab59c Fixed the name of the version header
refs e23ae31e8f
refs https://github.com/TryGhost/Toolbox/issues/222

- In the referenced commit there was a mixup with the header naming used on the client. It should have been `Accept-Version` to start with. The `Content-Version` header will be returned from the server once there is logic attached to `Accept-Version` header processing
2022-03-08 11:36:46 +08:00
Peter Zimon
f29f723381 Fixed linter error 2022-03-07 18:55:04 +01:00
James Morris
539aa5af68 Added additional styling to next buttons on all done screen
refs: https://github.com/TryGhost/Team/issues/1376

- added borders to the buttons based on feedback
- increased sidebar width size based on feedback
2022-03-07 17:02:42 +00:00
Peter Zimon
581f1abeea Updated powered by badge in email settings 2022-03-07 17:35:27 +01:00
Peter Zimon
c41c72aeb4 Updated help and support links in account menu 2022-03-07 16:56:15 +01:00
Sanne de Vries
6e4229fb09 Fixed dashboard "get started" CTA's alignment issue 2022-03-07 15:09:06 +00:00
Kevin Ansfield
696fca0f9e Hid members graphs in dashboard until get-started block dismissed or members added
refs https://github.com/TryGhost/Team/issues/1406

- added fetch of a single member to the dashboard initialisation if we don't already have some members loaded in memory
- added `showMembersGraphs` getter used in the conditional for rendering the members graphs block component
  - if `improvedOnboarding` flag is disabled, return `showMemberData` so existing functionality is retained
  - will return `false` if until the single-member fetch has completed if we don't already have any members in memory
  - returns `true` if any members exist or the "get started" dashboard resources block has been dismissed
2022-03-07 13:26:52 +00:00
Kevin Ansfield
b5992de5ea Extracted dashboard members graphs block to a component
refs https://github.com/TryGhost/Team/issues/1406

- separates concerns from the Dashboard controller so it's easier to refactor and change behaviour
- pre-req for introducing optional display of the graphs based on wider system status in a clean way
2022-03-07 12:33:51 +00:00
Kevin Ansfield
e10c045947 Resolved linter errors in members-activity.hbs 2022-03-07 12:21:57 +00:00
Rishabh
3c497bfc95 Refined tiers filter on member detail screen
refs https://github.com/TryGhost/Team/issues/1029

- updates label for tier filter
- moves tier filter to subscription group
2022-03-07 17:37:50 +05:30
Kevin Ansfield
4aa9d4554e Dropped ember-useragent dependency
no issue

We made very limited use of the `ua-parser-js` sub-dependency that `ember-useragent` pulls in so it didn't seem worth having the fairly large 17KB import or the associated sub-dependency version resolutions.

- switched the two iOS and Safari detections to use associated Regexes on `navigator.userAgent`
- dropped the "Microsoft Edge not supported" message in the editor
  - old Edge is still not supported but it was been replaced with a Chromium-based version that is supported a while back
  - we can re-introduce a warning if we get any significant reports (there is nothing showing in Sentry for this alert in the last 14 days)
2022-03-07 10:06:35 +00:00
Kevin Ansfield
020cd75369 Added shortcut buttons to "Last seen" members filter datepicker (#2291)
refs https://github.com/TryGhost/Team/issues/1410

- added block invocation support to `<GhDatePicker>` that exposes the calendar components used inside the datepicker dropdown allowing for customisation of the dropdown content
- updated "last seen" datepicker to use the block invocation support to add buttons that select typical "time ago" dates

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2022-03-04 17:09:28 +00:00
Kevin Ansfield
17710c3e8e Switched members table to show info from most-recently-updated subscription instead of first in array
no issue

- members having multiple subscriptions is not really expected but if it does happen then the most recently updated subscription is most likely to be the one that we're interested in showing the details of in the members table
- added `{{most-recently-updated arr}}` helper+function that will return the item in the array argument with the most recent "updated at" value
  - uses `updatedAtUTC` or `updatedAt` or `updated_at` values so it will work against any of our models or un-transformed API response objects
- updated `<GhMembersListItemColumn>` to use a `mostRecentSubscription` getter when showing subscription data rather than assuming the first object in the subscriptions array should be displayed
2022-03-04 16:32:41 +00:00
Simon Backx
4a8c680f59 🐛 Remove empty benefits before saving (#2284)
refs https://github.com/TryGhost/Team/issues/1188

- The api throws a validation error when we try to add benefits with an empty name
- Before saving, we remove benefits with an empty name
- Added test for empty benefit names
2022-03-04 17:00:09 +01:00
Kevin Ansfield
1f062ff844 Switched "Last seen" filter to standard date picker filter
refs https://github.com/TryGhost/Team/issues/1410

- we have problems translating an "x days ago" NQL filter back to the UI component so as a temporary measure we're switching to a datepicker input as we have a working solution for that
- a later iteration will add shortcut buttons for selecting typical "x days ago" dates in the datepicker
2022-03-04 13:55:32 +00:00
Naz
e23ae31e8f Added Content-Version header
refs https://github.com/TryGhost/Toolbox/issues/222

- Without Admin API versioning through URL, Content-Versioning header will be the best way to suggest an expected version of the resource (formatting). Having this header in place should minimize the ammount of breaking changes and would allow for the server to respond accordingly for a particular client version
2022-03-04 20:24:17 +07:00
Naz
2b7fbb2da6 Moved default Admin API address to versionless
refs https://github.com/TryGhost/Toolbox/issues/222

- Admin API has the latest version alliased without a verion to prepare to the switch in  Ghost v5. As we completely control Ghost Admin it makes sense to dogfood our latest changes
- Starting with Ghost v5 there will be no API versioning in the URL, this is groundwork for those new realities
2022-03-04 20:22:03 +07:00
Kevin Ansfield
e4fb2ca19a Added "Created", "Paid start date", and "Next billing date" date-based filters to members list screen (#2290)
no issue

- allows for filtering members by additional fields using a date picker with `before`, `on or before`, `after`, and `on or after` queries
2022-03-04 12:10:35 +00:00
Kevin Ansfield
56029ff096 Added membersContainsFilters feature flag
refs https://github.com/TryGhost/Team/issues/1408

- flag for gating access to "Name" and "Email" members filters that use NQL's contains operators
2022-03-04 11:17:17 +00:00