Commit Graph

12512 Commits

Author SHA1 Message Date
Fabien "egg" O'Carroll
f523e1eb6b Refactored UrlHistory to use static factory method
This keeps the constructor clean, relying on types for validation,
whilst preserving the validation when creating the instance. The
constructor is now private so that the factory which handles
validation is always used.

The tests have also been updated to test the public factory interface
rather than the internal validation methods. Validation has been
rolled into a single method and slightly improved in the way of
readability.
2022-08-25 16:09:34 -04:00
Rishabh
75f08f55cf Refined email alert templates
refs https://github.com/TryGhost/Team/issues/1826
2022-08-26 01:19:55 +05:30
Fabien 'egg' O'Carroll
34eae1f284
Promoted Member Attribution to a private beta (#15316)
We promote from alpha -> beta so that we don't require the
enableDeveloperExperiments flag, the toggle in the UI is behind the
flag still, so it will only be visible to developers or people using
alpha features.
2022-08-25 15:41:43 -04:00
Simon Backx
67163209e1
Enabled member attribution flag in all tests (#15317)
closes https://github.com/TryGhost/Team/issues/1852

Updates all tests to run with memberAttribution flag enabled
2022-08-25 15:25:01 -04:00
Rishabh Garg
1bf70bf3c6
Stored geolocation for member on creation (#15320)
refs https://github.com/TryGhost/Team/issues/1826

Geolocation was prev. loaded after member was created and updated on existing member. this was mostly due to historical context where we couldn't store data on magic link token.
Since email alerts go out at the time of member creation, this flow missed out on attaching member's location to email. 
This change -

- stores request ip when a member asks for magic link in the token
- loads request ip from token when member uses magic link, and for new members loads their geolocation and stores it with member creation
2022-08-26 00:45:34 +05:30
Rishabh
b16ad52401 Updated geolocation handling for email alerts
refs https://github.com/TryGhost/Team/issues/1826

- geolocation is a stringified json on member, needs parsing
2022-08-26 00:17:41 +05:30
Simon Backx
977aba928c Updated admin lint todo 2022-08-25 18:13:48 +02:00
Simon Backx
da48f70267 Fixed empty member attribution filter loading state
refs https://ghost.slack.com/archives/C02G9E68C/p1661442387532489?thread_ts=1661419289.348579&cid=C02G9E68C

When filtering on attribution, the filter was already applied when the array was empty, causing an invalid NQL filter.
2022-08-25 18:03:32 +02:00
Rishabh Garg
a31af1dfe7
Refined mail template for member alerts (#15318)
refs https://github.com/TryGhost/Team/issues/1826

- added email to html templates
- design refinements

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2022-08-25 21:27:50 +05:30
Simon Backx
d04276ab4d Fixed width flicking on full width for pages and posts
fixes https://github.com/TryGhost/Team/issues/1838

- The loading template was setting a different class
- That class is not used any longer
- Removed that part of the code
2022-08-25 17:26:50 +02:00
James Morris
50f027cccf Reordered the filtering in the dropdown for the member attribution
refs https://github.com/TryGhost/Team/issues/1854
2022-08-25 16:17:22 +01:00
Rishabh
891f19a563 Fixed email alert tests
refs c00205bb61
2022-08-25 20:46:54 +05:30
Simon Backx
2bc79cd94f Updated attribution counts linking to editor if zero
refs https://github.com/TryGhost/Team/issues/1843

- Also fixes that attribution counts are hidden for contributors
2022-08-25 17:09:22 +02:00
James Morris
913ea4e54f Updated the activity page to now be called member activity
- This changes the page title
- This also changes the links to see more

refs https://github.com/TryGhost/Team/issues/1853
2022-08-25 16:07:22 +01:00
Rishabh
c00205bb61 Updated copy for cancelation alerts
refs https://github.com/TryGhost/Team/issues/1826
2022-08-25 20:36:48 +05:30
Rishabh
ad2934ba71 Cleaned up staff service package
refs https://github.com/TryGhost/Team/issues/1826
2022-08-25 20:36:09 +05:30
James Morris
22b0586667 Tweaks to column sizes for events and a way to show new event icons for feature flag
- Has better column widths and fixed a bug with the time one
- Now allows to show alternative icons for feature flag

refs https://github.com/TryGhost/Team/issues/1851
2022-08-25 16:01:53 +01:00
James Morris
b01a56e057 Adjustments to the event look in the table
- More adjustments to make the event stronger and the link lighter and less messy
- Checking in the icons but need to wire them up

refs https://github.com/TryGhost/Team/issues/1851
2022-08-25 16:01:53 +01:00
Simon Backx
38ce6ee66e Fixed blank line linting issue 2022-08-25 16:47:52 +02:00
Rishabh
e6246b191e Updated options format in email alert method to prevent filter override
refs https://github.com/TryGhost/Team/issues/1826

- doesn't allow `filter` to be overridden by passed in options
2022-08-25 20:15:54 +05:30
Simon Backx
6e2579ec9d Moved parse-member-event helper to class syntax
no issue

- Added feature service in it
2022-08-25 16:42:19 +02:00
Rishabh
4ac1a2c21e Added paid subscription cancel email alert
refs TryGhost/Team#1826

- triggers paid subscription cancellation alert for staff users
- passes tier and subscription information for the email - loads tier info from DB for the subscription tier
2022-08-25 19:53:02 +05:30
Rishabh
216eeb9d71 Added paid subscription start email alert
refs TryGhost/Team#1826

- triggers paid subscription start email via staff service
2022-08-25 19:53:02 +05:30
Rishabh
aeadf8a5e1 Added email alert trigger for free member signup
refs TryGhost/Team#1826

- fires email alert on free member creation after they finish signing up via checkout link
2022-08-25 19:53:02 +05:30
Peter Zimon
5f157efcd9 Added avatars to Audit log
refs. https://github.com/TryGhost/Toolbox/issues/356

- the list needed avatars and action icons to be able to easily scan who's doing a lot of actions and what actions have been done at the same time
2022-08-25 15:42:44 +02:00
Simon Backx
a8239bfa97
Added ENUM validation for member/subscription created events (#15312)
closes https://github.com/TryGhost/Team/issues/1842

- members_created_events: source + attribution_type
- members_subscription_created_events: attribution_type
- members_subscribe_events: source
2022-08-25 15:39:37 +02:00
James Morris
42dfa4c552 Fixed bug where MRR was coming after link in events
refs https://github.com/TryGhost/Team/issues/1851
2022-08-25 14:27:14 +01:00
James Morris
86a0f103e9 Going for a simpler design for events
- The extra column made sense logically but was causing too many issues
- Going to try the single setence again but change visual style to be easier to parse
- Making sure this works around the feature flag

refs https://github.com/TryGhost/Team/issues/1851
2022-08-25 14:20:01 +01:00
Simon Backx
232882daa2 Mapped '/' attribution url to homepage
fixes https://github.com/TryGhost/Team/issues/1846

- Shows homepage instead of / for attribution values
2022-08-25 14:51:38 +02:00
Rishabh
281d52610f Added staff service to manage email alert notifications
refs TryGhost/Team#1826

- adds new service package that manages all the email alert notifications for free members and paid subscriptions
- includes email templates for free member signup and paid subscription start/cancel
- initializes staff service before members to allow managing email alert notifications
- passes staff service to members api for triggering alerts
2022-08-25 18:01:52 +05:30
Rishabh
effd5af615 Handled fetching staff users for email alerts
refs TryGhost/Team#1826

- adds a method on user model which fetches all eligible users for a type of email alert
- restricts users to active `Owner` and `Administrators` with setting turned on
2022-08-25 18:01:52 +05:30
Simon Backx
59e796d321 Removed signup and conversion columns on members table
fixes https://github.com/TryGhost/Team/issues/1850

When member attribution is enabled, the signup or conversion columns are shown when filtering on them. This data is not yet available via the API when browsing members. So these columns are now hidden.
2022-08-25 14:20:00 +02:00
Simon Backx
9dbb2785bb Fixed members table filters and URL handling in admin
fixes https://github.com/TryGhost/Team/issues/1344
fixes https://github.com/TryGhost/Team/issues/1127

This fixes a couple of bugs with the filter menu on the members page in admin:

- When opening the members page, the filters property was passed back from the filter component to the members controller. This caused a bug that the filter columns where not visible on reload.
- Fixed handling invalid filter parameters
- When updating the URL, the members page now properly reloads
- Fixed a bug that 'falsy' values in the NQL filter were removed on reload:
    - Filtering on unsubscribed members was gone after a page reload
    - Filtering on 0 emails was gone after a page reload
    - This is fixed by converting numbers and booleans to strings after parsing the NQL-filter
- Fixed a bug where boolean values didn't match any value in the select menu, causing the default option to be visible
    - Filtering members by 'unsubscribed' -> parsed as false (boolean) -> select menu opened -> false value (boolean) didn't match 'false' (string) so the first option was shown instead (subscribed).
    - This is also fixed by converting numbers and booleans to strings after parsing the NQL-filter

The way this is currently handled is not great. The parsing happens in the filter component, but should happen on a different layer, maybe in a different helper.
This is tracked here: https://github.com/TryGhost/Team/issues/1849
2022-08-25 14:10:18 +02:00
James Morris
403d24a01b Locked the status column so it works better at larger screen sizes
refs https://github.com/TryGhost/Team/issues/1848
2022-08-25 12:30:39 +01:00
Peter Zimon
2819dfd2ba Re-aligned post status
no refs.

- the post status was too much floating in the post list, especially on large screens
2022-08-25 13:29:50 +02:00
Peter Zimon
a94e9b2e74 Updated Audit log table view
refs. https://github.com/TryGhost/Toolbox/issues/356

- the readability of the Audit log table wasn't great as the very repetitive "actor" was the primary info
- the link to the actor (staff user) was missing
2022-08-25 13:09:38 +02:00
Rishabh Garg
da62355e18
Wired email alert settings for staff users on admin (#15313)
refs TryGhost/Team#1826

- allows staff users to manage their email alert settings behind the flag
- only owner and admin users are able to toggle their email alerts
2022-08-25 15:47:14 +05:30
James Morris
b51d81843b Move back away from membership to subscription wording for events
refs https://github.com/TryGhost/Team/issues/1847
2022-08-25 10:58:58 +01:00
James Morris
258192e47c Moved from attribution to better copy
refs https://github.com/TryGhost/Team/issues/1845
2022-08-25 10:47:11 +01:00
Simon Backx
2099d1b3ee Added link to filtered members page on attribution counts
refs https://github.com/TryGhost/Team/issues/1843

- Added link to filtered members list when clicking the signup or conversion member counts in the posts and pages table
- Temporary hover style added
2022-08-25 11:37:45 +02:00
Naz
6e76fcc36a Parameterized api sourced verification threshold
refs https://github.com/TryGhost/Toolbox/issues/387

- The limit values should be as configurable as possible to adjust verification thresholds dinamically per-usecase. This solves a problem of doing a separate version release when we need to adjust the verification thresholds.
- Before this "importThreshold" was the same concept as "apiThreshold", which makes it hard&confusing to reason about and hard to parameterize each specific case.
2022-08-25 17:07:10 +08:00
Simon Backx
7d2f49a0a8 Cleaned up admin posts list item template for contributors
no issue

Contained some template code that would never be used and fixed email icon.
2022-08-25 11:04:53 +02:00
Naz
e9393ba38c Fixed tests
fixes 7e3b8ff404
refs https://github.com/TryGhost/Toolbox/issues/387

- The tests were not run properly after the referenced changes were made.
2022-08-25 15:38:26 +08:00
Rishabh
7182ee0e85 Added feature flag for email alerts
refs https://github.com/TryGhost/Team/issues/1826

- adds alpha flag for setting up email alerts for staff users
2022-08-25 13:03:13 +05:30
Naz
7e3b8ff404 Added email verification trigger for admin requests
refs https://github.com/TryGhost/Toolbox/issues/387

- When members are added through the Admin client they have to be a part of instance validation process to prevent service misuse.
2022-08-25 14:26:44 +08:00
Naz
7cae68baaa Renamed trigger amount variable
refs https://github.com/TryGhost/Toolbox/issues/387

- Similar reasoning as to previous renames - the variables were named with a single trigger source in mind and now would be confusing with multiple verification trigger sources.
2022-08-25 14:26:44 +08:00
Naz
1e96ef849f Renamed verification parameters
refs https://github.com/TryGhost/Toolbox/issues/387

- The "amountImported" was to specific to one verification trigger source. There can be multiple sources that start the verification process.
- Changed `startVerificationProcess` method signature to reflect it's a private method that's only used internally - exposed for testing purposes only.
2022-08-25 14:26:44 +08:00
Naz
780faf990b Fixed typo 2022-08-25 14:26:44 +08:00
Naz
8892a60948 Renamed verification threshold parameter
refs https://github.com/TryGhost/Toolbox/issues/387

- There will three distinct verification limits soon. To keep the naming clear "configThreshold" would be too generic/confusing to use.
- Introduced jsdoc descriptions for the "source" parameter, which will be corelating with each new config parameter ("apiTriggerThreshold", "importTriggerThreshold", "adminTriggerThreshold", etc.). This should give a better visibility into parameters we are dealing in this area.
2022-08-25 14:26:44 +08:00
Naz
243aa9c834 Refactored member subscribe handler generic
refs https://github.com/TryGhost/Toolbox/issues/387

- I'm about to add  another event source -  "admin". Before doing that made the method more parameter dependent, so it can handle limit triggering logic from multiple source and based on multiple configuration parameters.
2022-08-25 14:26:44 +08:00