Commit Graph

15619 Commits

Author SHA1 Message Date
renovate[bot]
a26cbacfd6 Update dependency @playwright/test to v1.28.1 2022-11-24 10:03:08 +07:00
Hannah Wolfe
e4dbf9b0fd Updated error fallbacks to generic error message
refs: https://github.com/TryGhost/Team/issues/1121

- We've decided on one  preferred message for unexpected errors
- We want to use this everywhere where we don't know what to display
- We now have a GENERIC_ERROR_MESSAGE constant that we should use
2022-11-23 21:49:40 +00:00
Hannah Wolfe
907319a507 Renamed mw-error-handler test file to match lib
- minor inconsistency in naming was tripping me up
2022-11-23 21:49:40 +00:00
Elena Baidakova
e1ba0f6a2d
Fixed member avatar size (#15871)
closes TryGhost/Team#2279
2022-11-23 20:01:23 +04:00
Hannah Wolfe
32353f2920 Removed detail rule from showAPIError
refs: https://github.com/TryGhost/Team/issues/1121

- showAPIError is a method intended for formatting errors from the Ghost API
- Ghost API Errors do not have a detail field, therefore this code was redundant
- there are also no related tests
- removing now because I'm trying to cleanup and streamline all our error handling code
2022-11-23 15:56:58 +00:00
Hannah Wolfe
c740eecaec Fixed duplicate error messages from API
refs: https://github.com/TryGhost/Team/issues/1121

- In certain cases our API sends the same data for message and context.
- We will also fix this server-side, but we should also be smart in the UI and not show duplicate info
2022-11-23 15:56:58 +00:00
Silvan Hagen
4ed245a405 fix: missing "the" in sentence regarding trial 2022-11-23 15:38:48 +00:00
renovate[bot]
0ca3031df1 Update sentry-javascript monorepo to v7.21.1 2022-11-23 15:15:14 +00:00
Kevin Ansfield
9ceecba5fd Added TransitionAborted errors to Sentry's ignore list
no issue

- "unhandled" `TransitionAborted` errors almost always occur as part of expected application behaviour and were causing a lot of noise in Sentry making it harder to track down real errors
- when a `TransitionAborted` error occurs outside of expected behaviour it will usually be accompanied by other errors that do get logged
- there's a long-standing Ember issue about how aborted transition errors should be handled at https://github.com/emberjs/ember.js/issues/12505
2022-11-23 13:23:47 +00:00
Hannah Wolfe
62cd52ff98 Improved Sentry server side error reporting
refs: https://github.com/TryGhost/Team/issues/1121
refs: 54574025e0

- The previous change to fall back to a generic error on the server side is resulting in lots of much less useful Sentry reports
- For unexpected errors, change what's sent to Sentry back to context
- This is done by adding a specific code, so we don't have to match on a string that might change
- Also add the error type, id, code & statusCode as tags to the events - these are searchable structured data
- Adding code as a tag also makes it possible to find all errors that showed the generic message
2022-11-23 12:37:24 +00:00
Hannah Wolfe
36b80f2dda Updated sentry to use @tryghost/version
- As demonstrated by my comments in the boot file, I thought sentry was already depending on the version package
- IMO it's undesirable to require package.json directly esp when we have a tool setup and ready for tis
- Added a bunch of tests to show that Sentry does roughly what we think
2022-11-23 12:37:24 +00:00
Kevin Ansfield
d15f740a3f Fixed TaskCancelation errors
sentry issue: ADMIN-AY5

- added guards for cancelation errors where we're casting tasks to promises
- see http://ember-concurrency.com/docs/task-cancelation-help for full details
2022-11-23 10:42:40 +00:00
Elena Baidakova
8d9d22e5a7
Added member API for removing email from suppression list (#15867)
closes TryGhost/Team#2306
2022-11-23 14:41:00 +04:00
Simon Backx
4b4592630f
Added new email batch sending service (#15865)
fixes https://github.com/TryGhost/Team/issues/2284

New batch sending flow (still WIP). Logs the sent emails instead of actually sending them. Unit tests are coming in later commits.
2022-11-23 11:33:44 +01:00
Rishabh
9b0c21e0a2 Populated email table source with existing html data
refs https://github.com/TryGhost/Team/issues/2280

- updates `source` value for all existing rows to contain `html` data for future compatibility with new columns
2022-11-23 15:04:11 +05:30
Rishabh
5780fc2a93 Added new source and source type columns to emails table
refs https://github.com/TryGhost/Team/issues/2280

We are moving away from storing html and plaintext on email and instead will store the email data in source and source_type columns which allows us to store the email in other formats like mobiledoc and lexical. Storing in those formats allows greater flexibility for later html generation

- adds new `source` column that stores `mobiledoc`/`lexical`/`html` data for a newsletter
- adds new `source_type` column that stores one of `mobiledoc`/`lexical`/`html` to identify type of source
2022-11-23 15:04:11 +05:30
Rishabh Garg
d3267dd5b0
Added columns to store error information for email batches (#15859)
closes https://github.com/TryGhost/Team/issues/2290

Currently, if the whole batch of email fails to send we don’t capture
any errors directly tied to the batch. This makes it hard to debug which
and why a batch failed when debugging email errors. Going forward we'll
store the error information for a failing email batch directly that
allows easier debugging for batch.

- `error_status_code` : Captures statusCode returned by Mailgun,
available in error.status from the example batch error
- `error_message` : Captures short error message from Mailgun and
status, available in context object of batch error
- `error_data` : Captures while whole error json for a batch. As
mentioned in pitch, this will be huge data and we’ll figure out long
term how to best use this.
2022-11-23 13:13:49 +05:30
renovate[bot]
e4e8df44dd Update sentry-javascript monorepo to v7.21.0 2022-11-23 12:29:15 +07:00
Hannah Wolfe
682f3a2014 Downgraded express-hbs errors to 400
refs: https://github.com/TryGhost/Team/issues/2289
refs: https://github.com/TryGhost/express-hbs/issues/161

- Themes that resuse layouts as templates trigger horrible errors, which are thrown as 500s
- But there's nothing the server is doing wrong, it's a theme user, so we downgrade these to 400s
- There is more to do here to improve the errors shown, but this is just a first step to ensure that theme issues don't look like server failures
2022-11-22 18:20:33 +00:00
Sam Lord
f6870fa846 Added browser-based testing framework
refs: https://github.com/TryGhost/Toolbox/issues/479

Framework includes:
* command to run tests
* command to record tests
* mechanism for starting and stopping Ghost before and after each suite of tests
* mechanism for loading fixtures into Ghost before starting tests
* sample test for controlling Ghost Admin
2022-11-22 14:12:34 +00:00
Kevin Ansfield
3a9209b6a8 Fixed some minor formatting issues
no issue

- indented conditional template code
- grouped tracked properties together
2022-11-22 13:15:08 +00:00
Kevin Ansfield
f25cc00236 Fixed product card throwing "Cannot read properties of undefined (reading 'url')" errors
closes https://github.com/TryGhost/Team/issues/2295

Problem:
- `<GhUploader>` is not yet converted to an Octane component so it's arguments are not read-only
- when a file is selected it sets it's `files` property which in turn updates the tracked `files` property that was passed in, and then again updates it to an empty file list when the input field is cleared
- that tracked property was never cleared once the product image was uploaded resulting in a "re-upload" attempt with an empty file list every time the product card was put back into edit mode

Fix:
- added a guard in `<GhUploader>` so it doesn't try to upload an empty file list if one is passed in as an attribute
- added a reset of the tracked `files` property in the product card once the image upload is complete
2022-11-22 13:13:42 +00:00
renovate[bot]
955605572e Update dependency testem to v3.10.0 2022-11-22 17:38:30 +07:00
Fabien "egg" O'Carroll
f056614b45 Wired up EmailSuppressionList to MEGA
refs https://github.com/TryGhost/Team/issues/2269

This ensures that we do not send emails to members who's email is on
the email suppression list
2022-11-22 13:26:28 +07:00
Naz
1b526800f0
Added note on package/class naming
no issue

- The name of the "StaffService" is ambiguous and too generic. Lack of good naming makes one to dig into the implementation details figuring out what the service does.
- Should be named a more descriptive way
2022-11-22 11:25:11 +07:00
renovate[bot]
43f5547ae0
Update metascraper to v5.32.1 2022-11-21 15:31:26 +00:00
renovate[bot]
7978bf5a6f
Update dependency cron-validate to v1.4.5 2022-11-21 12:34:38 +00:00
Hannah Wolfe
54574025e0 Improved server-side error handling
refs: https://github.com/TryGhost/Team/issues/1121
refs: dfffa309a8

- This makes a fundamental change to Ghost's server side error handling, so that no unhandled errors are used as API responses
- Anything that has been handled and rethrown as a Ghost error cna be trusted
- We also already trust a couple of known errors from bookshelf and handlebars
- Everything else is assumed to be a code error, and should not be shown as the main message
- Instead we use our generic fallback message and use the OG error as context
2022-11-21 12:13:16 +00:00
Peter Zimon
b0ac096d94 Fixed content importer email on errors
no refs.

- the content importer didn't send emails on unhandled errors
2022-11-21 13:09:33 +01:00
Elena Baidakova
48a47a8289
Removed duplicate icons for events (#15854)
closes TryGhost/Team#2264
2022-11-21 14:50:39 +04:00
Simon Backx
44f189b56a
Added email service package (#15849)
fixes https://github.com/TryGhost/Team/issues/2282

Added a new email service package that is used when the email stability
flag is enabled. Currently not yet implemented so will throw an error
for all entry points (if flag enabled).

Removed usage of `labs.isSet.bind` across the code, because that breaks
the stubbing of labs by `mockManager.mockLabsEnabled` and
`mockManager.mockLabsDisabled`. `flag => labs.isSet(flag)` should be
used instead.

All email depending tests now disable the `emailStability` feature flag
to keep the tests passing + make sure we still run all the tests for the
old flow while the email stability package is being built.
2022-11-21 10:29:53 +01:00
renovate[bot]
96aa1c930c Update dependency @playwright/test to v1.28.0 2022-11-21 15:37:46 +07:00
renovate[bot]
c4e41909a6 Update dependency html-validate to v7.10.0 2022-11-21 15:36:36 +07:00
Daniel Lockyer
0b386952fb
Deleted .gitignore file in members-api package
- this is no longer needed/wanted as we don't ship types files in the
  members-api package
2022-11-21 14:26:48 +07:00
Ronald Langeveld
c70a1f262d
Added image upload progress to Koenig-Lexical-Editor (#15852)
ref https://github.com/TryGhost/Team/issues/2237

- Adds an upload progress function, to be used with Koenig-Lexical.
2022-11-21 10:52:37 +07:00
renovate[bot]
0c2a62f47c
Update Test & linting packages 2022-11-18 23:04:37 +00:00
Peter Zimon
3cf3e5b5c4 Updated content importer to fail only on errors
no refs.

- the content importer sent an "Import failed" email even if only warnings occured during import
2022-11-18 19:07:03 +01:00
Ghost CI
a3376fe502 v5.23.0 2022-11-18 15:00:50 +00:00
Ghost CI
952df7070c 🎨 Updated Casper to v5.4.1 2022-11-18 15:00:49 +00:00
Simon Backx
6c84e10e46 Added email stability feature flag
no issue
2022-11-18 15:46:18 +01:00
Simon Backx
5c2f0b9a4b
Removed getCreatedEvents and added verification trigger test (#15832)
refs https://github.com/TryGhost/Team/issues/2266

This removes the deprecated `getCreatedEvents` method in the event
repository and adds tests to the verification trigger to see if we don't
break anything.

Changes extracted from https://github.com/TryGhost/Ghost/pull/15831
2022-11-18 15:05:15 +01:00
Simon Backx
2220686113 Sped up comments and feedback tests by reusing Ghost app instance
refs https://ghost.slack.com/archives/C02G9E68C/p1668777066462859

Added a duplicate method to the mmebers agent, so we can reuse the same app instance and options, whenever we need multiple agents (each with their own cookies).
2022-11-18 14:58:35 +01:00
Peter Zimon
bb91bfd1ee Fixed copy bug in content import email
no refs.

- the title and the preview text of the content import email contained the copy from the member import email
2022-11-18 12:58:35 +01:00
Elena Baidakova
696cdea4d9
Add member's email status on member page (#15844)
closes TryGhost/Team#2270
- Show emails status depending on the reason email was blocked
(spam/fail)
2022-11-18 15:55:21 +04:00
Peter Zimon
ab8f16ce79 Updated copy for content import emails
no refs.
2022-11-18 12:49:55 +01:00
Elena Baidakova
9d6bcdba47
Added spam event to feed in frontend admin (#15847)
closes TryGhost/Team#2248
2022-11-18 14:33:48 +04:00
Fabien 'egg' O'Carroll
8283de99c8
Wired up EmailSuppressionList to Members Admin API (#15848)
refs https://github.com/TryGhost/Team/issues/2268

The approach of using the service to lead email suppression data as
opposed to bookshelf relations allows us to wire things up without
having implemented the database. The getBulkSuppressionData allows us to
do this without much of a DB performance hit.
2022-11-18 16:28:13 +07:00
Ronald Langeveld
08232bd538
Cleaned up GA Flags (#15762)
closes https://github.com/TryGhost/Team/issues/2126

- Cleaned up the following GA flags: `newsletterPaywall`, `freeTrial`, `compExpiring`, `searchHelper`, `emailAlerts`, `fixNewsletterLinks`.
2022-11-18 16:09:25 +07:00
Rishabh
33b959257c Released Portal v2.20.1 2022-11-18 14:32:46 +05:30
Rishabh
2487a314f5 Added guard for missing portal plans in portal site data
refs https://github.com/TryGhost/Team/issues/2276

Portal died with an unintelligible error about portal plans/includes being undefined when there was another react error on the page. The other error somehow caused the `site` data to be empty object for Portal, and there was one place where we didn't check for the empty object while transforming the site data which caused the failure.

This change adds the guard for failing check so we don't throw the error in such cases and process as normal.
2022-11-18 14:31:35 +05:30
Fabien "egg" O'Carroll
dd256f3517 Fixed lint for @tryghost/email-suppression-list 2022-11-18 15:06:56 +07:00
Fabien "egg" O'Carroll
9add72ebb1 Fixed tests for @tryghost/email-suppression-list
These were missing and caused the build to fail
2022-11-18 14:59:06 +07:00
Fabien "egg" O'Carroll
cbe1573fd5 Added email-suppression-list service & mock implementation
refs https://github.com/TryGhost/Team/issues/2267

This will eventually be replaced by a Mailgun specific implementation,
but for now we're using mock one which responds with fake data for
local development.
2022-11-18 14:11:47 +07:00
Fabien "egg" O'Carroll
22fe3ec88b Added @tryghost/email-suppression-list package
refs https://github.com/TryGhost/Team/issues/2267

This package contains definitions for the public interface of the
email suppression list as well as an abstract implementation.
2022-11-18 14:06:11 +07:00
renovate[bot]
426c515f83
Update dependency ember-template-lint to v4.18.2 2022-11-18 01:29:10 +00:00
renovate[bot]
313c1788d9
Update dependency mailgun.js to v8.0.6 2022-11-17 22:31:28 +00:00
Hannah Wolfe
dfffa309a8
Improved member importer error handling (#15843)
refs: https://github.com/TryGhost/Team/issues/1121

- This makes several key changes to the way errors are handled in the member importer, to ensure that we only show error messages to users that we wrote.
- Fundamentally, we no longer trust all API errors, and instead only trust a set of very specific API errors. Anything outside of that is replaced with a generic error message.
- Also switches the server-side error generated for email verification (which can throw during member import) to be a HostLimitError, as that is a more appropriate class.
- Note: there are many other parts of Ghost admin that need a similar overhaul, and a similar change we need to introduce server side to fully resolve the underlying issue of bubbling up code errors to the UI.
2022-11-17 19:41:39 +00:00
Peter Zimon
5bb2b2c614 Added modal-import-content to lint todo 2022-11-17 18:15:17 +01:00
Peter Zimon
75fea80de6 Fixed screen flicker in content import modal
no refs.

- the "Uploading" step on the content import modal was empty which resulted in a quick flicker during upload.
2022-11-17 18:11:11 +01:00
Sam Lord
49605a9559 Enabled browser-based tests to start Ghost with default test fixtures
refs: https://github.com/TryGhost/Toolbox/issues/479
2022-11-17 17:00:54 +00:00
Sam Lord
bbbef3555f Fixed lint-todo file after rebase
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
904fc55648 Fixed lint issue in email-template for content importer 2022-11-17 14:40:24 +00:00
Rishabh
26aa19c36a Added import modal lint errors to todo 2022-11-17 14:40:24 +00:00
Rishabh
3c5b523a43 Revert "Updated ember action usage"
This reverts commit 31b4d34b90.
2022-11-17 14:40:24 +00:00
Rishabh
9dea8f13d8 Updated ember action usage 2022-11-17 14:40:24 +00:00
Sam Lord
881f0b33be Fixed lint issues
no issue
2022-11-17 14:40:24 +00:00
Peter Zimon
0b8a01814b Fixed condition in result email 2022-11-17 14:40:24 +00:00
Peter Zimon
4068d8c65c Fixed content importer UI logic and email
- `result` parameter was wrongly passed to email
- email subject condition was reversed
- udpated email copy (still WIP)
- removed console.log from admin file selector
2022-11-17 14:40:24 +00:00
Sam Lord
4fb05ab165 Prevent warnings from being displayed in email after content import
no issue

Warnings that aren't useful shouldn't be displayed, especially when this is likely someone's first experience of Ghost.
2022-11-17 14:40:24 +00:00
Sam Lord
6a17b684ec Fixed uploading zip files in import job
no issue
Zip files involved a call to `await`, which caused the microtask queue to be processed. The zip file is deleted during this time because the request has already completed.
2022-11-17 14:40:24 +00:00
Peter Zimon
d0c2af7a15 Fixed API params 2022-11-17 14:40:24 +00:00
Peter Zimon
739efa5a36 Fixed file upload bug 2022-11-17 14:40:24 +00:00
Peter Zimon
3eaa00bddb Restructured modal open logic
no refs.

- Navigating to `/settings/labs/import` opened the modal but also transitioned to a blank page in the background. Restructured content import modal so it's opening on top of the Labs page.
2022-11-17 14:40:24 +00:00
Sam Lord
9e54128a39 Reverted unrelated changes in test file
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
5619348c26 Replaced "Open Importer" button with one that works
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
d5f8a2b59d WIP importer modal
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
fc291240d5 Updated importer test to use new object return format
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
56a6b5702a Made content import run inline by default in test environment
refs: https://github.com/TryGhost/Toolbox/issues/431
2022-11-17 14:40:24 +00:00
Sam Lord
3e13918e57 Made content import API return semantic HTTP codes
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
5309660986 Improved content import email
no issue
2022-11-17 14:40:24 +00:00
Sam Lord
ee6415ebd1 Remove bluebird from data-importer.js
no issue

Missed from previous commit
2022-11-17 14:40:24 +00:00
Sam Lord
7c6854651d Added tag to posts when importing content
refs: https://github.com/TryGhost/Toolbox/issues/431
2022-11-17 14:40:24 +00:00
Sam Lord
8ed5f9784d Added a job for content imports
refs: https://github.com/TryGhost/Toolbox/issues/431
2022-11-17 14:40:24 +00:00
Simon Backx
9c12a2a043
Limited Stripe price lookups (#15823)
refs https://github.com/TryGhost/Team/issues/2262

Makes sure we only loop active Stripe prices. If we find an inactive
price, we also update it in our database now after this change.
2022-11-17 14:33:46 +01:00
Simon Backx
69228b2947
🐛 Fixed race condition when sending email (#15829)
refs https://github.com/TryGhost/Team/issues/2246

- This change helps avoid race conditions due to a lack of a transaction
in the email job. It also moves the status check before creating the
email batches (can take a while) to prevent other timing issues in case
the job got scheduled multiple times.
- Sets the patch option to true when changing the status of an email
batch. If we don't do this, the bookshelf-relations plugin might try to
save relations too. This could have caused a 'no rows updated' error.
- Added a test that tests if the email job can only run once
- Added logging to batching logic
2022-11-17 13:36:52 +01:00
Rishabh
ee55892c74 Updated portal tests
refs dc032fac02
2022-11-17 13:16:12 +05:30
Rishabh
8bce7697f1 Fixed UI flash on portal for paid checkout
closes https://github.com/TryGhost/Team/issues/2274

When clicking on a tier, just before being redirected to the Stripe checkout, a Portal modal incorrectly showed the "Now check your email" message. Instead, this now shows a loading popup as expected while the checkout session is being created and redirected to on latest portal version
2022-11-17 12:46:49 +05:30
Rishabh
97f358c389 Released Portal v2.20.0 2022-11-17 12:28:48 +05:30
Rishabh
dc032fac02 Fixed incorrectly showing magic link page on paid checkout
closes https://github.com/TryGhost/Team/issues/2274

When clicking on a tier, just before being redirected to the Stripe checkout, a Portal modal incorrectly showed the "Now check your email" message. Instead, this now shows a loading popup as expected while the checkout session is being created and redirected to.
2022-11-17 12:20:57 +05:30
Naz
3e0ec26408
Introduced separate config for e2e tests
refs https://github.com/TryGhost/Toolbox/issues/475

- Having a single coverage config file for unit and e2e type of tests doesn't play well for tracking coverage progress. The unit test ones are run often when developing, so one can observe the changes in coverage. The e2e tests are ran mostly on CI environment and have different purposes/reach comparing to unit tests.
2022-11-17 09:58:39 +07:00
Naz
a1b5830269
Updated minimum coverage percentages
refs https://github.com/TryGhost/Toolbox/issues/475

- Increased statements and lines minimum required numbers as we have increased out baseline and should keep the bar as hight as possible
2022-11-17 09:58:39 +07:00
Naz
b7951b5445
Enabled test coverage report for e2e tests
closes https://github.com/TryGhost/Toolbox/issues/475

- We did not have visibility and history into test coverage statistics in non-unit test suites. This data is useful identifying problematic areas and can be used to keep the code quality under control
- Enabled test coverage for e2e tests, including integration and regression tests
- Decreased the "branches" coverage requirement for the tests to pass (did not want to introduce an additional c8 configuration file just yet)
2022-11-17 09:58:39 +07:00
renovate[bot]
174525bc52
Update dependency mailgun.js to v8.0.4 2022-11-16 17:46:29 +00:00
Ronald Langeveld
e0787b4e83
Added specific newsletter support for bulk unsubscribes (#15742)
closes https://github.com/TryGhost/Team/issues/2013

Added support to bulk unsubscribe a selected (filtered) list on members from specific, selected newsletters.
2022-11-16 14:29:00 +07:00
Naz
548a3c7b93
Fixed typo 2022-11-16 13:00:06 +07:00
Sodbileg Gansukh
78bff39c23
Update the cover image in default fixtures (#15817)
- updated the cover image to be simpler
- made the change in text fixtures as well, just to keep the fixtures in sync

Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
2022-11-15 21:19:50 +00:00
Jacob Simon
64f71a9cb4
Updated amp-youtube placeholder image position (#15833)
refs: ced1fdbdd4

- This is a follow-up to #15826 that I forgot to include in the first commit. Fixes an issue where the placeholder image would offset the youtube iframe embed on initial load.
2022-11-15 19:07:52 +00:00
renovate[bot]
72b57db2e8
Update dependency ember-template-lint to v4.18.1 2022-11-15 14:11:52 +00:00
Ghost CI
b2bcfb24e3 Merged v5.22.11 into main 2022-11-15 14:08:47 +00:00
Ghost CI
0b7f64604e v5.22.11 2022-11-15 14:08:44 +00:00
Simon Backx
5ea06e5a0c 🐛 Fixed error when importing members
fixes TryGhost/Team#2266

The getCreatedEvents method was removed but was still used in the verification trigger. This commit adds the method again as a quick fix. A better fix will be commited later: https://github.com/TryGhost/Ghost/pull/15831, which includes tests that also have been ran on this change (but keeping it out of this commit to keep changes minimal).
2022-11-15 14:44:22 +01:00
Jacob Simon
ced1fdbdd4
🐛 Fixed amp-youtube being too small (#15826)
closes https://github.com/TryGhost/Ghost/issues/14020

- Added CSS for `amp-youtube` to set the dimensions of the iframe instead of passing explicit height and width
attributes.
- Instead we set the video width to the viewport width and then set the height to a standard 16:9 ratio of YouTube videos.
2022-11-15 13:09:31 +00:00
Simon Backx
cdccf5c46a
Reduced default post relations (#15798)
fixes https://github.com/TryGhost/Team/issues/2085

Don't load relations we don't need anymore for the posts table. And
reload the individual post when we open the analytics page with more
relations that we actually need.
2022-11-15 10:17:26 +01:00
Naz
6601e69c8a
Fixed typo 2022-11-15 15:31:50 +07:00
renovate[bot]
c5c6b6a5cd
Update metascraper to v5.32.0 2022-11-14 21:47:17 +00:00
Elena Baidakova
2d61d5e94e
Added suppression list feature flag (#15821)
closes TryGhost/Team#2247
2022-11-14 16:50:19 +04:00
Kevin Ansfield
17932759d3 Re-generated .lint-todo
no issue

- cleans up completed todo's and extends the ignore->warn period
2022-11-14 09:55:34 +00:00
Kevin Ansfield
f92c62b59a Switched API key regeneration modal to new modal pattern
refs https://github.com/TryGhost/Team/issues/1734
refs https://github.com/TryGhost/Team/issues/559
refs https://github.com/TryGhost/Ghost/issues/14101

- switches to newer modal patterns ready for later Ember upgrades
- migrated Zapier controller to native class syntax
- fixed regeneration confirmation text not being visible on Zapier screen
2022-11-14 09:55:34 +00:00
Kevin Ansfield
283babe574 Removed unused early-access modal
no issue

- modal was added when tiers were first introduced as a beta feature but is no longer being used
2022-11-14 09:55:34 +00:00
Kevin Ansfield
332dd4fbf1 Switched editor re-authenticate modal to new modal pattern
refs https://github.com/TryGhost/Team/issues/1734
refs https://github.com/TryGhost/Team/issues/559
refs https://github.com/TryGhost/Ghost/issues/14101

- switches to newer modal patterns ready for later Ember upgrades
- simplified unauthed save behaviour because we now have a promise for the modal enabling us to wait for the modal to close before continuing
2022-11-14 09:55:34 +00:00
Kevin Ansfield
f74913cfb6 Switched snippet update modal to new modal pattern
refs https://github.com/TryGhost/Team/issues/1734
refs https://github.com/TryGhost/Team/issues/559
refs https://github.com/TryGhost/Ghost/issues/14101

- switches to newer modal patterns ready for later Ember upgrades
2022-11-14 09:55:34 +00:00
Kevin Ansfield
d4398cacf7 Switched publish limit upgrade modal to new modal pattern
refs https://github.com/TryGhost/Team/issues/1734
refs https://github.com/TryGhost/Team/issues/559
refs https://github.com/TryGhost/Ghost/issues/14101

- switches to newer modal patterns ready for later Ember upgrades
2022-11-14 09:55:34 +00:00
Rishabh
d6af8fbb8f Cleaned up old member analytics services
refs https://github.com/TryGhost/Team/issues/2216

This change removes old analytics code which was added under `membersActivity` flag as an experimental alpha feature to test the first versions of member analytics, and is no longer active or in use.

This change removes the remaining services and its usage that were created to manage this version of analytics but is no longer active or maintained.

- removes `members-analytics-ingress` service that was used to ingest events from Portal in this experimental feature
- removes `member-analytics-service` service that managed the events from this experimental feature
- removes usages of the 2 services and their dependency in `members-api`
- removes `member-analytic-event` model as the corresponding table for it does not exist anymore and was dropped in 5.0
2022-11-14 10:44:10 +05:30
Rishabh
d4c3f86ce0 Cleaned up old member activity code usage
refs https://github.com/TryGhost/Team/issues/2216

The `membersActivity` flag was an alpha feature to test the first versions of member analytics, and is no longer active or in use. This change removes the remaining pieces of code that are setup behind that flag and are no longer in use or accessible.
2022-11-14 10:44:10 +05:30
Rishabh
9a290b6f77 Cleaned up old analytics setup in Portal
refs https://github.com/TryGhost/Team/issues/2216

- the analytics tag was an old alpha concept and has been moved away from since so its safe to remove
- the flag that enabled this feature no longer exists so its completely inaccessible
2022-11-14 10:44:10 +05:30
renovate[bot]
9175b82ab9 Update dependency postcss to v8.4.19 2022-11-14 10:18:33 +07:00
renovate[bot]
4ea21e5f44
Update metascraper to v5.31.3 2022-11-11 23:51:41 +00:00
James Morris
42bf847142 Cleaning up and formalizing how events show across all activity feeds
- There was some formatting problems on the Dashboard with certain events
- There was inconsitencies with how we formatted some events over others
- Removed 'on' and just using '-' for all

refs https://github.com/TryGhost/Team/issues/2243
2022-11-11 15:18:03 +00:00
Ghost CI
718657a8f4 v5.22.10 2022-11-11 15:00:40 +00:00
Ghost CI
93aa801ce8 🎨 Updated Casper to v5.4.0 2022-11-11 15:00:39 +00:00
Kevin Ansfield
2d6f48093e Renamed {{scroll-to}}'s shouldScroll argument to when
no issue

- `when` makes the modifier a little easier to read for it's typical use-case, eg:
  - `{{scroll-to when=(eq entry.slug this.entry)}}`
  - `{{scroll-to when=(eq this.focusArea "analytics")}}`
2022-11-11 11:53:53 +00:00
Simon Backx
b047589cbc
🐛 Fixed question marks replacement for some characters in Outlook (#15801)
refs https://ghost.slack.com/archives/C025584CA/p1668101893895139

Added HTML encoding for some special characters that are not always
correctly shown in Outlook. Tested on Litmus.
2022-11-11 11:52:45 +01:00
Kevin Ansfield
8ae28ed309 Copied "from analytics" changes over to lexical editor
no issue

- changes were made to the default editor to adjust the header nav options when accessed from an analytics page but they weren't copied over to the duplicate editor route/controller we use for the in-development lexical editor
2022-11-11 09:49:26 +00:00
Simon Backx
28e4eb60ae
🐛 Fixed offer links with an archived tier (#15792)
refs https://github.com/TryGhost/Team/issues/2233

**Problem**
When a user clicks an offer link that has an archived tier, the site
blocks and you are no longer able to scroll. This is because the product
for that offer can't be found. This has been fixed by updating the
`isActiveOffer` helper to also check for the existence of the
corresponding tier.

**Solution**
- You no longer are able to create new offers if there are no active
tiers
- A custom message is shown that instructs the user to create a new tier
if there are not active tiers on the offers page
- Improved detection of changes in tiers by correctly reloading the
members utils service after tier changes
- Portal redirects to the homepage for offers with an archived tier
(same behaviour as invalid offers)
- Offers of an archived tier are no longer visible in the dashboard
2022-11-11 10:11:34 +01:00
Simon Backx
f0b87216f7
🐛 Fixed visible canceled events in conversions tab on analytics page (#15796)
fixes https://github.com/TryGhost/Team/issues/2238

**Issue**
When viewing the 'conversions' tab on the analytics page, you could
sometimes see more listed events than the total number of conversions.
This is because other subscription events are also shown in the list.
E.g., if a new member became a paid subscriber that is attributed to a
given post, and later that subscrption has been canceled, that canceled
event would also be shown on the analytics page. This isn't really
desirable.

**Fix**
Now only 'created' subscription events are shown when the activity feed
is filtered by post_id. The other subtypes aren't related to that given
post and should be excluded.
2022-11-11 09:56:03 +01:00
renovate[bot]
12015a60fd
Update dependency bookshelf-relations to v2.5.0 2022-11-10 15:31:20 +00:00
Simon Backx
7c3d75ade7
🐛 Fixed pasting newlines in post titles (#15794)
fixes https://github.com/TryGhost/Team/issues/2193

- When pasting a title with a newline, we now trim the string and clear newslines before pasting.
- When sending the slug to the backend to generate a unique slug, we now sluggify it in the frontend before adding it to the URL to prevent issues with unsupported characters (causing possible routing problems in Pro).
2022-11-10 14:43:15 +01:00
Naz
23c29d0674
Fixed typo 2022-11-10 17:29:54 +07:00
Simon Backx
b821c84b9e
Cleaned up member filters (#15784)
fixes https://github.com/TryGhost/Team/issues/2134
fixes https://github.com/TryGhost/Team/issues/2133

- Moved all filters to separate files to make the filter component a lot more readable and easier to maintain.
- Removed long switch style code from hbs for filter column values
- Filters for features that are disabled (such as open tracking, click tracking or member attribution) are now hidden when they are disabled
- The open rate column in the members table is now only visible if open tracking is enabled
2022-11-10 11:05:12 +01:00
Simon Backx
c2dfb2b579
🐛 Fixed link click counts for duplicate links (#15789)
refs https://github.com/TryGhost/Team/issues/2213

When an email contains multiple links to the same destination, that link
is only shown once on the analytics page. The total displayed count is
not summed correctly.
2022-11-10 10:51:26 +01:00
Simon Backx
a5c4091620 Fixed analytics page feedback chart filter button links
no issue

Clicking the 'see members' button in the feedback chart tooltip went to a page with a hardcoded post id instead of the actual post id.
2022-11-10 10:38:09 +01:00
renovate[bot]
b74029697f
Update dependency webpack to v5.75.0 2022-11-09 16:17:31 +00:00
Sam Lord
ce05d84940 Removed Bluebird from importer
refs: https://github.com/TryGhost/Ghost/issues/14882

This commit totally removes Bluebird from the importer. Updated `@tryghost/promise` to use native async/await and refactored importer logic to avoid the need of `reflect()`.
2022-11-09 16:14:37 +00:00
Simon Backx
f4660b440b
Fixed sending emails when using MembersAgent.loginAs (#15791)
fixes https://github.com/TryGhost/Team/issues/1903

MembersAgent.loginAs sends email, asynchronously via events. Which
conflicts with tests that also test emails. We cannot properly await
these events, so this is currently fixed with a timeout of 200ms. But
this was too random and unreliable.
2022-11-09 16:25:42 +01:00
Elena Baidakova
d542fadd63
Adjusted feedback title to dark theme (#15793)
closes TryGhost/Team#2236
2022-11-09 19:19:27 +04:00
James Morris
79147bc837 Released Portal v2.19.9 2022-11-09 10:45:25 +00:00
James Morris
c99685de2c Toning down the audience feedback error modal
refs https://github.com/TryGhost/Team/issues/2234
2022-11-09 10:15:37 +00:00
Fabien "egg" O'Carroll
e255102976 Fixed check for existing Stripe Prices
Since we updated the currency variable to be lowercase we needed to
update the check for existing Stripe Price currencies to lowercase
too. Without this we will create extra Prices in Stripe, but the
functionality will still work.

We could consider using value objects for currency in future so that
we can provide an `equals` method which handles all of this for us.
2022-11-09 14:56:16 +07:00
Ronald Langeveld
eb4e591e6b
Bumped kg-lexical-html-renderer version
no issue

- from 0.0.10 to 0.0.11
2022-11-08 22:05:58 +07:00
James Morris
2fb6fcabb2 Changed post and page rows go to editor plus code and styles cleanup
- Made the majority of the row go to the editor instead
- Removed illegal nested hyperlinks and cleaned up other markup
- Removed some feature flag code around this page and fixed styles for them
- Improved some dark mode styling
- Lots of refactoring with code and styles

refs https://github.com/TryGhost/Team/issues/2223
2022-11-08 14:29:11 +00:00
renovate[bot]
d4c0224fd8 Update dependency ember-template-lint to v4.18.0 2022-11-08 13:10:42 +00:00
Simon Backx
663b0dfeb2
🐛 Fixed ref attribute in email links (#15775)
fixes https://github.com/TryGhost/Team/issues/2025 
fixes https://github.com/TryGhost/Team/issues/2023

The `ref` attribute has changed in email links:
- We now use the site name when linking to external sites
- We blacklist facebook.com because it doesn't support ref attributes
- '-newsletter' is not repeated anymore if the newsletter name already ends with 'newsletter'
- We always sluggify the ref
- We no longer overwrite existing ref, utm_source or source parameters
2022-11-08 11:24:00 +01:00
Ronald Langeveld
6214812ac0
Added e2e test for bulk member deletion (#15730)
ref https://github.com/TryGhost/Team/issues/1446

- tests the `delete` api endpoint method for deleting a bulk set of members.
2022-11-08 17:02:55 +07:00
Ghost CI
4b7dd71851 Merged heads/v5.22.9 into main 2022-11-08 09:04:04 +00:00
Ghost CI
f274275ef3 v5.22.9 2022-11-08 09:04:01 +00:00
Fabien "egg" O'Carroll
69aa52bd8e 🐛 Handled deleted Stripe objects in the Stripe Checkout flow
closes https://github.com/TryGhost/Team/issues/2222

Whilst we were checking for Stripe objects being active, we were not
checking for them existing in Stripe. This adds handling to all read
request to Stripe in the payment link flow, so that we can gracefully
handle deleted objects.

We've also included an automated test which fails without this fix.

We've also improved the query to find Stripe Prices which will result
in less request to the Stripe API to check if it is valid.
2022-11-08 16:03:07 +07:00
Elena Baidakova
a605679bfa
Moved all code for feedback chart to one file (#15774)
closes TryGhost/Team#2143
- All logic for feedback pie chart was spread through multiple files. It
would be difficult to scale it. Now it is encapsulated in one file.
2022-11-08 09:42:32 +04:00
Naz
cc72e8f599
🐛 Fixed complimentary_plan Member imports
closes https://github.com/TryGhost/Team/issues/2219

- The CSV importer was failing when a "complimentary_plan" flag was present with a "true" value. The root of the issue was the data model change where the "id" of the Tier object is no longer a String but an ObjectID instance. It's a slight departure from previous bookshelf object behavior where 'id' property is always a string that is a stringified ObjectID.
- In the future we should unify the logic across all data access objects to either keep the convention of using a String under id property or switch to ObjectId instances.
2022-11-08 11:47:00 +07:00
renovate[bot]
8fa9f1e7e6
Update Test & linting packages 2022-11-07 20:39:48 +00:00
Hannah Wolfe
b3cafff924
Fixed duplicate settings error from data generator
- clear the settings table down before importing
- maybe we don't need to splat them all... but for now this makes importing work on top of a freshly provisioned DB
2022-11-07 16:53:02 +00:00
Hannah Wolfe
dc6b308e37
Added extra logging to improve dev exp
- this takes a while, but it was hard to tell what the script was doing and if I should still wait
- tried to make it a little clearer, and have a green message at the end
2022-11-07 16:53:01 +00:00
Ghost CI
92c3d1e933 Merged heads/v5.22.8 into main 2022-11-07 16:13:43 +00:00
Ghost CI
5f9e354cae v5.22.8 2022-11-07 16:13:40 +00:00
Simon Backx
2a2f5cca50
🐛 Fixed source tracking using cached value (#15778)
refs https://ghost.slack.com/archives/C02G9E68C/p1667834794676479

- When enabling tracking, it could be the case that the server is ignoring the attributions because of the cached setting value.
- When disabling tracking, the frontend should take care of not
collecting new tracking information to the server, but still the backend value should be used as a fail-safe.
2022-11-07 16:55:17 +01:00
Simon Backx
3048c7e790 🐛 Fixed sending feedback on email only posts
fixes https://github.com/TryGhost/Team/issues/2220

`Post.findOne` is filtering by status 'published' by default. 'sent' isn't 'published' so we throw a 404 error when trying to send feedback to a 'sent' post.
2022-11-07 16:27:43 +01:00
Simon Backx
7cefd4f70b
Updated ghost head test to ignore Portal/Search version (#15777)
fixes https://github.com/TryGhost/Team/issues/2152

When updating the Portal of Search version, the snapshots will now
remain the same.
2022-11-07 15:09:26 +01:00
Simon Backx
231ceedc72
Readded activity feed pagination tests (#15776)
fixes https://github.com/TryGhost/Team/issues/2218

The test should run a lot faster now.
2022-11-07 15:08:56 +01:00
Elena Baidakova
b526c4b719
Add tests to tabs and events pagination (#15757)
closes TryGhost/Team#2128
2022-11-07 16:32:06 +04:00
Aileen Nowak
f2c0bff9df Updated <GHBillingIframe> to not leak event listeners
no issue
refs dac5cca899

- added cleanup of the `message` event handler added to `window` when the component is destroyed
- added a guard to the event handler method to abort early if a message is received whilst the component is being destroyed
- updated Billing Service and `<GHBillingIframe>` to not use `@classic` decorator
2022-11-07 11:59:14 +00:00
Ghost CI
1575304627 Merged heads/v5.22.7 into main 2022-11-07 10:46:01 +00:00
Ghost CI
96aa0e6ba6 v5.22.7 2022-11-07 10:45:58 +00:00
Fabien "egg" O'Carroll
65a4eb5eb6 🐛 Fixed upgrading Subscriptions to new Tiers
refs https://github.com/TryGhost/Team/issues/2204

This was found during Tiers flows testing, the logic for fetching
price information from Tiers had not been updated to use the new Tiers
package and Payments service. This only affects Tiers created since 5.22.x
2022-11-07 17:42:32 +07:00
Naz
6989d08b19
Fixed validation for Members API newsletters endpoint
refs https://github.com/TryGhost/Toolbox/issues/465
refs 31546a6fd3/packages/admin-api-schema/lib/schemas/members.json (L93-L103)

- Updated Members API newsletter validation to match the subset of Admin API's members validation schema.
2022-11-07 17:18:36 +07:00
Elena Baidakova
aa5d8655aa
🐛 Fixed icons size for Outlook (#15772)
closes TryGhost/Team#2167
2022-11-07 14:18:23 +04:00
Naz
ff8e30076d
Fixed typo 2022-11-07 15:23:50 +07:00
renovate[bot]
12023804de
Update dependency eslint to v8.27.0 2022-11-07 01:32:41 +00:00
leonyangela
8c0b5520ce
Added e2e tests for post.rescheduled webhook (#15735)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-11-05 13:52:03 +00:00
leonyangela
e8d8e07dad
Added e2e tests for page.rescheduled webhook (#15736)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-11-05 13:51:03 +00:00
Ghost CI
81566aca88 v5.22.6 2022-11-04 15:00:38 +00:00
Kevin Ansfield
6a573d4511
Added lexical post support to email renderer (#15767)
closes https://github.com/TryGhost/Team/issues/2207

- adds conditional to the post email serializer to switch between
`mobiledocLib` and `lexicalLib` depending on which format the post
contains
2022-11-04 11:19:40 +00:00
Sanne de Vries
2aa0ccde4f Fixed button group padding on email preview screen
No ref
2022-11-04 17:41:19 +07:00
Kevin Ansfield
91c3c9eece Fixed lexical editor not loading
refs https://github.com/TryGhost/Ghost/pull/15763

- the config service no longer exists, we need to use the object registered at `config:main` instead to grab the editor url
2022-11-04 09:25:52 +00:00
Daniel Lockyer
c32a013087
Merged v5.22.5 into main
v5.22.5
2022-11-04 13:05:33 +07:00
e.baidakova
207491fe3c 🎨 Add comma separation to all numbers in comments
closes TryGhost/Team#2210
2022-11-04 09:38:21 +04:00
Ghost CI
a06bc369bc v5.22.5 2022-11-04 04:55:45 +00:00
Fabien "egg" O'Carroll
5a1364e46d 🐛 Fixed importer importing invalid Tier pricing data
closes https://github.com/TryGhost/Team/issues/2211

We were allowing paid Tiers to be imported with non-integer prices which was
causing the Admin to be bricked when attempting to load them. This adds some
validation to the price data of Tiers.
2022-11-04 11:27:15 +07:00
Fabien 'egg' O'Carroll
c923607bb9 🐛 Fixed archiving Tiers (#15761)
refs https://github.com/TryGhost/Team/issues/2204

The TiersAPI was incorrectly using the `active` property rather than
`status` property when editing Tiers.
2022-11-04 10:51:11 +07:00
Kevin Ansfield
443867639f Deleted unused modal-whats-new component file
no issue

- backing class still existed for a component that previous had it's template removed
2022-11-03 17:18:37 +00:00
Sam Lord
9b1fd0185f Fixed tests for data generation library
no issue
2022-11-03 17:04:14 +00:00
Sam Lord
9cb95140fb Allowed relative paths for base data pack in data generation
refs: https://github.com/TryGhost/Toolbox/issues/453
2022-11-03 16:48:25 +00:00
Sam Lord
08250d44b4 Added "base pack" support for data generator script
refs: https://github.com/TryGhost/Toolbox/issues/453

This makes it so that a JSON bundle can be imported as well as the data generation script
2022-11-03 14:54:33 +00:00
Kevin Ansfield
9bdb25d184
Fixed hosting management screen not loading after sign-in process (#15763)
refs https://github.com/TryGhost/Team/issues/2110

- dynamically defined properties on the config service did not have
autotracking set up properly if they were accessed in any way before the
property was defined, this caused problems in a number of areas because
we have both "unauthed" and "authed" sets of config and when not logged
in we had parts of the app checking for authed config properties that
don't exist until after sign-in and subsequent config re-fetch
- renamed `config` service to `configManager` and updated to only
contain methods for fetching config data
- added a `config` instance initializer that sets up a `TrackedObject`
instance with some custom properties/methods and registers it on
`config:main`
- uses application instance initializer rather than a standard
initializer because standard initializers are only called once when
setting up the test suite so we'd end up with config leaking across
tests
- added an `@inject` decorator that when used takes the property name
and injects whatever is registered at `${propertyName}:main`, this
allows us to use dependency injection for any object rather than just
services or controllers
- using `application.inject()` in the initializer was initially used but
that only works for objects that extend from `EmberObject`, the
injections weren't available in native-class glimmer components so this
decorator keeps the injection syntax consistent
  - swapped all `@service config` uses to `@inject config`
2022-11-03 11:14:36 +00:00
Sam Lord
c00e098915 Added support for MySQL in data-generator library
refs: https://github.com/TryGhost/Toolbox/issues/453
2022-11-03 11:08:16 +00:00
Kevin Ansfield
dac5cca899 Fixed <GhExploreIframe> leaking event listeners and throwing errors in tests
no issue

- added cleanup of the `message` event handler added to `window` when the component is destroyed
- added a guard to the event handler method to abort early if a message is received whilst the component is being destroyed
2022-11-03 10:25:43 +00:00
Kevin Ansfield
86751f902c Fixed "invoking component by passing its name" deprecations for newsletter modals
no issue

- in future Ember build tooling components must be imported directly rather than passing a name at runtime
2022-11-03 10:14:37 +00:00
Kevin Ansfield
d1a061e5a7
🐛 Fixed comped subscription duration drop-down sometimes not being visible (#15764)
closes https://github.com/TryGhost/Team/issues/2110

- added failing test showing feature service `@feature` properties
weren't autotracking correctly if accessed before
authentication+settings fetch occurs
- shows labs and feature properties on the feature service are not
reacting to changes in the settings service
- removing the `@computed` on the `feature.labs` getter stops it being
cached but it then fails on the `feature.testFlag` computed property
- updated `settings` service to behave as expected with our current
version of Ember
- inspected the store schema for `Setting` to define the "proxied"
properties up-front rather than only after fetching
- updated the property definition to use `computed` so we're opting in
to the old style reactivity (required adding the `@classic` decorator to
pass linting)
2022-11-03 10:08:48 +00:00
Fabien 'egg' O'Carroll
68c7a3c7e7
🐛 Fixed archiving Tiers (#15761)
refs https://github.com/TryGhost/Team/issues/2204

The TiersAPI was incorrectly using the `active` property rather than
`status` property when editing Tiers.
2022-11-03 16:51:19 +07:00
Naz
aba255d276
Fixed typos 2022-11-03 16:35:20 +08:00
renovate[bot]
6c5553d059 Update dependency html-validate to v7.8.0 2022-11-03 10:46:36 +07:00
Naz
ac46c2f2e9
Fixed CORS vary header modification
refs https://github.com/TryGhost/Toolbox/issues/461

- The 'vary' header with 'Origin' value should only be set when an OPTIONS header is processed. Otherwise we are prone to leaking the vary header modification to further down in the request pipeline
2022-11-03 11:16:13 +08:00
Naz
9b2e36e4fb
Fixed CORS middleware unit test
refs https://github.com/TryGhost/Toolbox/issues/461

- The unit test was never using the "OPTIONS" request method, which did not actually trigger the full logic of the "cors" module used under the hood.
- Using the correct request method triggers all the right pathways and tests the state that's closer to the real world - for example the response does get "ended" instead of calling the "next" middleware.
2022-11-03 11:16:13 +08:00
Fabien "egg" O'Carroll
c5ad1b0531 Released Portal v2.19.8 2022-11-03 09:46:43 +07:00
Fabien 'egg' O'Carroll
f9c31dd902
Fixed upgrades for paid members (#15760)
closes https://github.com/TryGhost/Team/issues/2202

Some parts of the codebase were not using the isSameCurrency helper
which meant that we were incorrectly filtering out tiers from the
upgrade screen. Tiers used to *usually* have a lowercased currency
property, but they now _always_ have an uppercased.
2022-11-03 09:45:34 +07:00
Robin Cussol
0bccbcb083
Added e2e tests for page.deleted webhook (#15723)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-11-02 17:25:07 +00:00
Naz
a8ba8cc444
Added Vary value for CORS in Frontend
refs https://github.com/TryGhost/Toolbox/issues/461

- Having a 'Origin' in vary header value present on each `OPTIONS` allows to correctly bucket "allowed CORS" and "disallowed CORS" responses in shared caches
2022-11-02 17:23:47 +08:00
Naz
f581e33400
Added Vary value for CORS in Admin API
refs https://github.com/TryGhost/Toolbox/issues/461

- Having a 'Origin' in vary header value present on each `OPTIONS` allows to correctly bucket "allowed CORS" and "disallowed CORS" responses in shared caches
2022-11-02 17:23:47 +08:00
Naz
2f2aa36c75
Renamed options test suite cases
refs https://github.com/TryGhost/Toolbox/issues/461

- The previous names were poorly representing the state that was produced and checked by the test cases
2022-11-02 17:23:22 +08:00
renovate[bot]
6afd6b6c75 Update dependency serve-handler to v6.1.5 2022-11-02 16:22:44 +07:00
Fabien "egg" O'Carroll
fb5e8fb2f3 Released Portal v2.19.7 2022-11-02 16:01:54 +07:00
Fabien "egg" O'Carroll
66b317ef78 Ensured plan is lowercased before being passed
This makes sure that we can correctly match the plan against either
"monthly" or "yearly"
2022-11-02 16:00:41 +07:00
Fabien "egg" O'Carroll
4785e25fe4 Released Portal v2.19.6 2022-11-02 15:58:36 +07:00
Fabien "egg" O'Carroll
bd5243b3bd Fixed creating checkout sessions with data-attribute-plan
refs https://github.com/TryGhost/Team/issues/2199

The data-attribute handler was not using the utils/api package but
instead reimplemnted the logic to create checkout sessions, this was
missed when moving to a redirect for checkout and so wasn't working
correctly.
2022-11-02 15:57:52 +07:00
Fabien "egg" O'Carroll
592e282f5b Updated data-members-plan handling to send Tier & Cadence
refs https://github.com/TryGhost/Team/issues/2199

Sending a price id was supposed to have been cleaned up but the
data-attributes file was missed.
2022-11-02 15:57:52 +07:00
Daniel Lockyer
876100e80b
Disabled code coverage check on @tryghost/data-generator
- this package is not used as part of Ghost's code and we shouldn't be
  enforcing a minimum coverage on it whilst it's in development
2022-11-02 15:45:12 +07:00
e.baidakova
93c6abcad5 Add ability to pass stale-while-revalidate option to cache control
closes TryGhost/Team#2094
This value can be used for non-crucial data with a `public` option. For example: `public, max-age=1, stale-while-revalidate=9`.
The idea behind this option is that the browser would cache the value for the number of seconds in `max-age` and would use it for the number of seconds in `stale-while-revalidate` until it gets a "validated response" from the server. The behaviour should be almost unnoticeable for the end user but would make a big difference in the amount of requests to server.
2022-11-02 10:54:12 +04:00
e.baidakova
81e6a7c5bd 🐛 Add ability to cache comments count endpoint
closes TryGhost/Team#2094
- Comment counts request was changed from `post` to `get` to enable request caching.
2022-11-02 10:54:12 +04:00
Naz
26b0bbc623 Added a test suite for OPTIONS requests
refs https://github.com/TryGhost/Toolbox/issues/461

- The codebase has ambiguous behavior with OPTIONS request. Adding tests covering edge cases for all possible variations of OPTIONS responses is the first step to solving cahceability of these requests.
- The obvious question if you look into the changeset itself would also be: "WTF did you do with test suite naming? What are these changes in admin and click tracking suites? You having a bad day Naz?". The answer is "yes"  (╯°□°)╯︵ ┻━┻
- On a serious note. I've introduced multiple hacks here that should be fixed:
1. Forced test suite execution order for options request - extreme blasphemy. This was last resort decision. I went deep into trying to fixup the server shutdown in the "admin" test suite, which cascaded into failing "click tracking" suite, which has shortcomings on it's own (see notes left in that suite)
2. Exposed "ghostServer" from the e2e-framework's "getAgentsWithFrontend" method. Exposing ghostServer to be able to shut it down (or do other manipulations) was one of the pitfalls we had in the previous test utils, which ended up plaguing the test codebase. Ideally the framework should only be exposing the agents and the rest would happen behind the scenes.
- To fix the hacks above I've raised a cleanup issue (https://github.com/TryGhost/Toolbox/issues/471). I'm very sorry for this mess. The issue at hand has very little to do with fixing the e2e framework, so leaving things "as is".
2022-11-02 13:43:30 +08:00
Naz
5fe80c82c5 Exposed Content API agent in e2e test utils
refs https://github.com/TryGhost/Toolbox/issues/461

- When testing OPTIONS requests there is a need to get all possible agents available in the system. The "getAgentsWithFrontend" serves exactly this purpose - create all possible agents while starting Ghost instance only once
- This is groundwork for OPTIONS request caching tests and improvements
2022-11-02 13:43:30 +08:00
Daniel Lockyer
ab678c3a90
Merged v5.22.4 into main
v5.22.4
2022-11-02 07:09:23 +07:00
Djordje Vlaisavljevic
2cd106ba02 Fixed scrollable table data showing outside of table
no ref
2022-11-01 22:45:30 +01:00
Ghost CI
13c6204197 v5.22.4 2022-11-01 19:19:31 +00:00
Fabien 'egg' O'Carroll
1ff1b75a69
🐛 Fixed errors with Stripe Checkout (#15749)
refs https://github.com/TryGhost/Ghost/commit/1f300fb781f0

The full customer object was not being passed to the StripeAPI service
when it already exists, this was resulting in inconsistent behaviour when
sending the customerEmail param to the API, causing `invalid_email`
errors to be thrown from Stripe and breaking the checkout.
2022-11-02 02:18:30 +07:00
Fabien "egg" O'Carroll
be66078a31 Released Portal v2.19.5 2022-11-02 00:32:35 +07:00
Hannah Wolfe
85c5a19f33
Merged v5.22.3 into main
v5.22.3
2022-11-01 17:29:16 +00:00
Ghost CI
7fda360799 v5.22.3 2022-11-01 17:12:38 +00:00
Fabien "egg" O'Carroll
743228ff1c 🐛 Fixed Portal showing paid Tiers when Stripe not connected
closes https://github.com/TryGhost/Team/issues/2197

Portal was relying on monthlyPrice or yearlyPrice being undefined as a
proxy to determine whether or not to show paid plans, this fixes it to
check for whether or not stripe is enabled.

I did consider using the portal_plans array to filter out unselected
Tiers, but wasn't sure of the repercussions, though it does seem like
the correct fix long term.
2022-11-02 00:11:33 +07:00
Fabien "egg" O'Carroll
ba41f308c7 🐛 Fixed upgrading to a paid plan
closes https://github.com/TryGhost/Team/issues/2196

We were incorrectly assuming that all requests would have the
`customerEmail` passed in the body. Instead we were incorrectly
passing `undefined` or `''` as the `customerEmail` property to stripe,
which resulted in a validation error.

We've updated the code to pass `null` in the case of a falsy value,
which the Stripe API handles without error.
2022-11-02 00:11:33 +07:00
Fabien "egg" O'Carroll
1f300fb781 🐛 Fixed checkout sessions when using Offers
closes https://github.com/TryGhost/Team/issues/2195

The issue here is two-fold, and specific to using Offers so was not
caught by any automated tests. First, we were incorrectly comparing
the tier.id to the offer.tier.id - this is because the Tier objects id
property is an instance of ObjectID rather than a string.

Secondly we were passing through the cadence parameter from the
request body, but when using Offers this is not including in the
request, so we must pull the data off of the Offer object instead and
pass that to the payments service.
2022-11-02 00:11:33 +07:00
Kevin Ansfield
2d2ac0102a Refactored signin controller to Octane patterns
refs https://github.com/TryGhost/Ghost/issues/14101

- migrated to native class syntax and glimmer component patterns
- removed use of jQuery, the workaround to trigger change events no longer appears necessary
2022-11-01 14:12:23 +00:00
Daniel Lockyer
498bec08cf
Merged v5.22.2 into main
v5.22.2
2022-11-01 18:24:58 +07:00
Ghost CI
3c71d07dfb v5.22.2 2022-11-01 09:28:14 +00:00
Fabien 'egg' O'Carroll
a0ebb9a6f3
🐛 Fixed Tier description not being set (#15741)
closes https://github.com/TryGhost/Ghost/issues/15740

The validation function for a Tier description was not returning the
validated value, which meant we were unable to set the Tier
description.
2022-11-01 16:25:55 +07:00
Fabien "egg" O'Carroll
f761bd36b4
Fixed verification trigger usage of Event Repository
refs https://github.com/TryGhost/Team/issues/2192

The method signatures of the Event Repository have been updated to
take mongo filter objects, but this call-site was not updated.

Long term we should really be using NQL filter strings for our
filtering API and the mongo filter objects should be an implementation
detail, however we don't have time right now to rectify this.
2022-11-01 13:00:42 +07:00
Fabien "egg" O'Carroll
63fe013606 Fixed verification trigger usage of Event Repository
refs https://github.com/TryGhost/Team/issues/2192

The method signatures of the Event Repository have been updated to
take mongo filter objects, but this call-site was not updated.

Long term we should really be using NQL filter strings for our
filtering API and the mongo filter objects should be an implementation
detail, however we don't have time right now to rectify this.
2022-11-01 12:06:11 +07:00
Daniel Lockyer
68689917e6
Merged v5.22.1 into main
v5.22.1
2022-11-01 06:11:24 +07:00
Robin Cussol
e7e12aba09
Added e2e tests for page.published.edited webhook (#15724)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-31 19:51:04 +00:00
Halldor Thorhallsson
79c80f28cc
Removed bluebird from api-framework module (#15685)
refs: https://github.com/TryGhost/Ghost/issues/14882

- Removing bluebird specific methods in favour of the Ghost sequence method so we can remove the bluebird dependency
2022-10-31 19:30:18 +00:00
Ghost CI
b2ad52fbf5 v5.22.1 2022-10-31 17:49:43 +00:00
renovate[bot]
8cde26f986 Update dependency ember-template-lint to v4.17.0 2022-10-31 17:37:40 +00:00
James Morris
8537239548 Moved the audience feedback setting into the footer
refs https://github.com/TryGhost/Team/issues/2191
2022-10-31 17:17:52 +00:00
Kevin Ansfield
b272b34a44 Fixed linter error 2022-10-31 12:12:58 +00:00
James Morris
21bf020e4e Moved the audience feedback setting into the footer
refs https://github.com/TryGhost/Team/issues/2191
2022-10-31 12:10:36 +00:00
Kevin Ansfield
5bf3fe9cb8 🐛 Fixed error preventing admin area being usable by staff users with Contributor role
closes https://github.com/TryGhost/Team/issues/2190

- added a guard around the tier fetches in `membersUtils` service so the fetch doesn't occur unless we have a logged in user and they aren't a contributor
- extracted the `withPermissionsCheck` mirage util function and added role checks around the mocked tiers endpoints
- added an acceptance test that loads the content screen and creates a draft post as a contributor to help catch regressions
2022-10-31 12:01:39 +00:00
Daniel Lockyer
92740e8967
Merged v5.22.0 into main
v5.22.0
2022-10-31 17:49:27 +07:00
Ghost CI
44722efe38 v5.22.0 2022-10-31 10:41:31 +00:00
Fabien "egg" O'Carroll
f878e84707 Fixed Tiers importer not correctly mapping price data
refs https://github.com/TryGhost/Toolbox/issues/464

Bceause the import does not use the API, any backwards compat code we put in the
API does not get run for imports, this means we need to update the importer to
map the stripe_prices data onto the products table so that we have valid data in
the database.
2022-10-31 17:30:16 +07:00
Daniel Lockyer
d59909941c Backfilled missing columns in products table
refs https://github.com/TryGhost/Toolbox/issues/464

- due to a bug with the content importer, importing a JSON file where
  the `products` do not contain price info will store null values in the
  table instead of the defaults
- this ends up causing further issues because we're not populating the
  table for paid products
- this commit is a copy of the 5.19 migration
  `2022-09-02-20-52-backfill-new-product-columns.js`, but adds a check
  for a null `t.currency`, which combined with the `t.type === paid`,
  should identify the rows we want to update
2022-10-31 16:36:57 +07:00
Naz
49e97829d0
Added auto-mapping for complimentary_plan column
closes https://github.com/TryGhost/Team/issues/1076
refs f068e40723
refs 7fe9e06c4d

- The Members CSV importer was not auto-detecting and mapping the `complimentary_plan` column when it was present in CSV. This was to improve user-experience and NOT start the import as a "background job" by default.
- With resent (see refs) changes having "complimentary_plan" column in the imported file does not send the import into the background. We can now safely include it as auto-detected field, without compromising user experience.
2022-10-31 16:47:14 +08:00
Naz
7fe9e06c4d
Fixed rule for import background job detection
refs https://github.com/TryGhost/Team/issues/1076

- The members CSV import would go into background job (longer running and resulting with an email) when it contained a complimentary_plan column.
- With recent members codebase decoupling Ghost does not make any connection to Stripe as "complimentary plan" data is saved purely in native data structures. Making no need for a background job for complimentary plans
2022-10-31 16:31:55 +08:00
Naz
4d26c50e0b
Fixed data type of hasStripeData in member importer
refs https://github.com/TryGhost/Team/issues/1076

- What appeared to be a "boolean" by nature and name, the hasStripeData was holding a result of "find" method - and object or an undefined value
- Fixed the typing, to avoid ambiguity in the future
2022-10-31 16:31:35 +08:00
renovate[bot]
ac01fc5e42 Update dependency @babel/plugin-proposal-decorators to v7.20.0 2022-10-31 10:38:05 +07:00
renovate[bot]
5d49ce269a Update dependency cssnano to v5.1.14 2022-10-31 09:50:23 +07:00
Hannah Wolfe
25d5839e96
Added shouldCompileToError test util
refs: a8b1676734

- Extended the newly created handlebars test utils with a shouldCompileToError method
- Updated the price helper tests tp use shouldCompileToExpected and shouldCompileToError
- This allows us to test our handlebars helpers in a much more conisstent way
2022-10-30 16:55:53 +00:00
Barno
a24eb06179
Replaced Promise.map() with .all() in importer (#15616)
refs: https://github.com/TryGhost/Ghost/issues/14882

- Removing bluebird specific methods in favour of the Ghost sequence method so we can remove the bluebird dependency

Co-authored-by: Carol-Barno <cbarno@innovexsolutions.co.ke>
2022-10-30 16:51:29 +00:00
leonyangela
7df2b7625f
Added e2e tests for page.tag.attached webhook (#15648)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-30 16:45:51 +00:00
Barno
3f0713fbc4
Replaced Promise.each() with .all() in models/relations/author (#15614)
refs: https://github.com/TryGhost/Ghost/issues/14882

- Removing bluebird specific methods in favour of the Ghost sequence method so we can remove the bluebird dependency

Co-authored-by: Carol-Barno <cbarno@innovexsolutions.co.ke>
2022-10-30 16:06:01 +00:00
Hannah Wolfe
a8b1676734
Refactored shouldCompileToExpected into shared util
no issue

- There are currently two patterns in our handlebars helper unit tests:
  1. Treating the helper as a function, and doing a function call
   - This is the original way the tests were done, and they're not great as they're approximating how the helpers are really used
  2. Using a template string, and rendering the string using a method called shouldCompileToExpected
   - These tests are more realistic and powerful and also easier to read

- The new method is only being used in a few places so far, and each place had re-created the `shouldCompileToExpected` method
- Therefore I've moved this method into a util that should make it easier to write unit tests for handlebars helpers
- I also renamed the method in the excerpt tests, because it doesn't do the same thing, it's just a wrapper around a function call rather than compiling a string

The aim is to refactor all of our handlebars helper tests to use `shouldCompileToExpected`
2022-10-30 15:26:29 +00:00
Halldor Thorhallsson
5a94cc8039
Removed bluebird from misc packages (#15676)
refs: https://github.com/TryGhost/Ghost/issues/14882

- Removed bluebird from members-csv package-json and update-check-service 
- Removing bluebird specific methods in favour of the Ghost sequence method so we can remove the bluebird dependency
2022-10-30 15:16:10 +00:00
Vedant Bhamare
3f289edc26
Added e2e tests for page.tag.detached webhook (#15651)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-30 14:59:12 +00:00
Hannah Wolfe
5fe6687c2a
Skipped slow activity feed tests temporarily
- These tests are very slow, and make the build fail about 2/3 times
- Temporarily skipping until we can fix, as I want to get all our outstanding hacktoberfest PRs merged
2022-10-30 14:52:30 +00:00
Hannah Wolfe
3ec0057567
Removed accidentally committed file
- This was accidentally included in a fixup commit
2022-10-30 14:38:59 +00:00
Arjuna Kristophe Sankar
096dffb817
🐛 Fixed missing active theme breaks design screen (#15602)
closes: https://github.com/TryGhost/Ghost/issues/15505

When starting Ghost with a missing active theme, the design settings screen and change theme screen both end up in a broken state with the user unable to select a new theme as the active one.

The design screen has no default (or blank) slate, and so shows a preview of an empty theme.
- First added a new default screen to serve as a placeholder for when the state contains no active theme.
- Added a check for when there was no active theme, then redirects the user to the default screen .

The change theme screen wants to set an active property on the theme that should be active in the theme list.
- Added a check to see whether there is an active theme set.
- If there isn't one, don't bother trying to add the active property.
2022-10-30 14:14:11 +00:00
Ghost CI
7724d29afd v5.21.0 2022-10-28 16:00:39 +01:00
Fabien "egg" O'Carroll
68d887202a Released Portal v2.19.3 2022-10-28 18:39:04 +07:00
Fabien 'egg' O'Carroll
0396f59fec
Fixed error showing on Stripe Checkout (#15719)
`window.location.assign` does not return anything, so `result.error` was
failing because `result` was undefined. We've moved the handling of the
result of `redirectToCheckout` to be specific to that promise. We've
also removed the use of `catch` because all it did was rethrow the
error, which is default behaviour.
2022-10-28 16:48:22 +07:00
Rishabh
5a029620fd Updated new analytics page with audience feedback
refs b027ed6378

- analytics page was split between old and new behind the audience feedback flag
- the new page had missing method as we switched the page to new one once the flag was switched on
2022-10-28 12:01:11 +05:30
renovate[bot]
61ff499037
Update dependency sanitize-html to v2.7.3 2022-10-27 22:42:54 +00:00
Rishabh Garg
83d89ef077
Updated cache invalidation handling on link edit (#15718)
refs https://github.com/TryGhost/Team/issues/2158

- the cache invalidation header returned should be specific to the email links pattern, otherwise it blows entire cache on every link edit
2022-10-28 02:48:42 +05:30
Rishabh Garg
d10d4390f0
Removed duplicate newsletter tracking settings (#15717)
refs cca0f7d7dc

- newsletter tracking setting has now moved to analytics settings page. the duplicate settings on newsletter settings page is removed.
2022-10-28 02:35:39 +05:30
Rishabh Garg
007637973e
🐛 Fixed comped member creation via Admin API (#15714)
closes https://github.com/TryGhost/Team/issues/2184

- when using the old legacy method of `comped:true` to add complimentary subs to a member along with a label, the API call failed with `Internal Server error` and the member was added as free on the site.
- patches the options sent for fetching default product to only pick the relevant keys, as it was picking up the `withRelated` for `labels` that caused the API failure
2022-10-28 01:59:05 +05:30
e.baidakova
d8fa21e43c Revert "Update portal version"
This reverts commit b5b7ce5f7a.
2022-10-27 23:36:58 +04:00
e.baidakova
b5b7ce5f7a Update portal version 2022-10-27 23:31:48 +04:00
e.baidakova
657fe565f5 Released Portal v2.19.2 2022-10-27 23:29:19 +04:00
e.baidakova
3e97e47c39 Fix unauth error 2022-10-27 23:28:18 +04:00
Simon Backx
2e517b6744 Fixed membersTrackSources not hiding attribution analytics 2022-10-27 20:35:34 +02:00
Simon Backx
8bf8134500 Removed GA flags from labs page 2022-10-27 19:16:31 +02:00
Simon Backx
250da0abf7 Removed fallback to clicked count for opened count
fixes https://github.com/TryGhost/Team/issues/2189

We don't want this fallback because the table on the analytics page will be empty while the count be higher than zero
2022-10-27 18:40:13 +02:00
Simon Backx
66e282f7e3 Fixed default setting count regression test 2022-10-27 18:37:45 +02:00
Elena Baidakova
df51a852f5
Added new feedback flow to portal (#15716)
- Updated the way we're handling feedback from user, due to email
restrictions (email client opened all links in email).
2022-10-27 20:34:45 +04:00
Elena Baidakova
9ec0a46f05
Fix url for icons in Front app (#15715)
closes TryGhost/Team#2185
2022-10-27 20:34:21 +04:00
James Morris
9888785a09 Added tooltips to larger tab icons when in responsive design for smaller screens
refs https://github.com/TryGhost/Team/issues/2179
2022-10-27 17:27:01 +01:00
Simon Backx
13fd64ebf7 Fixed tests for flag bumps and new setting
no issue
2022-10-27 18:26:46 +02:00
e.baidakova
f2ba88e6e0 Released Portal v2.19.0 2022-10-27 20:25:30 +04:00
James Morris
b08500fc32 Updated the copy changes for the Post Analytics tabs
refs https://github.com/TryGhost/Team/issues/2180
2022-10-27 17:17:04 +01:00
James Morris
932dee4958 Removed the need for custom column sizes on new clicked tab
refs https://github.com/TryGhost/Team/issues/2179
2022-10-27 17:11:32 +01:00
James Morris
3d3653b09a Removed links from sources and added a prefix icon
refs https://github.com/TryGhost/Team/issues/2183
2022-10-27 17:07:41 +01:00
James Morris
9febc70d72 Tiny adjustments to the tabs so metrics don't look so big
refs https://github.com/TryGhost/Team/issues/2179
2022-10-27 17:05:04 +01:00
Aileen Nowak
93f20d4664 Added changelog subscribe button to What's new page
no issue
2022-10-27 17:01:27 +01:00
Rishabh
6795e95483 Fixed settings test
refs f1aff45dc7

- adds missing default setting for member source tracking
2022-10-27 21:30:31 +05:30
Simon Backx
b027ed6378 Added audience feedback
no issue

Co-authored-by: Elena Baidakova <lena.baydakova@gmail.com>
Co-authored-by: James Morris <moreofmorris@users.noreply.github.com>
2022-10-27 17:57:07 +02:00
Simon Backx
f7232a13b1 Added member growth sources
no issue

Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
Co-authored-by: Fabien 'egg' O'Carroll <fabien@allou.is>
Co-authored-by: James Morris <moreofmorris@users.noreply.github.com>
Co-authored-by: Rishabh Garg <rish@ghost.org>
2022-10-27 17:55:58 +02:00
Rishabh Garg
f1aff45dc7
Disabled attribution calculation when tracking is disabled (#15710)
refs https://github.com/TryGhost/Team/issues/2168

- forces attribution service to use empty history or context if attribution tracking is disabled
2022-10-27 21:10:03 +05:30
Simon Backx
5cb3c43e80 Fixed aggregated click events visible in dashboard
refs https://github.com/TryGhost/Team/issues/2175
2022-10-27 17:29:51 +02:00
Simon Backx
2903a30d39 Fixed member page breadcrumbs coming from analytics
fixes https://github.com/TryGhost/Team/issues/2140
2022-10-27 17:24:57 +02:00
Simon Backx
b916300ceb
Added aggregated click events (#15713)
fixes https://github.com/TryGhost/Team/issues/2175

- New event type `aggregated_click_event` that is disabled by default in all the existing activity feeds
- This returns click events, but only the first click events for each member/post combination.
- It includes the total count of unique link clicks for that member on that post combination
- Had to resort to some custom knex queries to make this work easily
- Requires `@tryghost/bookshelf-pagination@0.1.31`, included in `@tryghost/bookshelf-plugins@0.6.1` (this fixes an issue with custom selects breaking the total count query of pages)
- Went a bit overboard with the pagination tests to cover as much unknown edge cases as possible
2022-10-27 17:23:45 +02:00
Sam Lord
08427809ec Allowed data-generation script to run in all environments
refs: https://github.com/TryGhost/Toolbox/issues/453
2022-10-27 16:10:02 +01:00
Sam Lord
1b7df74703 Added option to use existing data when generating demo data
refs: https://github.com/TryGhost/Toolbox/issues/440
2022-10-27 16:10:02 +01:00
Elena Baidakova
310b70828f
Updated feedback confirmation modal styles (#15706)
closes TryGhost/Team#2173
2022-10-27 18:45:34 +04:00
James Morris
1cfaadbaf5 Updated the login copy in the Portal login modal
refs https://github.com/TryGhost/Team/issues/2182
2022-10-27 15:30:25 +01:00
Elena Baidakova
423314713e
Added total feedback amount to analytics tabs (#15708)
closes TryGhost/Team#2172
2022-10-27 18:30:04 +04:00
Rishabh Garg
6a619310f6
Removed attribution script if tracking sources is disabled (#15707)
refs https://github.com/TryGhost/Team/issues/2168

- site owners can now disable tracking sources from analytics settings.
- this change removes the loading of attribution script if tracking is
turned off so we don't capture any post/page or external source
attributions
2022-10-27 18:52:11 +05:30
Djordje Vlaisavljevic
1f48e728c4 Updated copy
refs https://github.com/TryGhost/Team/issues/2168
2022-10-27 14:27:08 +02:00
Rishabh
9503ca1c7b Wired new analytics settings for tracking email and sources
refs https://github.com/TryGhost/Team/issues/2168

- wires new source tracking setting for members to UI
- splits the new analytics page settings to its own component, cleaned up the files and wired up the settings upstream
2022-10-27 17:29:33 +05:30
Rishabh Garg
cca0f7d7dc
Added new setting to toggle tracking of member sources (#15705)
refs https://github.com/TryGhost/Team/issues/2168

- the new setting allows site owners to control if they want to track
the sources for new member signups and subscriptions
- its switched on by default, but can be toggled off from new analytics
settings page
2022-10-27 17:24:46 +05:30
Sam Lord
da559e5a7f Added @tryghost/data-generator dependency to Ghost core
refs: https://github.com/TryGhost/Toolbox/issues/440

This was working locally where the dependency is resolved implicitly, but when deployed there is no @tryghost/data-generator in the node_modules folder.
2022-10-27 11:51:09 +01:00
Simon Backx
b911208b41
Improved filter support in activity API to allow pagination (#15684)
fixes https://github.com/TryGhost/Team/issues/2129

- This changes how the activity feed API parses the filter.
- We now parse the filter early to a MongoDB filter, and split it in two. One of the filters is applied to the pageActions, and the other one is used individually for every event type. We now allow to use grouping and OR's inside the filters because of this change. As long as we don't combine filters on 'type' with other filters inside grouped filters or OR, then it is allowed.
- We make use of mongoTransformer to manually inject a mongo filter without needing to parse it from a string value again (that would make it a lot harder because we would have to convert the splitted filter back to a string and we currently don't have methods for that).
- Added sorting by id for events with the same timestamp (required for reliable pagination)
- Added id to each event (required for pagination)
- Added more tests for filters
- Added test for pagination
- Removed unsued getSubscriptions and getVolume methods

Used new mongo utility methods introduced here: https://github.com/TryGhost/NQL/pull/49
2022-10-27 12:13:24 +02:00
Simon Backx
076e3c02b2
Added linking between member and subscription created events (#15693)
fixes https://github.com/TryGhost/Team/issues/2160

- Adds a `batch_id` to both events that contain the same ID if they were created at the same time.
- Removes duplicate signup/conversion events using the batch_id
- Requires an update in mongo-knex to work (refs https://ghost.slack.com/archives/C02G9E68C/p1666773313272409?thread_ts=1666767872.375009&cid=C02G9E68C)
- Some dependencies needed an update to load the latest mongo-knex
- Added tiers to membersUtils, loaded on startup (we can start to use this instead of fetching it every time)
2022-10-27 11:44:19 +02:00
Daniel Lockyer
30327d62cd
Refactored DB backup lib to async-await
- also improves jsdoc comments to make it easier to see the types of
  variables around the code
2022-10-27 15:52:12 +07:00
Naz
6bd2769146
Hardened tiers-related snapshot tests
refs https://github.com/TryGhost/Team/issues/2077

- Members and Posts test suites were using a broad tiers property matcher, which is an anti-pattern for snapshot tests. Without more specific snapshots it would be very hard to track down tier-related breaking changes!
- This change is groundwork for a refactor coming in tier usage at API's output serializers
2022-10-27 15:54:28 +08:00
Elena Baidakova
e3ab868b83
Added email feedback column (#15698)
closes TryGhost/Team#2159
- Added column to email table
- Hide the feedback tab on frontend depending on the column value

Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2022-10-27 11:22:50 +04:00
Fabien 'egg' O'Carroll
aa89fe55e0
Fixed Stripe Checkout not having the email prefilled from Portal (#15703)
We need to pass the customerEmail param along so that Stripe Checkout
will prefill it for us, this was missed in the refactor.
2022-10-27 11:00:21 +07:00
Fabien 'egg' O'Carroll
6c204b4c42
Added X-Robots-Tag header to redirect responses (#15700)
refs https://github.com/TryGhost/Team/issues/2072

We're still seeing some redirect URLs being indexed by Google.
2022-10-27 10:07:36 +07:00
James Morris
409377476d Fixed the dash bug next to the events in the table
refs https://github.com/TryGhost/Team/issues/2172
2022-10-26 18:20:02 +01:00
James Morris
683d476394 Added a quick fix to bring back the feedback tab pie chart
https://github.com/TryGhost/Team/issues/2172
2022-10-26 18:15:35 +01:00
James Morris
4f40fb8e12 Updated the post analytics tab design and added in responsiveness
- Changed the tab design to now include icons all across
- Better way of showing positive sentiment
- Much better responsiveness for the whole page

refs https://github.com/TryGhost/Team/issues/2172
2022-10-26 18:04:17 +01:00
Elena Baidakova
f1e476d6af
Add forceRender property to tabs (#15699)
closes TryGhost/Team#2163
- `forceRender` property adds ability to render content of tabs in
advance (even if tab wasn't selected)
2022-10-26 18:03:29 +01:00
Sam Lord
28b11e6fed
Added command to generate demo data (#15691)
refs: https://github.com/TryGhost/Toolbox/issues/440

New command to generate demo data, creates data for over 20 tables in
Ghost, suitable for testing most features of the dashboard, as well as
making guided product tours using newsletters, tiers, many posts and
tags.

Usage: `yarn start generate-data`

Optionally, keep your existing posts / tags with: `yarn start generate-data --use-existing-tags --use-existing-posts`
2022-10-26 17:55:08 +01:00
Aileen Nowak
8d9b8cf79c Fixed Explore iframe route handling hijacking routes on reload 2022-10-26 17:17:22 +01:00
Simon Backx
c7ef22d4df
Updated feedback button links (#15701)
fixes https://github.com/TryGhost/Team/issues/2174

The feedback links now use a hash instead of a querystring, so it won't pass by the server.

New format: https://site.ghost/post-slug/#/feedback/6359174f2eb251019d14d6fb/0?uuid=13924399-c3ae-413b-a045-0b8294d71f64
2022-10-26 18:04:11 +02:00
Elena Baidakova
57817eefc8
Added feedback buttons to emails (#15695)
closes TryGhost/Team#2075
2022-10-26 19:19:05 +04:00
Simon Backx
1a8f7e6972 Fixed labs not working on posts page initial load
no issue

When reloading the posts page, the labs settings wouldn't work. The 'feature' service labs property would try to JSON.parse an undefined labs setting (settings.labs === undefined) because settings wasn't loaded yet. After loading the settings, it wouldn't update because Ember's 'computed' decorator isn't able to watch this.

This was all caused by trying to access the emailAnalytics feature in the controller's constructor (this feature doesn't exist any longer). Removing this fixed the issue.

We probably need some protection for this in the future.
2022-10-26 16:03:02 +02:00
Djordje Vlaisavljevic
2bacff028b Updated analytics settings icon
refs https://github.com/TryGhost/Team/issues/2168
2022-10-26 15:15:09 +02:00
Djordje Vlaisavljevic
9719f25452 Added link to analytics settings to the settings page
refs https://github.com/TryGhost/Team/issues/2168
2022-10-26 15:15:09 +02:00
Djordje Vlaisavljevic
957d789857 Added mock component for analytics settings page
refs https://github.com/TryGhost/Team/issues/2168
2022-10-26 15:15:09 +02:00
Djordje Vlaisavljevic
b7eadb748d Added analytics settings icon
refs https://github.com/TryGhost/Team/issues/2168
2022-10-26 15:15:09 +02:00
Simon Backx
4501c82820 Fixed breadcrumbs when going from analytics to member
refs https://github.com/TryGhost/Team/issues/2140
2022-10-26 14:32:31 +02:00
Simon Backx
310459c3b9 Cleaned up FeedbackPage 2022-10-26 14:26:57 +02:00
Simon Backx
3cb56bad94 Added confirmation step when sending feedback
fixes https://github.com/TryGhost/Team/issues/2161

Confirmation step is skipped when already signed in.
2022-10-26 14:18:07 +02:00
James Morris
f1565fe92a Updated the copy for the audience feedback in preview and email based on feedback
refs https://github.com/TryGhost/Team/issues/2171
2022-10-26 12:17:07 +01:00
James Morris
4c6a57c8f3 Updated the feedback copy for Portal modal based on recent feedback
refs https://github.com/TryGhost/Team/issues/2170
2022-10-26 11:59:57 +01:00
Aileen Nowak
b79006d7f3 Added Ghost Explore app
no issue

- bumps Ghost Explore integrated app  to GA from alpha
2022-10-26 10:05:50 +01:00
Naz
cdd65f25ac
Migrated members importer to use tiers
refs https://github.com/TryGhost/Team/issues/2077

- The "productRepository" methods have been deprecated in favor of "tiers" and "Tiers API".
- The changes migrated usages of  "productRepository.getDefaultProduct" to Tiers API's "readDefaultTier"
2022-10-26 14:26:21 +08:00
renovate[bot]
d034526fe6
Update dependency supertest to v6.3.1 2022-10-26 02:54:43 +00:00
Daniel Lockyer
857dacbf16 Fixed missing column values for default paid tiers
fixes https://github.com/TryGhost/Toolbox/issues/455
refs https://github.com/TryGhost/Ghost/blob/main/ghost/core/core/server/data/migrations/versions/5.19/2022-09-02-20-52-backfill-new-product-columns.js

- the referenced migration does not handle backfilling the
  currency/monthly_price/yearly_price for the default paid tiers where
  they do not originate from Stripe
- this is causing issues in Ghost because of the missing data
- this migration backfills the columns for products where they are paid
  but do not currently contain values due to the bug above with the
  values for the default tier we usually use
2022-10-26 08:49:10 +07:00
renovate[bot]
f8cf220762
Update dependency mailgun.js to v8.0.2 2022-10-25 20:20:41 +00:00
James Morris
176af30788 Added in clicks URLs for the members table under clicked tab
refs https://github.com/TryGhost/Team/issues/2149
2022-10-25 17:50:23 +01:00
James Morris
d4e336dc2a Further tweaks and refactoring to engagement bar
- Made a new function that checks if stubs are needed per tab
- Renamed the check for pagination to be a little more clear
- Made sure the pagination block is always to the right
- Made sure the pagination buttons don't show when there is no pagination

refs https://github.com/TryGhost/Team/issues/2149
2022-10-25 16:59:29 +01:00
James Morris
66e42c8b29 Moved the pagination to the right based on feedback
refs https://github.com/TryGhost/Team/issues/2149
2022-10-25 16:13:42 +01:00
Djordje Vlaisavljevic
3e206411f8 Updated attribution info design on member profile
refs https://github.com/TryGhost/Team/issues/1986
2022-10-25 16:55:19 +02:00
Simon Backx
e508baa540 Added breadcrumbs to members pages when coming from analytics
fixes https://github.com/TryGhost/Team/issues/2140
2022-10-25 16:21:10 +02:00
Simon Backx
fee493af45 Wired up source to conversions on analytics page
refs https://github.com/TryGhost/Team/issues/2157

- The source links to the referrer url if there is any
- A dash is used if no source is available
2022-10-25 14:30:40 +02:00
James Morris
bd091c65c7 Tidying up some aspects of the post analytics page and engagement bar
- Removed the dummy rows as they looked like loading states
- Improved the spacing of the pie chart
- Showing total number when pagination isn't required
- Tweaks across the page to look more consistent

refs https://github.com/TryGhost/Team/issues/2149
2022-10-25 12:55:03 +01:00
James Morris
c533af61a9 Removed the source attributiont table from Post Analytics page and added dummy metric to Conversions tab
refs https://github.com/TryGhost/Team/issues/2157
2022-10-25 11:05:44 +01:00
Peter Zimon
441ec742c0 Fixed icon style bug for Explore menu
no issue

- the circle component of the Explore icon was overriden with other style definitions
2022-10-25 11:27:23 +02:00
Naz
a7f5ee0ad5
Simplified members CSV importer constructor
refs https://github.com/TryGhost/Team/issues/2077

- Passing in the whole "getMembersApi" is just too much state to know about for the importer - it only uses a concept of default tier and members repository, the rest is distracting fluff making it hard to reason about what the importer **has to** know to function
- Passing in two functions breaking up the above state simplifies the constructor API.
- This is also a groundwork before substituting productsRepository for tiersRepository (refed issue objective)
2022-10-25 16:40:28 +08:00
Peter Zimon
f5a55092e5 Updated Explore menu
no issue

- Explore menu was before View site
- Explore menu colors were off in dark mode because it used old icon styles
2022-10-25 07:13:22 +02:00
renovate[bot]
0d3d85df64 Update dependency html-validate to v7.7.1 2022-10-25 10:40:33 +07:00
Fabien "egg" O'Carroll
25d8d694a0 Wired up the payment service to create stripe checkout sessions
refs https://github.com/TryGhost/Team/issues/2078
2022-10-25 09:03:04 +07:00
Fabien "egg" O'Carroll
31610f9b94 Wired up Tiers service to Tiers Content & Admin API
refs https://github.com/TryGhost/Team/issues/2078
2022-10-25 09:02:59 +07:00
Fabien "egg" O'Carroll
cc14ce2b20 Added initial tiers service to Ghost
refs https://github.com/TryGhost/Team/issues/2078

This allows us to start wiring up the new package to the Admin & Content API's
2022-10-25 09:02:56 +07:00
Fabien "egg" O'Carroll
df145797b3 Fixed toJSON method of Tier
This was returning an ObjectID object which is not a JSON primitive
2022-10-25 09:02:50 +07:00
Fabien "egg" O'Carroll
6e862b42e7 Wired up Payments service to new Tiers package
refs https://github.com/TryGhost/Team/issues/2078

This adds handling to the Tier events to create Stripe Products & Prices when
Tiers are created and have their pricing changed. We also update the Stripe
Product names when the Tier name is edited.

We also add a method to generate a payment URL which will replace our current
implementation of creating a Stripe Checkout Session
2022-10-25 09:02:41 +07:00
Fabien "egg" O'Carroll
253c30c37a Improved price data access and setting for Tier
refs https://github.com/TryGhost/Team/issues/2078

We want to be able to easily get the price for a Tier based on the cadence for
use when creating Stripe Prices. We also want to be able to set the pricing data
to `null` for free Tiers, rather than erroring.
2022-10-25 09:01:39 +07:00
renovate[bot]
68f1df545c
Update dependency express-jwt to v7.7.7 2022-10-24 21:21:25 +00:00
Hannah Wolfe
d260a7c78c
Updated webhook test snapshots
refs: 26d049911c
refs: 8c2f832573

- snapshots fell behind between the two referenced commits, and needed updating
2022-10-24 19:44:46 +01:00
James Morris
9f7a8a6f2f Renamed the member links to be something simpler on Post Analytics page
refs https://github.com/TryGhost/Team/issues/2147
2022-10-24 16:52:59 +01:00
Kritika Sharma
26d049911c
Added e2e tests for post.published.edited webhook (#15642)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.

Co-authored-by: Kritika Sharma <kritikasharma@Kritikas-MacBook-Pro-2.local>
2022-10-24 14:55:25 +01:00
Dominik Picheta
8c2f832573
Added e2e tests for post.unscheduled webhook (#15675)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-24 14:12:49 +01:00
Simon Backx
1f138893ff Fixed snapshot tests
refs 30ecaef329
2022-10-24 14:27:52 +02:00
James Morris
30ecaef329 Update the portal version number
no issue
2022-10-24 12:47:00 +01:00
James Morris
7b0bf8191d Released Portal v2.18.0 2022-10-24 12:36:57 +01:00
James Morris
4f934ac94f Released Portal v2.17.0 2022-10-24 12:36:04 +01:00
James Morris
627b35aee4 Improved the error modals for audience feedback and newsletter unsubscribe
- Main goal to improve modal when audience feedback fails
- Felt right to also improve the newsletter unsubscribe issue, too
- Makes this more pleasing to read and look at, nothing fancy

refs https://github.com/TryGhost/Team/issues/2081
2022-10-24 12:11:30 +01:00
Naz
59209a07a5
Cleaned up leftover "product" variable naming
refs https://github.com/TryGhost/Team/issues/1076

- "product" in the context of members has been deprecated since introduction of "tiers"
2022-10-24 18:06:02 +08:00
Naz
840deaf8d7
Restricted members importer to ignore "products" column
refs https://github.com/TryGhost/Team/issues/1076
refs 70229e4fd3 (diff-b67ecda91b5bd79c598e5c5a9ec2ccf28dbfab6a924b21352273865e07cd7ceaR57)

- The "products" column has not been doing any logic anything since at least 5.20.0 (see refed commit). The concept of columns in the export file was mostly there for analytical/data filtering reasons - so the user could analyze their exports. CSV was never a good suite for relational data that "products" (or now tiers) represent
- The "tiers" column will still be present in the exported CSV file, but there is not going to be any logic attached to it.
- The only columns that can effect the "tiers" state of the member are: "complimentary_plan" (assign default tier to the member) and "stripe_customer_id" (pulls in subscription/tier data from Stripe)
2022-10-24 18:06:02 +08:00
James Morris
53e20f30ae Rearranged the markup so the empty state shows ok without pie chart
refs https://github.com/orgs/TryGhost/projects/60
2022-10-24 11:03:54 +01:00
James Morris
fda12d103a Added dark mode styles to the post analytics table
no issue
2022-10-24 10:35:29 +01:00
Simon Backx
fd91f7eebb
Added email sent events (#15682)
fixes https://github.com/TryGhost/Team/issues/2137

For the analytics page, we need the sent events to show up immediately
after sending an email. Otherwise we need to wait for emails to be
marked as received (which takes too long) before being able to show them
on the analytics page.

This adds the email_sent_event, which is hidden by default everywhere
and used on the analytics page.
2022-10-24 11:11:44 +02:00
Simon Backx
a650ae2138
Fixed default feedback enabled when flag is disabled (#15660)
fixes https://github.com/TryGhost/Team/issues/2114
fixes https://github.com/TryGhost/Team/issues/2115

When a new newsletter is created, the frontend will send feedback_enabled to true. We'll catch this in the backend and don't allow setting feedback_enabled to true when audience_feedback flag is disabled. This is also handled for editing newsletters.

To fix this in existing sites, I added a migration that disables feedback for all sites (since this is an alpha feature). Once we'll release the feature later, it will be disabled for existing newsletters, just like expected.
2022-10-24 10:14:58 +02:00
Fabien "egg" O'Carroll
0f03b5eddb Released Portal v2.16.0 2022-10-24 15:12:02 +07:00
renovate[bot]
bbd6c47d01 Update dependency html-validate to v7.7.0 2022-10-24 11:36:30 +07:00
renovate[bot]
603c78755d
Updated @tryghost dependencies (#15631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-24 10:30:40 +07:00
renovate[bot]
5f08c1b713 Update dependency ember-svg-jar to v2.4.2 2022-10-24 10:28:20 +07:00
renovate[bot]
9b2e4eb73c Update dependency @babel/plugin-proposal-decorators to v7.19.6 2022-10-24 10:25:41 +07:00
renovate[bot]
44f54fa4cc Update dependency inquirer to v8.2.5 2022-10-24 10:22:16 +07:00
renovate[bot]
66f92e6eaf Update dependency ember-auto-import to v2.4.3 2022-10-24 10:20:44 +07:00
renovate[bot]
3021a7dc50 Update dependency eslint to v8.26.0 2022-10-24 10:19:56 +07:00
Hakim Razalan
48b033f1e1
🐛 Fixed missing unsaved changes modal for member newsletters (#15564)
closes: https://github.com/TryGhost/Ghost/issues/15507

- manually handle relationship changes detection labels and newsletters
- add `dirtyAttributes` controller property - return newsletters and labels dirty attributes status
2022-10-21 21:05:14 +01:00
Hakim Razalan
b88a54fb71
🐛 Fixed redirect to signin modal not shown when logged out (#15522)
fixes:  https://github.com/TryGhost/Ghost/issues/15291

- An attempt to improve re-authenticate modal toggle - show re-authenticate modal every time user save (ctrl/cmd + s)
- An attempt to fix redirection when user re-login on different tab. Prevent redirection to sign-in page since the user already logged in on another tab.
- Re-enable `editor` test on `authentication-test.js`
2022-10-21 21:03:12 +01:00
Halldor Thorhallsson
dbad621b91
Removed bluebird from fixture-utils.js (#15626)
refs: https://github.com/TryGhost/Ghost/issues/14882

- Opted to use the in-house `sequence` function when refactoring Bluebird's `Promise.each` to avoid deadlock issues (see 734ef66e6c). 
-It's hard to know without tonnes of context if any `Promise.each` are safe to refactor to `Promise.all`.
2022-10-21 20:56:21 +01:00
Elena Baidakova
9720459f55
Added pie chart for activity feed (#15673)
closes TryGhost/Team#2088
- Added pie chart to feedback event
- Added `negative_feedback` field to response from BE
2022-10-21 21:34:05 +04:00
Halldor Thorhallsson
39e246aaf8
Removed bluebird from fixture-manager.js (#15629)
refs: https://github.com/TryGhost/Ghost/issues/14882

- Removing bluebird specific methods in favour of the Ghost sequence method so we can remove the bluebird dependency

Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
2022-10-21 18:08:44 +01:00
James Morris
a79c48e547 Add in dummy rows and empty states to the engagement bar
refs https://github.com/TryGhost/Team/issues/2130
2022-10-21 17:33:44 +01:00
Simon Backx
5ef0753611 Improved post activity feed table
no issue

- Fixed counter at the bottom
- Fixed forward > backward not working
2022-10-21 17:19:34 +02:00
Simon Backx
7c824556c2
Added new members filters and refactored filters (#15667)
fixes https://github.com/TryGhost/Team/issues/2112

- Removed a bit of duplicate code across templates and components that was used to handle filters
- Updated filter objects to contain information about the filter
- Added resource filters that are able to select a single resource, which can be used in columns
- Filters can now define columns by themselves. Not all columns already make use of this functionality, but we can move those over later (cleanup: https://github.com/TryGhost/Team/issues/2133)
- The filter definitions became quite long. We should move them to separate files in the future: https://github.com/TryGhost/Team/issues/2134
- Filters can now have custom NQL parsing
- Improved support for parsing recursive or grouped NQL queries
- Added support for filtering members by feedback
2022-10-21 17:18:00 +02:00
James Morris
7d6cfc905e Making avatar initials smaller in the engagement bar
refs https://github.com/TryGhost/Team/issues/2139
2022-10-21 16:12:45 +01:00
James Morris
c2e43a0805 Changing the metric to positive feedback rather than more like this
refs https://github.com/TryGhost/Team/issues/2138
2022-10-21 16:06:27 +01:00
Ghost CI
67c742606d v5.20.0 2022-10-21 16:00:38 +01:00
Rishabh Garg
05330316e3
Allowed fixing newsletter links (#15672)
refs https://github.com/TryGhost/Team/issues/2116

- allows site owners to edit a link in a post that has already been sent out, fixing any typos or other mistakes
- resets click counter for the edited link back to 0 so site owners can see the clicks on new link, doesn't change the overall click count
2022-10-21 19:38:57 +05:30
James Morris
b4a178b45c Moved the newsletter settings option for audience feedback based on feedback
refs https://github.com/TryGhost/Team/issues/2124
2022-10-21 15:07:48 +01:00
illiteratewriter
a701f2114d
Added importer for custom theme settings (#15596)
closes: https://github.com/TryGhost/Ghost/issues/15542

- custom theme settings were not reinstated on import
- importing custom theme settings for the current active theme requires the theme be re-activated
2022-10-21 15:02:32 +01:00
James Morris
11bea8d9f0 Better matching the pagination styles across modules for post analytics
- Careful of flags, having different paginations depending on those
- Little stylistic adjustment to how pagination is shown on engagement bar
- Quite a few feature flag checks to make sure the right style is showing

refs https://github.com/TryGhost/Team/issues/2136
2022-10-21 14:53:09 +01:00
Hannah Wolfe
3ab1c418bc
Updated webhook test snapshots
refs: 717a27c85c
refs: 6380b82793

- The snapshots just needed updating
2022-10-21 14:36:20 +01:00
Halldor Thorhallsson
717a27c85c
Added e2e tests for page.unpublished webhook (#15613)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-21 14:16:13 +01:00
James Morris
8d13aa003f Quick tweak to max height when there are columns side-by-side
refs https://github.com/TryGhost/Team/issues/2118
2022-10-21 14:01:40 +01:00
Rishabh
3d355ea41d Fixed test snapshots
refs 5b283930f0
2022-10-21 18:14:57 +05:30
Samprit JC
f7738dc1a2
Added e2e test for post.unpublished webhook (#15628)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-21 13:08:54 +01:00
Djordje Vlaisavljevic
3d697fb67b Updated explainer text design
refs https://github.com/TryGhost/Team/issues/2127
2022-10-21 13:50:03 +02:00
Shashank Gupta
092fb7813d
Added e2e tests for page.edited webhook (#15627)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-21 12:45:38 +01:00
illiteratewriter
4ba254b339
Added e2e tests for member.edited webhook (#15620)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-21 12:43:30 +01:00
Shubhadeep Das
5b283930f0
Added e2e tests for post.edited webhook (#15625)
refs: https://github.com/TryGhost/Ghost/issues/15537

- snapshot test created to add confidence to webhook stability and increase overall test coverage.
2022-10-21 12:39:24 +01:00
Rishabh
25f76642b3 Refined link edit cancellation on analytics page
refs https://github.com/TryGhost/Team/issues/2116

- ignores blur events when link is edited via keypress
2022-10-21 17:05:48 +05:30
Rishabh
86a9695ccb Fixed date format for link bulk edit
refs https://github.com/TryGhost/Team/issues/2104

- updates date format for `updated_at` to use the right DB date format
2022-10-21 17:02:37 +05:30
Naz
b552727b69
Changed members export to contain tiers
refs https://github.com/TryGhost/Team/issues/1076

- The "products" is a legacy term for what is now "tiers" since multiple tiers feature introduction in https://github.com/TryGhost/Ghost/releases/tag/v4.39.0
- Note, the "tiers" is a field meant for informational purposes and cannot be imported back into Ghost site.
2022-10-21 18:58:59 +08:00
Naz
850eb611c3
Added 100% unit test coverage to unparse
refs https://github.com/TryGhost/Team/issues/1076

- 100% is the golden standard. Easy to keep it this way once there
2022-10-21 18:58:59 +08:00
Naz
77e8fdfccb
Removed test "utils" folder
refs https://github.com/TryGhost/Team/issues/1076

- The members-csv package does not use "should" for assertions anymore, so the accompanying "utils" lib can go away now
2022-10-21 18:58:59 +08:00
Naz
0d1479158c
Migrated unparse test suite to assert
refs https://github.com/TryGhost/Team/issues/1076

- The 'should' assertion library is deprecated. Native 'assert' is the recommended lib to use
- Migrating this bit of code allows to remove the should's "utils" folder. Less code, yey!
2022-10-21 18:58:59 +08:00
Naz
6c2d057e25
Improved readability of unparse test
refs https://github.com/TryGhost/Team/issues/1076

- The column parameter has default behavior attached to it, so it is best to have it mentioned and used in an explicit way.
2022-10-21 18:58:59 +08:00
Aileen Booker
6c9f8ec32d
Improved URL syncing between Admin and Explore (#15640)
no issue

Improve the route communication between Ghost Admin and Ghost Explore to
reflect route changes in the URL and correctly navigate to Explore sub
routes
2022-10-21 11:48:18 +01:00
Rishabh
50c92142d4 Fixed lint 2022-10-21 16:08:26 +05:30
Rishabh
ba6fe63250 Fixed cached redirects for edited newsletter links
refs https://github.com/TryGhost/Team/issues/2135

The email link redirects on Pro are cached as 302 redirects in Varnish, so we're missing further clicks after the first one for each member, until the cache is invalidated. This change invalidates cache on link edits to ensure that we correctly redirect members to updated link everytime
2022-10-21 16:07:34 +05:30
Rishabh
25cbbff81c Refined link edit flow on Admin
refs https://github.com/TryGhost/Team/issues/2116
2022-10-21 15:57:32 +05:30
Djordje Vlaisavljevic
06365b1d00 Changed explainer text color and icon to deemphasize it
refs https://github.com/TryGhost/Team/issues/2127
2022-10-21 11:46:33 +02:00
Djordje Vlaisavljevic
1d4e6328cb Fixed row hover effects in dark mode
refs https://github.com/TryGhost/Team/issues/2127
2022-10-21 11:08:11 +02:00
Rishabh
910d13fbab Updated save button handling for links
refs https://github.com/TryGhost/Team/issues/2116
2022-10-21 14:36:33 +05:30
Djordje Vlaisavljevic
9e3e3d7131 Removed unnecessary padding
refs https://github.com/TryGhost/Team/issues/2127
2022-10-21 11:04:27 +02:00
Djordje Vlaisavljevic
1e1a155b7d Updated edited state font weight for better contrast
refs https://github.com/TryGhost/Team/issues/2127
2022-10-21 10:37:31 +02:00
Elena Baidakova
bbf6b95cbf
Added filtered events tables to the analytics page (#15669)
closes TryGhost/Team#2087
2022-10-21 12:31:25 +04:00
Rishabh
dcd607ad94 Fixed jumping of links on edit in analytics
refs https://github.com/TryGhost/Team/issues/2116

- editing a link caused it to jump in the list as its count is reset to 0
- this forces the order of links same after edit, the new order is only visible on refresh or navigating away and coming back
2022-10-21 13:34:15 +05:30
Djordje Vlaisavljevic
3203714b3d Added retry button in error state
refs https://github.com/TryGhost/Team/issues/2127
2022-10-20 22:10:37 +02:00
Djordje Vlaisavljevic
1435f0eabf Fixed explanation text not showing when there's no pagination
refs https://github.com/TryGhost/Team/issues/2127
2022-10-20 22:04:29 +02:00
Djordje Vlaisavljevic
dafdfc7a7c Vertically aligned icons
refs https://github.com/TryGhost/Team/issues/2127
2022-10-20 21:58:33 +02:00
Djordje Vlaisavljevic
e84e58f9b3 Fixed unrelated elements sharing the same CSS class
refs https://github.com/TryGhost/Team/issues/2127
2022-10-20 21:49:14 +02:00
Djordje Vlaisavljevic
2325969f77 Fixed missing padding in post analytics header
refs https://github.com/TryGhost/Team/issues/2127
2022-10-20 21:43:12 +02:00
Djordje Vlaisavljevic
bb182674df Deemphasized edited state
refs https://github.com/TryGhost/Team/issues/2127
2022-10-20 21:39:48 +02:00
Djordje Vlaisavljevic
a0b5267f0f Improved responsiveness
refs https://github.com/TryGhost/Team/issues/2067
2022-10-20 16:26:39 +02:00
Rishabh
ec126f0980 Added missing dependencies for link tracking 2022-10-20 19:49:04 +05:30
Djordje Vlaisavljevic
b4d16a7d3e Fixed first and last child padding in edit mode
refs https://github.com/TryGhost/Team/issues/2067
2022-10-20 16:11:44 +02:00
Rishabh
71999a26b9 Updated success state for link update on Admin
refs https://github.com/TryGhost/Team/issues/2116

- removes extra redundant success state handling
2022-10-20 18:25:46 +05:30
Rishabh
d7b3721036 Added edited property to links api
refs https://github.com/TryGhost/Team/issues/2104

- adds a boolean `edited` property to links api that denotes if the link has been edited
2022-10-20 18:17:44 +05:30
Rishabh
ee145ed5b3 Wired link update api on Admin
refs https://github.com/TryGhost/Team/issues/2116

- wires link update API on post analytics UI page to save edited links for a newsletter
- all links matching the edited link are updated by the API in the backend
2022-10-20 17:55:02 +05:30
Rishabh
6312b064f5 Added reset for link click count on edit
refs https://github.com/TryGhost/Team/issues/2104

When a newsletter link is edited, we reset its click count to 0 to show only the clicks on newly edited links. This is done by only counting the member click events for a link which are greater than its last updated at, so that all previous click events are not counted for the link, but are included in the total count of all links on the page.
2022-10-20 17:50:02 +05:30
Rishabh
d8bacf12d1 Added endpoint for fixing newsletter links
refs https://github.com/TryGhost/Team/issues/2104

- adds new bulk edit endpoint for links, updates all matching link with the current redirect url and update to new url
2022-10-20 17:50:02 +05:30
James Morris
40b8a838ae Moving the post analytics layout closer to new design
- Newsletter clicks module has new header and box
- Source attribution module has new header and box
- Resources have new headers inside the box
- New split layout if there are two modules side-by-side

refs https://github.com/TryGhost/Team/issues/2119
2022-10-20 13:17:25 +01:00
Simon Backx
adf10f0e76
Added support for filtering email events by post_id (#15666)
refs https://github.com/TryGhost/Team/issues/2093
2022-10-20 13:29:00 +02:00
Djordje Vlaisavljevic
0172fd3ef2 Made default and editing states the same height
refs https://github.com/TryGhost/Team/issues/2067
2022-10-20 12:43:41 +02:00
Fabien "egg" O'Carroll
b14b74315f Exported Tier events from tiers package
These are required to be exported so that external code can subscribe to the
events.
2022-10-20 17:40:37 +07:00
Fabien "egg" O'Carroll
5f928794c3 Added support for Tier events
refs https://github.com/TryGhost/Team/issues/2078

These events are all required for other parts of the Ghost system to stay in
sync. The events on each Tier object will be dispatched by the TierRepository
once they've been persisted.

TierCreatedEvent - generate Stripe Products & Prices
TierNameChangeEvent - update Stripe Products
TierPriceChangeEvent - update Stripe Products & Prices
TierArchivedEvent - update the Portal settings for visible tiers
                  - disable Stripe Products & Prices
TierActivatedEvent - enable Stripe Products & Prices
2022-10-20 17:31:33 +07:00
Djordje Vlaisavljevic
d1d3c1401f Added button for saving changes made to the link
refs https://github.com/TryGhost/Team/issues/2125
2022-10-20 12:18:56 +02:00
Naz
0e094b371b
Reused getDefaultProduct where possible
refs 82ed10473b
refs https://github.com/TryGhost/Team/issues/1869

- getDefaultProduct has unified logic across different places (see refed commit). It is recommended to use instead of writing custom queries prone to mistakes.
- Also added more readable name to the possible error message thrown by setComplimentarySubscription
2022-10-20 17:23:59 +08:00
Naz
5d5b77d32f
Fixed comped tier assignment
closes https://github.com/TryGhost/Team/issues/1869

- When there were "archived" tiers in the system the importer incorrectly fetched them instead of only taking "active" ones into account. The "getDefaultProduct" on product repository does exactly that.
- Additionally, reusing the "getDefaultProduct" makes testing the importer slightly less complex.
2022-10-20 17:19:52 +08:00
Naz
82ed10473b
Added 'getDefaultProduct' convenience method to product repo
refs https://github.com/TryGhost/Team/issues/1869

- There are multiple places in the codebase fetching "default product". The code is slightly divergent in each one of them and has been a source of bugs (like the one referenced). Having the logic captured in one place will allow reducing the code duplication, making code less bug prone, and making testing the modules dependent on the "setDefaultProduct" method easier
2022-10-20 17:19:52 +08:00
James Morris
02698b4559 Moved the resources to the new style
refs https://github.com/TryGhost/Team/issues/2117
2022-10-20 10:01:30 +01:00
Naz
03e0962889
Removed garbage test
no issue

- This test does nothing but occupy the disc space
2022-10-20 14:34:23 +08:00
Fabien "egg" O'Carroll
6614aa9070 Fixed add method for TiersAPI
refs https://github.com/TryGhost/Team/issues/2078

The check for creating free Tiers needs to be explicit, rather than implicit
because the type is optional, we only want to error if it is explicitly passed
as "free", not if it is missing as "paid".
2022-10-20 11:56:46 +07:00
Fabien "egg" O'Carroll
9e7b009236 Fixed edit method to accept a string
refs https://github.com/TryGhost/Team/issues/2078

This fixes a bug with the edit method where we passed a raw string
rather than ObjectID
2022-10-20 11:55:21 +07:00
Fabien "egg" O'Carroll
93e392fac1 Added error messages for monthly & yearly price validation
refs https://github.com/TryGhost/Team/issues/2078

These were missing, and will be refactored into the correct
tpl(messages.prop) format
2022-10-20 11:55:09 +07:00
Fabien "egg" O'Carroll
dfa88360ea Fixed trialDays validation to default to 0
refs https://github.com/TryGhost/Team/issues/2078

This retains current functionality
2022-10-20 11:55:01 +07:00
Fabien "egg" O'Carroll
581164ed60 Updated Tier welcomePageURL to be a string rather than URL
refs https://github.com/TryGhost/Team/issues/2078

We allow passing in relative URLs for the welcome page, so we need to accept a
string for this property.
2022-10-20 11:54:49 +07:00
Fabien "egg" O'Carroll
b607bee27f Updated Tier to use camelCase property names
refs https://github.com/TryGhost/Team/issues/2078

Having to map between snake_case and camelCase was becoming confusing, so this
updates the Tier object to exclusively use camelCase, and the snake_case for the
API can be handled by the serializer/mapper or at the controller level.
2022-10-20 11:54:18 +07:00
Fabien "egg" O'Carroll
3811169d20 Fixed visibility property on Tiers
refs https://github.com/TryGhost/Team/issues/2078

This property should be settable to either 'public' or 'none'
2022-10-20 11:54:12 +07:00
Fabien "egg" O'Carroll
0978a808d6 Refactored TiersAPI to use core slug generation
refs https://github.com/TryGhost/Team/issues/2078

This removes the burden from the Tier object, and allows us to reuse
the existing slug generation implementation we have in our bookshelf
models.
2022-10-20 11:54:03 +07:00
Daniel Lockyer
02c8690e87 Added ghost_subscription_id column to members_stripe_customers_subscriptions
refs https://github.com/TryGhost/Team/issues/2034

- this table will be used to link Stripe subscriptions to Ghost
  subscriptions via a foreign key that we add at a later point
- this also includes `constraintName` as the auto-generated one would be
  too long for MySQL 8
2022-10-20 10:59:36 +07:00
Rishabh Garg
318a5a809c
Added permissions for link edit endpoints (#15664)
refs https://github.com/TryGhost/Team/issues/2104

- adds edit permissions for links endpoints to fixtures
- new `bulkEdit` endpoint will use the permissions and allow fixing newsletter links via Admin
2022-10-20 09:11:26 +05:30
renovate[bot]
eaf6c5d1b7 Update dependency ember-svg-jar to v2.4.1 2022-10-20 10:14:41 +07:00
Rishabh Garg
60b10ad69a
Fixed permissions for links endpoint (#15656)
refs 5fcf5098a8

- links browse endpoint had permissions switched off unintentionally and was also missing the necessary permissions in fixtures.
- enables permissions for browse endpoint and adds migration insert permissions in DB
2022-10-20 08:18:29 +05:30
renovate[bot]
93e999ec1c
Update dependency mocha to v10.1.0 2022-10-19 17:53:57 +00:00
James Morris
79142c0a4c Fixed up the more like this event icons as they were too large
refs https://github.com/TryGhost/Team/issues/2106
2022-10-19 17:49:17 +01:00
Rishabh
88bda6e1b3 Handled no empty sources for attribution table
- fixes an edge case where if a site has no unavailable sources in a particular period, it broke the table view as the `Others` data doesn't get fetched
2022-10-19 20:31:48 +05:30
Rishabh
ca28ba8bae Added edited state for newsletter links
refs https://github.com/TryGhost/Team/issues/2111

- shows edited in UI next to edited newsletter links in post analytics
2022-10-19 20:25:58 +05:30
Djordje Vlaisavljevic
e6bde038ba Fixed period filter not appearing on smaller screens on dashboard
no ref
2022-10-19 16:55:33 +02:00
Simon Backx
6380b82793
Added sentiment ordering and include for posts (#15657)
fixes https://github.com/TryGhost/Team/issues/2090

- This changes how sentiment is exposed in the API. Now it is exposed as a `sentiment` relation, directly on the model (no longer in counts). Internally we still use `count.sentiment`.
- Content API users (and themes) can include the 'sentiment' relation and order by sentiment.
- Updated Admin to use sentiment instead of count.sentiment
2022-10-19 16:50:58 +02:00
Rishabh
3db8fb5a1c Wired newsletter link success/error states
refs https://github.com/TryGhost/Team/issues/2116

- wires handling of success and error messages on editing a newsletter link
- has the update api commented out temporarily to mock the changes
2022-10-19 19:23:15 +05:30
Djordje Vlaisavljevic
b310b3a97a
Added design for edited state of newsletter links
refs https://github.com/TryGhost/Team/issues/2111

- Added indicator that the link in a newsletter has been edited after sending
2022-10-19 15:33:37 +02:00
Sam Lord
68955aa704 Remove Grunt from yarn setup in Ghost core
no issue
2022-10-19 12:58:10 +01:00
Elena Baidakova
17cfdcd3a9
Updated feedback buttons url (#15655)
closes TryGhost/Team#2080
- If the post was published and emailed the link leads the user to the
post.
- If the post was just emailed the link leads the user to the home page.
2022-10-19 15:21:43 +04:00
Elena Baidakova
c65b980ada
Added tabs component (#15652)
closes TryGhost/Team#2086
2022-10-19 15:20:15 +04:00
Naz
b589a66cd4
Fixed broken CSV importer tests
refs 90768e9985

- With introduction of strict field mapping the regression test testing for "imports of not mapped fields" failed.
2022-10-19 18:33:47 +08:00
Naz
90768e9985
Added strict field mapping to member CSV importer
closes https://github.com/TryGhost/Toolbox/issues/430

- The members importer used to  import all fields present in the uploaded CSV if the headers match, even if they're not mapped in the UI. This behavior has lead to have misleading consequences and "hidden" features. For example, if the field was present but intentionally left as "Not imported" in the UI the field would still get imported.
- Having a strict list of supported import fields also allows for manageable long-term maintenance of the CSV Import API and detect/communicate changes when they happen.
- The list of the current default field mapping is:

    email: 'email',
    name: 'name',
    note: 'note',
    subscribed_to_emails: 'subscribed',
    created_at: 'created_at',
    complimentary_plan: 'complimentary_plan',
    stripe_customer_id: 'stripe_customer_id',
    labels: 'labels',
    products: 'products'
2022-10-19 18:10:40 +08:00
Naz
748ef87954
Made running the import outside of job on test env
- Allows to write tests for the importer easier when there is a "subscription" or a "product" present
2022-10-19 18:10:40 +08:00
Naz
9389064ae2
Removed unused error message
no issue

- The job-related code was ripped out form the importer and this message was just an overlooked leftover
2022-10-19 18:10:40 +08:00
Naz
1317500058
Migrated CSV parser tests to 'assert'
no issue

- Using native 'assert' module in unit tests is a preferred practice. Should is outdated and is phased out of codebase.
2022-10-19 18:10:40 +08:00
Naz
c0a415e0e1
Added strict header mapping parsing
refs https://github.com/TryGhost/Toolbox/issues/430

- Previously the CSV parser had "map whatever you can and pass on unknown properties further" approach to CSV parsing. This logic has led to unwanted fields leaking through CSV imports - messy, dangerous.
- The strict mapping rules act as a "validator" to the user input, only passing through the fields we expect explicitly - safer clean cut solution with no unintended side-effects.
2022-10-19 18:10:40 +08:00
Naz
eca4b142d2
Cleaned up csv parse test suite
refs https://github.com/TryGhost/Toolbox/issues/430

- Removed unnecessary "readCSV" leftover code.
2022-10-19 18:10:40 +08:00
Naz
f1e45f4632
Cleaned up test case names 2022-10-19 18:10:40 +08:00
Naz
f0b68846cc
Moved header mapping configuration to importer
refs https://github.com/TryGhost/Toolbox/issues/430

- To be able to introduce strict mapping rules (exclude unknown fields) we need to control the CSV header mapping on the importer level. This change moves the configuration up from CSV parser to the importer
- Also adds tests covering correct inserts for specially treated "subscribed_to_emails" field
2022-10-19 18:10:40 +08:00
Naz
c08d4f8ad1
Added basic test coverage for perform method
refs https://github.com/TryGhost/Toolbox/issues/430

- "perform()" is what gets executed by the import job for both immediate import and "inline job" import. Testing it on granular level will allow to change it with more confidence when introducing strict field mapping rules
2022-10-19 18:10:40 +08:00
Naz
8dc630b3a0
Removed cleaned up use of "Job" object
refs https://github.com/TryGhost/Toolbox/issues/430

- Importer code was filled with an unnecessarily complex "job" object that was passed around. It had an "id" property, which confusingly was a path to a file at all times.
- Simplified the logic significantly by keeping and passing around the path to a "prepared" members CSV.
2022-10-19 18:10:40 +08:00
Naz
812973d962
Removed unused concept of "status" in importer job
refs https://github.com/TryGhost/Toolbox/issues/430

- The job "status" is never anything different than "pending" and never leaves the module itself. It's an outdated concept that only takes up lines of code!
2022-10-19 18:10:40 +08:00
Naz
2175d64095
Added future investigation note
refs https://github.com/TryGhost/Toolbox/issues/430

- This is a strange hardcoded value that seems like some legacy leftover concept we could do without or improve
2022-10-19 18:10:40 +08:00
Naz
d165a0017c
Extracted MembersCSVImporter to a builder method
refs https://github.com/TryGhost/Toolbox/issues/430
refs https://github.com/TryGhost/Ghost/issues/14882

- The MembersCSVImporter constructor is way to complex and needs refactoring. This complexity makes initialization in tests too bulky and makes tests hard to read.
- Having a builder method is a stopgap solution to avoid going into MembersCSVImporter refactoring too deep.
2022-10-19 18:10:40 +08:00
Naz
4300f14d79
Removed hidden row mapping in csv parser
refs https://github.com/TryGhost/Toolbox/issues/430
refs https://github.com/TryGhost/Ghost/issues/14882

- Having an explicit mappings passed into the members CSV parser makes it easier to control and understand the transforms for package clients
- Eventually the parser will receive a strict map with the fields it should parse - skipping all unknown & unmapped fields
2022-10-19 18:10:40 +08:00
Naz
971a562b46
Added JSDoc to members csv parser
refs https://github.com/TryGhost/Toolbox/issues/430

- Typings make developer's life nicer
2022-10-19 18:10:40 +08:00
Naz
1c746c0ca0
Added test coverage for 'subscribed' transform
refs https://github.com/TryGhost/Toolbox/issues/430

- Not having any extra logic in the mapper will allow to have a generalized "mapping" concept for CSV input serialization
- This is groundwork for stricter header value filtering on the parsing stage
2022-10-19 18:10:40 +08:00
Naz
bc70835890
Increased test coverage
refs https://github.com/TryGhost/Toolbox/issues/430

- The bonus of using the module exports file is that it also gets included in the test coverage statistics ^_^
2022-10-19 18:10:40 +08:00
Naz
f38950c022
Fixed typo 2022-10-19 18:10:40 +08:00
Naz
6c9cfe8f24
Fixed typo 2022-10-19 18:10:29 +08:00
Naz
7a1389954b
Updated JSDoc and fixed typos 2022-10-19 18:10:29 +08:00
Djordje Vlaisavljevic
d14dd3e3ae Fixed overflow for newsletter links
refs https://github.com/TryGhost/Team/issues/2067
2022-10-19 12:59:54 +05:30
Djordje Vlaisavljevic
e3c03bb754 Added newsletter links editing explanation text
refs https://github.com/TryGhost/Team/issues/2067
2022-10-19 12:59:54 +05:30
Djordje Vlaisavljevic
6b46f3f295 Made edit link button always visible
refs https://github.com/TryGhost/Team/issues/2067
2022-10-19 12:59:54 +05:30
Fabien "egg" O'Carroll
4f54cbc37a Supported payment URL in Portal
refs https://github.com/TryGhost/Team/issues/2078

As part of decoupling Stripe from the members feature, we are going to be using
payment URLs rather than Stripe sepcific session ids and publick keys.

This prepares Portal to work with the new system, whilst retainign the existing
functionality
2022-10-19 11:06:10 +07:00
Fabien "egg" O'Carroll
fbc23a624e Refactored Tiers logic into separate package
refs https://github.com/TryGhost/Team/issues/2078

This pulls the current Tiers logic into its own package, the persistence part of
the work has not been done yet, that will be handled in core, so all bookshelf
model specific stuff is kept together.
2022-10-19 11:05:09 +07:00
renovate[bot]
6eaeaad5f2
Update dependency ember-template-lint to v4.16.1 2022-10-18 23:25:57 +00:00
Daniel Lockyer
9b8c33484d
Merged v5.19.3 into main
v5.19.3
2022-10-19 06:22:38 +07:00
Ghost CI
e1e5a7b35e v5.19.3 2022-10-18 16:18:29 +01:00
Simon Backx
a822c5a8c5 Added test to check if feedback buttons are hidden if alpha flag is disabled 2022-10-18 16:47:06 +02:00
Simon Backx
8ecf0a5858 🐛 Fixed alpha feature visible in new newsletters
no issue
2022-10-18 16:38:59 +02:00
Simon Backx
a01fb5f1aa
Added post_id filter and total to activity feed API (#15650)
fixes https://github.com/TryGhost/Team/issues/2091
fixes https://github.com/TryGhost/Team/issues/2089

- Added new fixtures to make testing easier for the activity feed
- Improved E2E test coverage of activity feed with separate test file
- Added data.post_id filter to enable filtering by events related to a
given post
- Fixed return types in JSDoc of test agents (TypeScript interprets
these as `typeof Agent` if we don't add `InstanceType<Agent>`)
- Added total pagination metadata to activity feed API (to allow a basic
type of pagination using filters)
2022-10-18 15:52:04 +02:00
renovate[bot]
2f43e71f7f
Update dependency ember-template-lint to v4.16.0 2022-10-18 10:21:09 +00:00
Kevin Ansfield
95cfb48c2d Fixed broken ember-svg-jar asset viewer
no issue

- downgraded to `2.3.4` because `2.4.0` is missing the asset viewer assets, see https://github.com/voltidev/ember-svg-jar/issues/233
2022-10-18 11:18:20 +01:00
Daniel Lockyer
2dcc4139b1
Merged v5.19.2 into main
v5.19.2
2022-10-18 17:04:23 +07:00
Djordje Vlaisavljevic
a014b5838a
Added design for success and error states for editing newsletter links
refs https://github.com/TryGhost/Team/issues/2095
refs https://github.com/TryGhost/Team/issues/2098

- Added success state design for editing links in newsletters
- Added error state for invalid URL when editing links in newsletters
2022-10-18 10:53:34 +02:00
Ghost CI
14a259b828 v5.19.2 2022-10-18 09:51:41 +01:00
Simon Backx
d1e6870740
🐛 Fixed large mailgun recipient data (#15638)
fixes https://github.com/TryGhost/Team/issues/2096

When generating the recipient data for emails, the email clicks
implementation is resulting in a recipient variable being added called
replacement_xxx once for each link containing the same UUID.

This generates a lot of unnecessary data overhead for emails, and it
turns out that mailgun has a 25MB message limit. We wouldn't have come
close if we only included the uuid once.
2022-10-18 10:32:50 +02:00
Daniel Lockyer
18c52f2a2a
Improved jsdoc for permission migration utils
- this helps with readability and editor autocomplete
2022-10-18 14:38:58 +07:00
Daniel Lockyer
3858f255b9 Dropped nullable status on subscriptions.tier_id
fixes https://github.com/TryGhost/Team/issues/2102

- this column was added with `nullable: true` but it should never be
  nullable, so we should drop the nullable status whilst it's easy to
2022-10-18 14:16:30 +07:00
Daniel Lockyer
2d324ea315
Fixed various code nits with schema command utils
- de-duped the exports at the bottom if they export the same name as the
  function
- added types to all functions, or fixed existing ones
- renamed `table` to `tableBuilder` to represent it better
- these should help with code readability and autocomplete in editors
2022-10-18 11:07:12 +07:00
Daniel Lockyer
c9d43b8fe1
Allowed constraintName in schema column spec
refs 0ba3d6df49

- this is used to indicate the name of the foreign key constraint and so
  we should let it through the schema checks
2022-10-18 10:29:55 +07:00
Daniel Lockyer
0ba3d6df49 Added support for supplying the foreign key constraint name
- this allows us to choose the foreign key constraint name when the
  auto-generated one would be too long
2022-10-18 10:25:14 +07:00