Commit Graph

16603 Commits

Author SHA1 Message Date
Simon Backx
0cc3164b25
Added export button to posts page with placeholder endpoint (#16456)
fixes https://github.com/TryGhost/Team/issues/2780 
refs https://github.com/TryGhost/Team/issues/2781

Adds an export button to the posts page in admin (behind feature flag). It downloads a
placeholder CSV via a real endpoint (`/posts/export`).
2023-03-21 10:24:56 +01:00
Daniel Lockyer
2096773310
Added missing @tryghost/posts-service dependency
- this is needed so we can link between packages in the monorepo when
  the packages are bundled
2023-03-21 08:24:25 +01:00
renovate[bot]
48e486509c Update dependency vite to v4.2.1 2023-03-21 07:36:34 +01:00
renovate[bot]
41e956fd55 Update vitest monorepo to v0.29.7 2023-03-21 07:36:13 +01:00
renovate[bot]
1f2df81ed1 Update sentry-javascript monorepo to v7.44.1 2023-03-21 07:35:45 +01:00
renovate[bot]
e1fa8560d5 Update dependency fs-extra to v11.1.1 2023-03-21 07:35:30 +01:00
Simon Backx
a5dff4207e Moved posts service to its own package
fixes https://github.com/TryGhost/Team/issues/2778

It is easier to add extra classes using the latest patterns if it has its own package.
2023-03-20 16:06:42 +01:00
Elena Baidakova
aca8c5805c Improved members-actions e2e browser test
refs TryGhost/Team#2667
- Added notification check before checking that user successfully unsubscribed from all newsletters. It helps to make the test more stable
2023-03-20 18:48:35 +04:00
Simon Backx
07ec33fb3a
Added latest posts to email template (#16448)
refs https://github.com/TryGhost/Team/issues/2769

Needs some extra styling and design, this is only a minimal version
behind the feature flag.
2023-03-20 14:30:42 +01:00
Simon Backx
6d8388c5bb Fixed migration version for show latest posts
no issue

The migration was added to 5.39, but this was not correct. It should have been added to 5.40. This commit fixes moves the migration to the right folder. Running the migration twice locally will skip it because it detects the table is already correct.
2023-03-20 14:18:30 +01:00
Simon Backx
f2860e745c Added placeholder latest posts to newsletter preview
refs https://github.com/TryGhost/Team/issues/2768

Added a placeholder to be replaced with some better design and styling.
2023-03-20 11:30:16 +01:00
Simon Backx
f38d799ae2 Wired up showLatestPosts in admin
fixes https://github.com/TryGhost/Team/issues/2766

Edit showLatestPosts column via admin.
2023-03-20 11:26:19 +01:00
Simon Backx
a513542b56
Added show_latest_posts column to newsletter table (#16402) 2023-03-20 11:10:49 +01:00
Sodbileg Gansukh
4aef61ce66 Fixed member list loading UI spacing
refs https://github.com/TryGhost/Team/issues/2743
2023-03-20 13:55:51 +08:00
renovate[bot]
827d2abf55 Update dependency @testing-library/react to v12.1.5 2023-03-17 23:38:13 +00:00
Sanne de Vries
1b0adcf4ab Fixed missing stub for DNS in GhostMailer Direct tests
- without this, Node will try and resolve the domain name but local DNS
  resolvers can take a while to timeout, which causes the tests to timeout
- `nodemailer-direct-transport` calls `dns.resolveMx`, so if we stub that
  function and return an empty array, we can avoid any real DNS lookups
2023-03-17 18:16:30 +01:00
Simon Backx
a6654b5e6c Updated GhostMailer Direct unit tests to async await style
no issue

Tests were timing out for some users, probably because not all errors are caught.
2023-03-17 17:34:01 +01:00
Ghost CI
7f1f6a7249 v5.39.0 2023-03-17 16:00:48 +00:00
Steve Larson
0a4d568f19 updated snapshot
no refs
-updated snapshot to pass tests
2023-03-17 10:57:50 -05:00
Peter Zimon
9d25c2a058 Fixed mobile size footer buttons in newsletters
refs. https://github.com/TryGhost/Team/issues/2740

- alignment of buttons in the footer of newsletter email template was off
2023-03-17 16:34:23 +01:00
Steve Larson
067b35de6b fixed member newsletter test
no refs
-fixed flaky test that seemed to have sync issues with fixture data and db
2023-03-17 10:27:09 -05:00
Rishabh
3d68cd4544 Fixed incorrect newsletter ref for internal links
refs TryGhost/Team#2755

Previous change for outbound tagging had incorrectly changed the internal links ref for newsletter to include domain. This change fixes it back to use newsletter name for internal links.
2023-03-17 20:55:52 +05:30
Simon Backx
92fc5bdf70 Fixed email service unit tests for duplicate email buttons 2023-03-17 16:09:50 +01:00
Simon Backx
b3c410a923 Reverted stats snapshot change 2023-03-17 16:06:00 +01:00
Simon Backx
c591f1f86a Updated email batch sending snapshots 2023-03-17 16:00:14 +01:00
Sanne de Vries
48a3159d3d Added mobile feedback buttons to email template
Refs https://github.com/TryGhost/Team/issues/2740
2023-03-17 15:58:14 +01:00
renovate[bot]
b7a7a54b43 Update dependency react-error-overlay to v6.0.11 2023-03-17 15:21:26 +01:00
Daniel Lockyer
b7a03ca765 🐛 Fixed mainEntityOfPage property within page metadata
fixes https://github.com/TryGhost/Ghost/issues/16367
refs https://github.com/schemaorg/schemaorg/discussions/3274

- after a discussion with the schemaorg maintainers, it looks like
  `mainEntityOfPage` should refer to the entity itself vs the parent
  entity
- this commit updates the code to use the entity URL and fixes the
  associated tests
2023-03-17 15:13:28 +01:00
Simon Backx
f67b38daf4 Fixed posts and email wrappers in worker threads
refs https://ghost.slack.com/archives/C02G9E68C/p1679055933852679

- The posts api is used in the update-check job. This also uses the email wrapper, which needs the email-service
- The email service is not initalized in the worker threads, this causes an error
- Adds a check, because this part is optional in worker threads
2023-03-17 14:10:33 +01:00
Simon Backx
9bdffdf89d Fixed body style dropdown overflow issue
no issue

When opening the 'body style' dropdown in the newsletter settings, the dropdown was not completely visible. The next 'liquid' tab covered the dropdown. This makes some adjustments to the overflow of the liquid containers and z-index of the buttons and containers to fix that.

It also removes overflow-y: auto from one of the containers because it cropped the shadow if the dropdown, while that container could never scroll (parent is scrollable).
2023-03-17 12:00:24 +01:00
Daniel Lockyer
3302f4125e
Added support to yarn dev for --search to launch Sodo-Search
refs https://github.com/TryGhost/Toolbox/issues/400

- this makes development more fluid by allowing developers to use the
  local Sodo-Search code
2023-03-17 11:51:42 +01:00
renovate[bot]
680e3bf270 Update sentry-javascript monorepo to v7.43.0 2023-03-17 11:40:12 +01:00
Daniel Lockyer
945bae34cc
Updated Sodo-Search dependencies
- these were the easy ones to bump, the rest require bigger changes or
  more investigation
2023-03-17 11:30:02 +01:00
Daniel Lockyer
d1392e3b8a
Deleted superfluous .editorconfig file
- this is not needed as we have one at the top-level
2023-03-17 11:30:02 +01:00
Daniel Lockyer
73c1438561
Updated Sodo-Search package.json
refs https://github.com/TryGhost/Toolbox/issues/400

- this brings it inline with Portal's, which is a similar project
2023-03-17 11:30:02 +01:00
Sanne de Vries
0d8d5a8119 Updated typography in email design preview
Refs https://github.com/TryGhost/Team/issues/2714
2023-03-17 11:19:30 +01:00
Simon Backx
005b5f20fb Added E2E tests for comment CTA
fixes https://github.com/TryGhost/Team/issues/2727

Adds some E2E tests and snapshots for comment CTA in all possible situations.
2023-03-17 11:12:47 +01:00
Daniel Lockyer
ddc6d60927
Added missing yarn test:unit command to Sodo-Search
refs https://github.com/TryGhost/Toolbox/issues/400

- this is needed for CI tests
2023-03-17 10:48:25 +01:00
Daniel Lockyer
a18da88073
Added .yarnrc config to Sodo-Search
refs https://github.com/TryGhost/Toolbox/issues/400

- this allows the git tag and commit to be correctly formed for new
  Sodo-Search releases
2023-03-17 10:41:47 +01:00
Daniel Lockyer
2c72f3c97b
Merged Sodo-Search gitignore with top-level one
refs https://github.com/TryGhost/Toolbox/issues/400

- we don't need multiple gitignores because it can produce weird
  behaviour with some tools
2023-03-17 10:34:21 +01:00
Daniel Lockyer
94201281e3
Updated lockfile 2023-03-17 10:32:28 +01:00
Daniel Lockyer
9cc202aae3
Imported code and history from Sodo-Search
refs https://github.com/TryGhost/Toolbox/issues/400

- this allows for a better dev experience by having the code in the
  monorepo
2023-03-17 10:31:20 +01:00
Simon Backx
6058b2db22 Removed ghost comments link test
no issue

Accidentally left when committing.
2023-03-17 10:28:47 +01:00
Simon Backx
298e3da745 Fixed comment CTA button link
refs https://github.com/TryGhost/Team/issues/2672

- Use #ghost-comments instead of #ghost-comments-root
- Fixed snapshots
2023-03-17 10:27:23 +01:00
Simon Backx
423337a048 Fixed snapshots 2023-03-17 10:24:21 +01:00
Sanne de Vries
6821750a3a Fixed spacing between post title and metadata in email template
Refs https://github.com/TryGhost/Team/issues/2740
2023-03-17 10:17:56 +01:00
Sanne de Vries
717ed114f4 Fixed center aligned post title in emails
Refs https://github.com/TryGhost/Team/issues/2740
2023-03-17 10:07:17 +01:00
Daniel Lockyer
3f3cf76c37 Updated react-scripts to v5
refs https://github.com/TryGhost/Toolbox/issues/400

- this fixes various build issues when it's moved into the Ghost
  monorepo
2023-03-17 09:52:12 +01:00
Chris Raible
0640b9c4aa
Modified outbound link tagger to use ?ref=domain instead of ?ref=siteTitle (#16431)
refs TryGhost/Team#2755

- Outbound link tagger will now append ?ref=example.com or ?ref=example.ghost.io instead of ?ref=siteTitle
2023-03-17 14:18:26 +05:30
Simon Backx
25f4974846 Added comment CTA in newsletters
fixes https://github.com/TryGhost/Team/issues/2672

- Moves the feature from behind the flag
- Also hides the comment CTA for email only posts

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2023-03-17 09:38:55 +01:00
Simon Backx
86446e4c86 Added option to remove post title from newsletters
fixes https://github.com/TryGhost/Team/issues/2673

Adds a new option to hide the post title section from newsletters.

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2023-03-17 09:38:55 +01:00
renovate[bot]
fb69af86e2
Update dependency i18next to v22.4.12 2023-03-17 07:22:44 +00:00
Chris Raible
8d4028bbb7
🐛 Fixed editor crashing with unknown cards in mobiledoc (#16430)
refs TryGhost/Team#2702

- adds a default handler for unknown cards: 
- logs a warning message to the console 
- removes the card from the mobiledoc
2023-03-16 16:06:56 -07:00
Naz
74a1ab4525
Fixed root zip media/files copying during import
refs https://github.com/TryGhost/Toolbox/issues/523

- During import process of content files the files from the root directory were also copied over. This is causing chaos in the root of content folder with files that only needed for data import. For example, the csv files needed for Revue import were also copied over by "file importer" even though those do not belong to any content.
- The approach of filtering on a "handler" level was taken over filtering in the import manager due to how our globing patterns work. See a previous commit with reverted previous fix for more context.
2023-03-16 22:48:57 +01:00
Naz
c487b12518 Reverted zip's root file copying fix
refs https://github.com/TryGhost/Toolbox/issues/523

- The reverted fix did not take into account the "original path" of the
files would be truncated. This path has to be full relative to the root
of the zip to later be used during importer url substitution logic.
- This reverts commit 831a76505c.
2023-03-16 21:52:24 +01:00
Daniel Lockyer
dda1d7cf26 Removed emojis from i18n strings
refs https://github.com/TryGhost/Ghost/issues/15502

- these aren't going to change across languages so we can exclude them
  from the strings to simplify things
2023-03-16 20:52:39 +01:00
Kevin Ansfield
6760bc1bb0
Added darkMode passthrough to lexical editor
closes https://github.com/TryGhost/Team/issues/2753

- dark mode styles are being added to our Lexical-based Koenig editor, this lets us test them inside of Admin
2023-03-16 18:55:44 +00:00
Sanne de Vries
d04b2e04d6 Updated copy from "Comments" to "Comment"
Refs https://github.com/TryGhost/Team/issues/2714
2023-03-16 18:19:45 +01:00
Daniel Lockyer
dc0f021b99 Refactored i18n plaintext email translations to split on newline
refs https://github.com/TryGhost/Ghost/issues/15502

- this makes the translations files a lot nicer because they only
  contain one line per key
2023-03-16 17:25:22 +01:00
Rishabh Garg
ef538428c9
Fixed broken empty state in mentions admin url (#16419)
fixes https://github.com/TryGhost/Team/issues/2734

With WebMentions flag on, navigating to `/ghost/#/mentions` on Admin when there are no mentions gives a 400 error page instead of the intended empty state.
2023-03-16 21:19:56 +05:30
Steve Larson
7f223b56dd
fixed member newsletter test (#16425)
no ref
-fixed flaky test that seemed to have sync issues with fixture data and
db
2023-03-16 10:43:17 -05:00
renovate[bot]
a6f6b11ddf Update dependency vite to v4.2.0 2023-03-16 16:41:24 +01:00
renovate[bot]
f8730267ed Update dependency vitest to v0.29.3 2023-03-16 16:34:27 +01:00
Daniel Lockyer
327fef0ad8 Migrated Portal from CRA to Vite
refs https://github.com/TryGhost/Ghost/issues/15502

- this commit migrates Portal from CRA to Vite, as it brings the
  package more inline with the direction we're going in terms of tooling
  for builds
- the bulk of the changes here are just config related to get things
  working with Vite, and then cleaning up all the CRA boilerplate
2023-03-16 16:25:55 +01:00
Sanne de Vries
cdcb3dcd6f
Updated email template to include comment link in header and footer (#16423)
Refs https://github.com/TryGhost/Team/issues/2740

---------

Co-authored-by: Steve Larson <9larsons@gmail.com>
2023-03-16 16:10:53 +01:00
Daniel Lockyer
330e86944c Added example translation for emails within Ghost
refs https://github.com/TryGhost/Ghost/issues/15502

- this adds the i18n translation wrapper to the titles, plaintext
  versions and one HTML version of the member emails
2023-03-16 16:09:55 +01:00
Daniel Lockyer
9f5d4b4efe
Removed .only from Portal tests
- I'm not sure what this was doing here, nor why it hasn't caused
  problems for us
2023-03-16 16:00:19 +01:00
Elena Baidakova
60b3731199 Separated admin and portal tests to different projects
refs TryGhost/Team#2667
- Portal tests are much more stable when running in the separate DB from admin tests.
2023-03-16 18:35:09 +04:00
renovate[bot]
0ae2a79a77
Update dependency ember-template-lint to v5.7.1 2023-03-16 13:53:36 +00:00
Daniel Lockyer
21ea426794 Added i18n service to Ghost core
refs https://github.com/TryGhost/Ghost/issues/15502

- this adds the scaffolding for enabling i18n translations within Ghost
  core
- also adds `yarn translate:ghost` as an option to the `i18n` package
- the locale is currently hardcoded to `en` so we don't utilize the
  translations until we're ready
2023-03-16 14:50:50 +01:00
Daniel Lockyer
0273ba2066
Disabled i18next debug mode in development
- I didn't realise how annoying this would be so this commit disables it
2023-03-16 14:06:38 +01:00
Sodbileg Gansukh
2d7e5753d7 Fixed border color of the post analytics list in dark mode
closes https://github.com/TryGhost/Team/issues/2620
2023-03-16 19:55:14 +08:00
Sodbileg Gansukh
66b749ba90 Removed tabbed look from post analytics page with only one metric
refs https://github.com/TryGhost/Team/issues/2620
2023-03-16 19:51:04 +08:00
Daniel Lockyer
0479b1a848
Converted Portal utils to ESM syntax
- Portal is completely configured for ESM so we can utilize that here
  too and save on some tsserver warnings
2023-03-16 12:10:16 +01:00
Daniel Lockyer
e280925a8b
Switched Portal components to use explicit path imports
- `compilerOptions.baseUrl` is nice but it means we end up with two
  different styles of import paths for project files - relative and from
  `src/`
- to fix this, we're going to standardize on relative imports and remove
  the ability to import relative to the top-level project folder
- this removes the jsconfig line and fixes all existing imports
2023-03-16 12:10:03 +01:00
Sam Lord
d04b43aeee Added post-based attributions for members in data-generator
no issue
2023-03-16 10:17:14 +00:00
renovate[bot]
1c9327ce33 Update dependency webpack to v5.76.2 2023-03-16 01:03:03 +00:00
renovate[bot]
4bb673ba8a
Update Test & linting packages 2023-03-15 21:52:02 +00:00
Simon Backx
450e01d1c0 Added placeholder basic subscription details to email template
refs https://github.com/TryGhost/Team/issues/2736

The renewal date is still missing, and style and desin is only a placeholder.
2023-03-15 17:12:56 +01:00
Rishabh Garg
d98ffcff28 Updated last mentions report timestamp to use number
Co-authored-by: Simon Backx <simon@ghost.org>
2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
266c70a8fd Added mentions-email-report service
This wires up the @tryghost/mentions-email-report service
2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
7300130986 Added templates for mention report email 2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
3cf3f633aa Refactored staff-service
This moves the shared data between all templates into a method so that
it's calculated in a single place, as well as exposing separate render
methods for HTML and Text. We've also added some new custom helpers
for use in the handlebars templates
2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
04efb6c177 Exposed MentionsAPI from mentions service
This is necessary so that we can use it as the IMentionReportGenerator
dependency for the mentions-email-report packages
2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
018e2654c5 Added getAll method to BookshelfMentionRepository
This is necessary to support the getMentionReport method in MentionsAPI
2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
0262083bb0 Added getMentionReport method to MentionsAPI
This will be used by the mentions-report-email package to generate the
data used for the report emails
2023-03-15 21:22:13 +05:30
Fabien "egg" O'Carroll
c56b819748 Added @tryghost/mentions-email-report package
This package contains the business logic for the sending of mention
report emails, it could eventually be included in the webmentions
package I think, but has been kept separate for now in favour of
smaller packages.
2023-03-15 21:22:13 +05:30
Simon Backx
b8b0d1538e Added very basic subscription details in preview labs
refs https://github.com/TryGhost/Team/issues/2738
2023-03-15 15:07:26 +01:00
Kevin Ansfield
e2eba623dc
Added complex object URL transform support for lexical card datasets
refs https://github.com/TryGhost/Team/issues/2722

- bumped `@tryghost/url-utils` with additional lexical card dataset support
- see 2154b26dd2
2023-03-15 14:00:23 +00:00
Daniel Lockyer
7409f9524a
Added link to GitHub commit if prerelease version
refs https://ghost.slack.com/archives/C025584CA/p1678886661494989?thread_ts=1678886465.260379&cid=C025584CA

- if we're running a prerelease, our usual format is `<major>.<minor>.<patch>-pre.<commit hash>.<build>`
- if you wanna see what commit it was built on, you have to copy and
  paste the hash into a GitHub URL
- this provides an easier route to the commit by detecting if the
  version is our special format and links direct to GitHub if so
2023-03-15 14:47:45 +01:00
Simon Backx
a5ac2bd470 Added showSubscriptionDetails toggle in admin
refs https://github.com/TryGhost/Team/issues/2737
2023-03-15 14:44:37 +01:00
Simon Backx
80043f2699 Fixed snapshot tests in batch sending 2023-03-15 14:11:05 +01:00
Simon Backx
6e5ddc6a9a Fixed email preview snapshots 2023-03-15 14:03:24 +01:00
Sanne de Vries
c4bbaf7c7b Updated spacing in emails without post title
Refs https://github.com/TryGhost/Team/issues/2699
2023-03-15 13:33:10 +01:00
Sanne de Vries
e0c3573079 Updated email template snapshot resulting in test failure
No ref
2023-03-15 12:45:54 +01:00
Sanne de Vries
4284292736 Updated email spacing for when post title is hidden
Refs https://github.com/TryGhost/Team/issues/2699
2023-03-15 12:27:03 +01:00
Sanne de Vries
f9cb4bcaaf Updated comments link UI in email preview
Refs https://github.com/TryGhost/Team/issues/2714
2023-03-15 12:10:10 +01:00
Simon Backx
da2e56916e
Added show_subscription_details column to newsletter table (#16403)
fixes https://github.com/TryGhost/Team/issues/2708

Adds `show_subscription_details` column to newsletter table. Disabled by
default.
2023-03-15 11:53:45 +01:00
Fabien 'egg' O'Carroll
bdaddd1a64
Added setting to store last mention report email date (#16399)
Because there is no guarantee about a daily job running exactly once a
day, we need to store the last time that the email was sent, so that we
can refrain from sending one if it's been less than a day since the
last.

A setting has been used for this as we don't currently have a pattern
for it, we might want to consider moving this to some kind of cache
based solution in future. This has been added as a core setting so that
we don't expose it via the API.

The setting is stored as a number to allow us to store value as unix timestamp.

---------

Co-authored-by: Rishabh <zrishabhgarg@gmail.com>
2023-03-15 15:34:41 +05:30
Sodbileg Gansukh
64e5fbe5b7 Adjusted Portal popup width for better readibility
refs https://github.com/TryGhost/Team/issues/2621
2023-03-15 17:45:01 +08:00
Sanne de Vries
9667ec2eea Updated spacing between header and feature image in email preview
Refs https://github.com/TryGhost/Team/issues/2699
2023-03-15 10:34:51 +01:00
Simon Backx
4cc7d7d6d1 Added show/hide comment CTA to preview labs view
refs https://github.com/TryGhost/Team/issues/2714

Uses the comments settings and the showCommentCta setting from the newsletter.
2023-03-15 10:16:57 +01:00
Daniel Lockyer
42d9c3ea4d
Reorganised React imports
- we use ES6 `import` for all other imports so this standardizes the
  React package to also use import vs require
- merged with other imports from the react package if present
2023-03-15 10:15:04 +01:00
Sanne de Vries
03b8715276 Added support for center-aligning comments link in email preview
Refs https://github.com/TryGhost/Team/issues/2714

- When center-aligning the post title, the meta data and comments link are also centered
2023-03-15 10:12:20 +01:00
Sanne de Vries
c538e39d33 Updated comments link UI in email preview
Refs https://github.com/TryGhost/Team/issues/2714
2023-03-15 10:02:43 +01:00
Simon Backx
b27c7bc707 Fixed batch sending snapshots dates
no issue

The snapshots contained the current date, so they broke every day. This commit fixes the issue by setting a fixed date.
2023-03-15 09:45:36 +01:00
Sodbileg Gansukh
7c9e77bc81 Updated recent posts links to analytics
Refs https://github.com/TryGhost/Team/issues/2612

- the recent posts were used to link to the editor, now they're linked to their analytics page
- now that we have an analytics screen for each post it makes sense to link to that screen where possible
2023-03-15 15:21:26 +08:00
Kevin Ansfield
6a3a4632ad
Updated post links in member event feeds to point to post analytics screen (#16384)
refs https://github.com/TryGhost/Team/issues/2612

- member event feeds previously had links to posts that opened the
front-end post URL in a new tab
- now that we have an analytics screen for each post it makes sense to
link to that screen where possible because it allows drill-down into
site performance
2023-03-15 15:12:16 +08:00
renovate[bot]
a7207eb0dd Update dependency sqlite3 to v5.1.6 2023-03-15 07:51:08 +01:00
Naz
b627516088
Removed mediaInliner labs flag
refs https://github.com/TryGhost/Toolbox/issues/524

- The 'mediaInliner' beta flag is not used for anything anymore, so there's no need to keep it around. The only surface of the feature is the `POST /db/media/inline` endpoint that will be used through internal tooling mostly and won't be accessible through the Admin UI.
2023-03-14 22:13:04 +01:00
Naz
f442398239 Reverted media inlining button in settings>labs
refs https://github.com/TryGhost/Toolbox/issues/524

- We no longer need the UI of any kind for the media inliner feature as
the inliner endpoint will be used mostly for internal purposes through
automated tooling
- This reverts commit 901485c47b.
2023-03-14 21:57:35 +01:00
Naz
8025663616
Moved POST /db/media/inline endpoint outside labs
refs https://github.com/TryGhost/Toolbox/issues/524

- The endpoints is for internal (non-documented) usage at the moment and is fine without the labs flag.
- This should allows us to test the inlining on production sites sooner
2023-03-14 18:32:52 +01:00
Simon Backx
66c20710ba Added placeholder comment CTA button to emails
fixes https://github.com/TryGhost/Team/issues/2725

- Added to emails if labs flag enabled, comments enabled and comment CTA button enabled
- Links to comment section
- Design and styling not added yet
2023-03-14 17:11:24 +01:00
Simon Backx
56cbb15e37 Wired up showCommentCTA in admin
fixes https://github.com/TryGhost/Team/issues/2726

This makes sure the toggle actually saves to the database, and that the toggle is only shown when comments is enabled.
2023-03-14 16:35:23 +01:00
Simon Backx
bb019a0ab5 Added E2E test for sending email without post title
fixes https://github.com/TryGhost/Team/issues/2724

This change also includes new snapshots for email sending (similar for email previews, but this time for the real emails to make sure we catch changes).
2023-03-14 16:05:18 +01:00
Sanne de Vries
3cdd13ba3a Updated spacing of email newsletter modal sidebar
Refs https://github.com/TryGhost/Team/issues/2699
2023-03-14 15:37:22 +01:00
Simon Backx
350b291c34
Added show_comment_cta column to newsletter table (#16401)
fixes https://github.com/TryGhost/Team/issues/2707

Adds the new column for storing whether we need to show a comment CTA in
emails. Enabled by default.
2023-03-14 15:03:02 +01:00
Sanne de Vries
3a95b558e0 Fixed post title not being hidden in email preview
Refs https://github.com/TryGhost/Team/issues/2705
2023-03-14 13:37:52 +01:00
Sam Lord
72ba6ec4af Added member feedback to data generator
refs: https://github.com/TryGhost/Toolbox/issues/454
2023-03-14 10:32:34 +00:00
Simon Backx
1e435fb328
Implemented showPostTitleSection (#16404)
fixes https://github.com/TryGhost/Team/issues/2705

- Added showPostTitleSection to newsletter model in admin
- Wired up UI to admin model so it saves to the database
- Implemented showPostTitleSection in newsletter preview and added some
minor temporary css styling
- Implemented showPostTitleSection in newsletter template in backend,
and added some extra CSS styling to fix spacing
2023-03-14 11:29:43 +01:00
Aileen Nowak
475d8f9dd6 Fixed not providing a boolean value or slack-notifications service
no issue

The logic was incorrect and provided a URL instead of the expected `boolean` value for `isEnabled`
2023-03-14 12:00:20 +02:00
Simon Backx
69d07c892c
Fixed getLazyRelation returning new model for optional relations (#16411)
no issue

When using `getLazyRelation` on an optional relation that is not set, it
will return a newly created model instead of a model from the database.
- Adds a new require option to `getLazyRelation`, that throws an error
if the relation is not set (off by default to match existing use cases)
- This caused a bug (not visible because we always pass a newsletter id)
in email previews, where when the newsletter id was not explicitly set,
it would use `newsletter = (await post.getLazyRelation('newsletter')) ??
(await this.models.Newsletter.getDefaultNewsletter());`, which always
returned the first one, and could return a newly initiated newsletter
with all properties set to undefined.
- Some page snapshots are altered by this, because the usage of
`getLazyRelation` on a post no longer sets the email relation to some
new model.
2023-03-14 10:58:58 +01:00
Sagar Gupta
1fd20151bd 🐛 Fixed upper price limit in Membership Tiers
closes https://github.com/TryGhost/Team/issues/2287
- Stripe allows a max. amount of 999,999.99, cf. Stripe docs https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount
- The publisher now sees an error if they choose a price that is higher than the upper limit
2023-03-14 10:52:17 +01:00
Simon Backx
ff5e7202c6
Added show_post_title_section column to newsletters table (#16397)
fixes https://github.com/TryGhost/Team/issues/2706

Only includes the migration. The setting is not used at the moment, but
will be enabled by default.
2023-03-14 09:48:13 +01:00
renovate[bot]
3c22203c71
Update @tryghost (#16406)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@tryghost/html-to-mobiledoc](https://togithub.com/TryGhost/SDK/tree/master#readme)
([source](https://togithub.com/TryGhost/SDK)) | [`2.0.6` ->
`2.0.7`](https://renovatebot.com/diffs/npm/@tryghost%2fhtml-to-mobiledoc/2.0.6/2.0.7)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fhtml-to-mobiledoc/2.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fhtml-to-mobiledoc/2.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fhtml-to-mobiledoc/2.0.7/compatibility-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fhtml-to-mobiledoc/2.0.7/confidence-slim/2.0.6)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-card-factory](https://togithub.com/TryGhost/Koenig/tree/master#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`4.0.4` ->
`4.0.5`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-card-factory/4.0.4/4.0.5)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-card-factory/4.0.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-card-factory/4.0.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-card-factory/4.0.5/compatibility-slim/4.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-card-factory/4.0.5/confidence-slim/4.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-clean-basic-html](https://togithub.com/TryGhost/Koenig/tree/master#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`3.0.6` ->
`3.0.7`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-clean-basic-html/3.0.6/3.0.7)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-clean-basic-html/3.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-clean-basic-html/3.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-clean-basic-html/3.0.7/compatibility-slim/3.0.6)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-clean-basic-html/3.0.7/confidence-slim/3.0.6)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-default-cards](https://togithub.com/TryGhost/Koenig/tree/master#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`6.0.4` ->
`6.0.5`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-default-cards/6.0.4/6.0.5)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-cards/6.0.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-cards/6.0.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-cards/6.0.5/compatibility-slim/6.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-cards/6.0.5/confidence-slim/6.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-default-nodes](https://togithub.com/TryGhost/Koenig/tree/main#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`0.0.15` ->
`0.0.16`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-default-nodes/0.0.15/0.0.16)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-nodes/0.0.16/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-nodes/0.0.16/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-nodes/0.0.16/compatibility-slim/0.0.15)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-default-nodes/0.0.16/confidence-slim/0.0.15)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-lexical-html-renderer](https://togithub.com/TryGhost/Koenig/tree/main#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`0.1.11` ->
`0.1.12`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-lexical-html-renderer/0.1.11/0.1.12)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-lexical-html-renderer/0.1.12/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-lexical-html-renderer/0.1.12/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-lexical-html-renderer/0.1.12/compatibility-slim/0.1.11)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-lexical-html-renderer/0.1.12/confidence-slim/0.1.11)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-mobiledoc-html-renderer](https://togithub.com/TryGhost/Koenig/tree/master#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`6.0.4` ->
`6.0.5`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-mobiledoc-html-renderer/6.0.4/6.0.5)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-mobiledoc-html-renderer/6.0.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-mobiledoc-html-renderer/6.0.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-mobiledoc-html-renderer/6.0.5/compatibility-slim/6.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-mobiledoc-html-renderer/6.0.5/confidence-slim/6.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tryghost/kg-parser-plugins](https://togithub.com/TryGhost/Koenig/tree/master#readme)
([source](https://togithub.com/TryGhost/Koenig)) | [`3.0.6` ->
`3.0.7`](https://renovatebot.com/diffs/npm/@tryghost%2fkg-parser-plugins/3.0.6/3.0.7)
|
[![age](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-parser-plugins/3.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-parser-plugins/3.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-parser-plugins/3.0.7/compatibility-slim/3.0.6)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tryghost%2fkg-parser-plugins/3.0.7/confidence-slim/3.0.6)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>TryGhost/SDK</summary>

###
[`v2.0.7`](ca389b95dd...924c77a60e)

[Compare
Source](ca389b95dd...924c77a60e)

</details>

<details>
<summary>TryGhost/Koenig</summary>

###
[`v4.0.5`](https://togithub.com/TryGhost/Koenig/compare/@tryghost/kg-card-factory@4.0.4...@tryghost/kg-card-factory@4.0.5)

[Compare
Source](https://togithub.com/TryGhost/Koenig/compare/@tryghost/kg-card-factory@4.0.4...@tryghost/kg-card-factory@4.0.5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/TryGhost/Ghost).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNjAuMCIsInVwZGF0ZWRJblZlciI6IjM0LjE2MC4wIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 06:47:38 +00:00
renovate[bot]
221d1e616c Update dependency sqlite3 to v5.1.5 [SECURITY] 2023-03-14 07:09:09 +01:00
renovate[bot]
0780cc2dd1
Update dependency metascraper to v5.34.0 2023-03-13 21:36:01 +00:00
Aileen Booker
eeb7546abb
Added handling for initial and skipped Milestones (#16405)
refs
https://www.notion.so/ghost/Marketing-Milestone-email-campaigns-1d2c9dee3cfa4029863edb16092ad5c4?pvs=4

- When milestones will be activated we would send out emails to users
that are way above the achieved milestone, as we didn't record
milestones before
- The plan is to implement a 0 milestone and don't send an email for
achieving those and also add all achieved milestones in the first run
until a first milestone is stored in the DB, then increment from there.
- This change takes care of two cases:
1. Milestones gets enabled and runs initially. We don't want to send
emails unless there's already at least one milestone achieved. For that
we add a 0 milestone helper and add a `initial` reason to the meta
object for the milestone event, so we can choose not to ping Slack and
also disable email sending for all milestones achieved in this initial
run.
2. All achieved milestones will be stored in the DB, even when that
means we skip some. This introduces the `skipped` reason which also
doesn't send emails for the skipped milestones, but will do for
correctly achieved milestones (always the highest one).
- Added handling for slack notifications to not attempt sending when
reason is `skipped` or `initial`
2023-03-13 19:01:11 +02:00
Sanne de Vries
4c946f5145 Added comments links to email preview in email settings
Refs https://github.com/TryGhost/Team/issues/2714
2023-03-13 17:57:19 +01:00
renovate[bot]
f6ed086735 Update sentry-javascript monorepo to v7.42.0 2023-03-13 14:57:18 +01:00
Sanne de Vries
d06f4c5329 Updated email newsletter settings copy
Refs https://github.com/TryGhost/Team/issues/2699
2023-03-13 14:39:39 +01:00
renovate[bot]
b1706decf8 Update dependency html-validate to v7.13.3 2023-03-13 12:49:57 +01:00
Fabien 'egg' O'Carroll
4525c7293c
Removed email notifications for new mentions
These are no longer desired and will be replaced with a digest style
email.
2023-03-13 18:33:57 +07:00
Fabien "egg" O'Carroll
531e4ab1a9 Removed service.js files from unit test coverage
The service.js files are rarely unit tested because they are
essentially glue code which acts as a singleton and doesn't use
dependency injection, this lil cocktail makes it difficult to stub
dependencies, as well as to call the init method more than once in a
test suite. This change should give us improved unit test coverage
2023-03-13 17:26:03 +07:00
Sodbileg Gansukh
905c2ed090 Adjusted hover text for scheduled email-only posts
refs https://github.com/TryGhost/Team/issues/2533

- changes the text from "to be published and sent" to "to be sent"
- this applies to scheduled email-only posts only
2023-03-13 17:54:34 +08:00
Sanne de Vries
f31c69d7d5 Added UI for new settings in email newsletter settings
Refs https://github.com/TryGhost/Team/issues/2699

- Added 'Making it rain' feature flag
- Added toggles for newsletter title section, comment links, and latest posts
2023-03-13 09:56:35 +01:00
renovate[bot]
2223db5379
Update Test & linting packages 2023-03-13 02:36:20 +00:00
renovate[bot]
d622631087
Update dependency webpack to v5.76.1 2023-03-13 00:08:13 +00:00
Aileen Nowak
465e88510a Improved FirstPromoter integration to run on all subdomains
closes https://www.notion.so/ghost/Update-FirstPromoter-implementation-to-allow-subdomains-d108aee94aaa417eb552db7e825f1e44?pvs=4

- Allow the FirstPromoter script to run on all subdomains of the root site domain by removing any subdomain from the used domain and prefixing the root with a `.`.
2023-03-12 10:59:16 +00:00
Steve Larson
8d76832b07 added e2e tests to cover page events
no refs
-added e2e tests for sending mentions on various page events
2023-03-10 15:25:10 -06:00
Simon Backx
80cec29144
Added Stripe Mocker to make testing easier (#16396)
no issue

The Stripe Mocker mocks the Stripe API in memory, to make it much easier
to test subscription flows. Currently it is more a POC to see if it
works well. It probably needs a bit more work to support more scenarios.
- Added new tests for the subscription stats endpoint for 3D secure +
free trial flows using the new Stripe Mocker
- Updated members admin api tests to use Stripe Mocker (+ added new test
for deleting members with Stripe cancellation)
- Some tests called mockStripe at the beginning, but that method did
nothing apart from disabling network (which is the default now), then
they mocked Stripe inside the tests file... so I've removed those
because those conflict with the new mocker that is enabled when calling
mockStripe. We'll need to port those over later.
2023-03-10 18:43:35 +01:00
Ghost CI
c5b116e2b0 v5.38.0 2023-03-10 16:00:46 +00:00
Simon Backx
db717f446f 🐛 Fixed free trials not visible in paid subscriptions graph
fixes https://github.com/TryGhost/Team/issues/2607

When a free trial converts to a paid subscription, and increases the MRR, it just creates a 'updated' paid subscription event.

To fix this, we need to count updated events that didn't change plan but do have a positive MRR. As an extension we could also check if the MRR change matches the expected MRR for the corresponsing Stripe plan, but that requires a more complex condition check (because for yearly subscriptions we need to convert to monthly), I don't think that is required here.
2023-03-10 16:16:17 +01:00
Simon Backx
400e1b4ab6 🐛 Fixed 3D secure payment not counted as paid subscription in graph
fixes https://github.com/TryGhost/Team/issues/2644

A 3D secure payment first has a status of incomplete, then active.

With the current logic, this creates 2 MemberPaidSubscriptionEvents:

- `created` with mrr_delta of 0
- `active` with mrr_delta of 5

We need to also count 'active' events. And to complement that, also 'inactive' events to make sure we balance out in rare cases.
2023-03-10 16:16:17 +01:00
Rishabh Garg
c71582877c
Added page attribution to member email alerts (#16381)
refs https://github.com/TryGhost/Team/issues/2489

- adds attribution title and url for new free members and paid subscriptions to email alert

---------

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2023-03-10 20:14:53 +05:30
Daniel Lockyer
89493893d1 Removed all unused variables from test files
- this cleans up all imports or variables that aren't currently being used
- this really helps keep the tests clean by only allowing what is needed
- I've left `should` as an exemption for now because we need to clean up
  how it is used
2023-03-10 14:29:55 +01:00
Daniel Lockyer
42333a3349 Removed custom assertions
- these are no longer used in favor of snapshots in tests
2023-03-10 14:29:55 +01:00
Daniel Lockyer
08f84475e7 Removed sleep lib from test utils
- this is generally an anti-pattern in tests and leads to flaky
  behaviour when tests are ran on different machines/loads
- this is currently unused so it is an easy removal
2023-03-10 14:29:55 +01:00
Elena Baidakova
6f9f83bee8 Revert "Removed explicit timeout for offer creation helper"
This reverts commit ac427e4253.
2023-03-10 13:44:45 +04:00
Elena Baidakova
ac427e4253 Removed explicit timeout for offer creation helper
refs TryGhost/Team#2667
- Removed timeout to make it the same as a global one
2023-03-10 13:24:38 +04:00