Commit Graph

89 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
bbd4c452b9 Updated conditionals for editorIsLaunchComplete with improvedOnboarding feature
closes https://github.com/TryGhost/Team/issues/1294

- ensures latest member activity is shown when improvedOnboarding feature is enabled no matter what the `editorIsLaunchComplete` value is to better show what the dashboard will look like when the launch wizard is removed
2022-02-07 11:11:19 +00:00
Kevin Ansfield
d3447315ee Excluded all email related events from feeds when newsletter is disabled
refs https://github.com/TryGhost/Team/issues/1290

- added `{{members-event-filter}}` helper that can be used to build an event filter string that will always exclude email events when the newsletter is disabled
  - useful when used in conjunction with `{{members-event-fetcher}}` because the filter is automatically adjusted for you without needing additional logic or JS backing files for components
- updated dashboard and member screen activity widgets to use `{{members-event-filter}}`
- updated members-activity screen
  - updated to use `{{members-activity-filter}}` helper in the template which allowed for removal of filter generation in the controller
  - changed `@hideMemberOnlyEvents` to `@hiddenEvents` on `<MembersActivity::EventTypeFilter>` so that we can control which events are available in the filter based on newsletter enable/disable and presence of a filtered member
2022-01-27 19:19:15 +00:00
Kevin Ansfield
073cdc7078 Replaced dashboard "Top members" widget with longer activity feed
refs https://github.com/TryGhost/Team/issues/1290

- when the activity feed labs flag is enabled
  - hide top members widget
  - increase number of events in activity widget from 5 to 10
2022-01-27 16:53:39 +00:00
James Morris
fa224988e5 Updated styles for Activity to address latest feedback
refs https://github.com/TryGhost/Team/issues/1277

- changed breadcrumb for activity
- added back in three columns for activity when not filtered
- made adjustments to visual look and feel
2022-01-27 15:27:26 +00:00
James Morris
2f935163d5 Added basic activity filter styling with first round icons
refs https://github.com/TryGhost/Team/issues/1277
2022-01-26 17:54:26 +00:00
James Morris
50502fa5a8 Styled activity mini-views and full-view to bring closer to design
refs https://github.com/TryGhost/Team/issues/1277
2022-01-26 14:37:34 +00:00
Kevin Ansfield
d9e6466106 Removed members activity link from main nav
refs https://github.com/TryGhost/Team/issues/1277

- removed nav item in favor of links only from the dashboard and member details screens
- added params reset to the dashboard link so you don't unexpectedly land back on a member-specific events list
- updated the members activity screen header so it's clearer this is a sub-section of members
2022-01-25 16:40:51 +00:00
Kevin Ansfield
acbc4233a8 Humanized event details on members activity screen
refs https://github.com/TryGhost/Team/issues/1277

- moved event parsing from a component to a helper
  - keeps code as a plain function
  - allows for per-event parsing which helps with rendering as we're not rebuilding/re-rendering a whole array each time the events data changes when a new page is loaded
  - updated to include full member and email objects (will be used later for email preview popup)
- updated members-activity table row component to use the event parser helper for better event details
2022-01-25 11:50:10 +00:00
Kevin Ansfield
b5db0d57d9 Updated dashboard member activity widget to use fetcher resource
refs https://github.com/TryGhost/Team/issues/1277

- re-uses same fetcher resource used on member activities screen
  - allows for component to be simplified as it no longer needs to care about handling data loading itself
  - drops use of 1-minute data caching as there is no real need for it in typical usage and can be confusing when the dashboard didn't update as expected
- exposed error message on `members-event-fetcher` if one is encountered
2022-01-22 16:04:54 +00:00
Kevin Ansfield
ec6a5637e8 Added data-cache service for managing limited-lifetime cached data
refs https://github.com/TryGhost/Team/issues/1277

- `data-cache` service has a `.set(key, data, lifetime)` method that will store the data under the key and sets a timeout that will remove the data when the lifetime expires
  - data can be retrieved with `.get(key)`
  - allows for components to cache data for use when re-rendering without having to worry about keeping track of their state and it's expiration manually somewhere else
- moved caching concern out of the `members-activity` service and into the latest-member-activity dashboard component which is the one that cares about it's data and cache lifetime
  - frees the `members-activity` service up to be more generic as it's no longer tied to the dashboard component's concerns
  - component switched to using a task rather than a promise so it is automatically cancelled if it's destroyed before data fetching is complete
2022-01-21 18:15:06 +00:00
Kevin Ansfield
92ece7b373 Refactored member activity list components
refs https://github.com/TryGhost/Team/issues/1277

- renamed `<GhActivityTimeline>` to `<GhMemberActivityEventParser>` and modified so that it yields parsed events rather than directly renders them
  - makes the component re-usable as it can be used to decorate raw events ready for use in context-specific templates
  - switches to using a getter to yield the parsed events so that they will update automatically when the `@events` argument changes
- updated `<Dashboard::LatestMemberActivity>` to use `<GhMemberActivityEventParser>` and keep the member activity box output local to itself
- added integration tests for `<Dashboard::LatestMemberActivity>`
  - added Mirage setup for member activity event models/serializers/route
2022-01-19 12:58:09 +00:00
Kevin Ansfield
0fd16d504d Fixed linter error
refs 4b3fc52cf0

- removed errant console.log
2022-01-18 15:26:16 +00:00
Kevin Ansfield
4b3fc52cf0 Extracted dashboard member activity into separate component
refs https://github.com/TryGhost/Team/issues/1277

- first step of further refactoring to make member activity display more generic
- separates component data loading from overall controller logic and allows it to be tested in integration tests as well as acceptance tests
2022-01-18 15:16:22 +00:00