Commit Graph

36347 Commits

Author SHA1 Message Date
Simon Backx
f71c074d31
Added one-click-subscribe detection (#17995)
fixes https://github.com/TryGhost/Product/issues/3820

- This adds a new public site endpoint in the members API to check if a
site can offer the one-click-subscribe feature
- This is implemented on the members API as a copy of the `site`
endpoint because the admin API site endpoint is protected by CORS and
mainly because it can be served on a different domain than the
recommended site and this is hard to detect reliably from the frontend
- Added a new calculated setting `allow_self_signup`, which can replace
the setting that is currently used in Portal (best to do this after a
release otherwise we risk creating issues if a patch release happens)
2023-09-06 15:11:14 +00:00
Djordje Vlaisavljevic
712da704f7 Removed backdrop click on modals
refs https://github.com/TryGhost/Product/issues/3828
2023-09-06 13:49:17 +01:00
Simon Backx
448e91d916
Fixed notification and showing of recommendation modal (#17991)
refs https://github.com/TryGhost/Product/issues/3771

- Don't show a notification if the recommendation modal is shown
- Don't show the recommendation modal if there are no recommendations
2023-09-06 12:01:27 +00:00
Ghost CI
0387f75eeb Merged v5.61.3 into main 2023-09-06 10:55:49 +00:00
Ghost CI
1fd32288e0 v5.61.3 2023-09-06 10:55:47 +00:00
Kevin Ansfield
37a13cceb4
🐛 Fixed bookmark card creation and pasted link unfurls (#17990)
no issue

- recently added code to grab apple touch icons or SVGs before falling back to the default metascraper behaviour wrongly assumed that every size would have a `rel` and `href` attribute which is not the case
2023-09-06 11:30:56 +01:00
Kevin Ansfield
309184f5da
🐛 Fixed bookmark card creation and pasted link unfurls (#17990)
no issue

- recently added code to grab apple touch icons or SVGs before falling back to the default metascraper behaviour wrongly assumed that every size would have a `rel` and `href` attribute which is not the case
2023-09-06 10:22:45 +00:00
Ronald Langeveld
95c63e16c9
Wired up announcement bar to Admin X (#17967)
refs https://github.com/TryGhost/Product/issues/3807

- Added announcement bar customisation to Admin X

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 91368ce</samp>

This pull request enhances the `AnnouncementBarModal` component to
enable users to customize the announcement bar on their site. It adds
editing and previewing features, as well as API integration and toast
notifications.
2023-09-06 15:53:33 +07:00
Simon Backx
83399222ea
Fixed recommending site without available metadata (#17989)
fixes https://github.com/TryGhost/Product/issues/3813
2023-09-06 07:21:27 +00:00
Sag
8f272e730b
Updated recommendation modal copy when triggered after signup (#17985)
refs https://github.com/TryGhost/Product/issues/3771
2023-09-05 18:50:34 +00:00
Sag
a08e0ed14e
Added logic to update the recommendations_enabled setting on add/delete (#17975)
closes https://github.com/TryGhost/Product/issues/3799

- the recommendations_enabled setting is updated when a recommendation
is created or deleted. It's enabled as soon as there is at least one
recommendation in the database
- the recommendations_enabled setting exists to avoid fetching the
recommendation count from the database directly in themes. The setting
is cached and doesn't need a read every time from the database
2023-09-05 18:31:48 +00:00
Ghost CI
ca91b847f3 Merged v5.61.2 into main 2023-09-05 17:55:54 +00:00
Ghost CI
50341d164f v5.61.2 2023-09-05 17:55:51 +00:00
Kevin Ansfield
0b37e835af
🐛 Fixed incorrect rendering of links following line breaks in beta editor
closes https://github.com/TryGhost/Product/issues/3827

- links following a line break in the editor were being rendered before the line break when previewing/publishing
- bumps Koenig packages which includes relevant fix in `@tryghost/kg-lexical-html-renderer`
2023-09-05 18:28:39 +01:00
Kevin Ansfield
92d07a97ab
Revert "Added drop of intermediate post saves between current running and latest triggered" (#17978)
reverts TryGhost/Ghost#17912

- unfortunately dropping save tasks when one is already running has side-effects for code that is initiating the save tasks
- e.g. the slug or title update actions call `saveTask.perform()` and if that related save request fails they expect to get a standard request error so they can show a message and perform a model rollback. However with `keepLatest` the save task can be dropped and "fail" immediately with a `TaskCancelation` error which has unintended side-effects:
  1. error handling is no longer tied to the specific request meaning we could have slug-related failures being handled by non-slug-save code which is unexpected
  2. the internal `TaskCancelation` error is handled as if it was general error and we end up showing a useless error in the red error bar that makes it look like something failed when it didn't
  3. we initiate a model rollback when we do not have a failure situation that requires it meaning we can lose changes
2023-09-05 18:28:31 +01:00
Djordje Vlaisavljevic
9e1b11f26e Added Close button to Recommendations modal
refs https://github.com/TryGhost/Product/issues/3824
2023-09-05 16:06:53 +01:00
Djordje Vlaisavljevic
76778a9dd8 Made "Preview" link only visible if recommendations are enabled
refs https://github.com/TryGhost/Product/issues/3816
2023-09-05 15:46:16 +01:00
Kevin Ansfield
d00f437cf2
Revert "Added drop of intermediate post saves between current running and latest triggered" (#17978)
reverts TryGhost/Ghost#17912

- unfortunately dropping save tasks when one is already running has side-effects for code that is initiating the save tasks
- e.g. the slug or title update actions call `saveTask.perform()` and if that related save request fails they expect to get a standard request error so they can show a message and perform a model rollback. However with `keepLatest` the save task can be dropped and "fail" immediately with a `TaskCancelation` error which has unintended side-effects:
  1. error handling is no longer tied to the specific request meaning we could have slug-related failures being handled by non-slug-save code which is unexpected
  2. the internal `TaskCancelation` error is handled as if it was general error and we end up showing a useless error in the red error bar that makes it look like something failed when it didn't
  3. we initiate a model rollback when we do not have a failure situation that requires it meaning we can lose changes
2023-09-05 13:38:59 +00:00
renovate[bot]
d3db3b32d2 Update actions/checkout action to v4 2023-09-05 14:29:11 +02:00
Djordje Vlaisavljevic
8efeb20ae8 Updated heading copy
refs https://github.com/TryGhost/Product/issues/3771
2023-09-05 11:58:58 +01:00
Djordje Vlaisavljevic
ff1b256ff5 Improved design when Recommendation doesn't have a reason
refs https://github.com/TryGhost/Product/issues/3814
2023-09-05 11:58:58 +01:00
Simon Backx
8b1ca62025
Added "Recommended you" section to settings (#17973)
fixes https://github.com/TryGhost/Product/issues/3808 
refs https://github.com/TryGhost/Product/issues/3791
2023-09-05 12:46:27 +02:00
renovate[bot]
0d6e979077 Update dependency express-hbs to v2.4.2 2023-09-05 06:52:42 +00:00
renovate[bot]
d15aed0d0a Update tiptap monorepo to v2.1.8 2023-09-05 06:40:46 +00:00
renovate[bot]
cfdc53e062 Update dependency tracked-built-ins to v3.2.0 2023-09-05 08:26:59 +02:00
Peter Zimon
fcb2636d59
AdminX Announcement Bar (#17950)
refs https://github.com/TryGhost/Product/issues/3807

- Created Announcement Bar components in Admin X.
2023-09-05 09:27:20 +07:00
Djordje Vlaisavljevic
187f369720 Made description clearer and added link to preview recommendations modal
refs https://github.com/TryGhost/Product/issues/3816
2023-09-04 21:54:54 +01:00
Sag
a017596a1d
Added a random order and a limit of 5 to the Recommendations modal (#17958)
refs https://github.com/TryGhost/Product/issues/3815

- recommendations are rendered in a random order, using Fisher-Yates
shuffle
- only 5 recommendations are rendered by default, the other ones are
hidden behind a "Show all" button
- recommendations are fetched all at once from the backend, as we assume
there won't be more than 100-ish recommendations per publication
2023-09-04 19:05:32 +02:00
renovate[bot]
dd4e27a729 Update dependency terser to v5.19.4 2023-09-04 16:04:36 +00:00
renovate[bot]
eac96067bc Update dependency jose to v4.14.6 2023-09-04 16:03:49 +00:00
Djordje Vlaisavljevic
cd4fa044c9
Updated recommendations settings design (#17957)
refs https://github.com/TryGhost/Product/issues/3786, https://github.com/TryGhost/Product/issues/3773

- Moved Recommendations under Memberships section in settings sidebar
- Updated design for recommendations to work better with small favicons
2023-09-04 15:21:37 +00:00
renovate[bot]
8ba5470c5e Update dependency ember-svg-jar to v2.4.5 2023-09-04 16:58:56 +02:00
Daniel Lockyer
f65c31c8b2 Removed unnecessary callback function
- `serveStatic` doesn't even support this parameter, so the function is
  never called
- this clears up a big red line in code editors
2023-09-04 16:50:53 +02:00
Sag
d7504bdbf5
Added recommendation modal trigger on signup (#17925)
refs https://github.com/TryGhost/Product/issues/3771

- if recommendations are enabled, render the recommendation modal on
sign up, in Portal
- for free signups, the recommendations modal is rendered after clicking
on the magic link
- for paid signups, the recommendations modal is rendered after Stripe
Checkout
- the recommendations modal is not rendered on a free to paid upgrade
2023-09-04 14:35:56 +00:00
Daniel Lockyer
d4b717493c Migrated to Actions trigger-metric workflow
refs https://github.com/TryGhost/DevOps/issues/70

- I've moved the code and history into the Actions repo to keep these
  things more maintainable
- this commit updates the reference to the action
2023-09-04 13:24:39 +02:00
Uvindu Rajapakshe
31a9b15a41
Updated Sinhalese translations (#17939)
refs https://github.com/TryGhost/Team/issues/2795
2023-09-04 12:09:32 +02:00
Ghost CI
d7c0b2392b Merged v5.61.1 into main 2023-09-04 08:11:31 +00:00
Ghost CI
be3905b822 v5.61.1 2023-09-04 08:11:30 +00:00
Daniel Lockyer
d4217bd321
🐛 Fixed missing Admin assets in published tarball
refs https://github.com/TryGhost/Ghost/issues/17932

- we were missing `chunk.208.dbf172ad32f72f21a5dc.js` from our published tarball
- turns out this is due to the lines in the `.npmignore` file to remove
  .db files, which also matched this file
- we can make the regex more specific to avoid these cases
2023-09-04 10:09:16 +02:00
Jono M
46df83a397
Fixed AdminX modal routing (#17947)
refs https://github.com/TryGhost/Product/issues/3349
2023-09-04 07:07:48 +00:00
renovate[bot]
e18dc54612 Update dependency @types/node to v20.5.9 2023-09-04 08:26:07 +02:00
renovate[bot]
196945c1e7 Update dependency jose to v4.14.5 2023-09-04 06:09:56 +00:00
renovate[bot]
3f60b9f145 Update dependency @types/node to v20.5.8 2023-09-04 08:08:24 +02:00
Jono M
a97f384cdf
Implemented email customisation labs flag in AdminX (#17881)
refs https://github.com/TryGhost/Product/issues/3745

---

This pull request adds a new feature to the `admin-x-settings` app that
allows users to customize the colors of their email newsletters. It also
simplifies and refactors the routing logic and the components related to
integrations, newsletters, and users. It introduces new dependencies and
components for color manipulation and selection, and updates the
existing components and stories to use them.
2023-09-04 07:00:37 +01:00
Ronald Langeveld
967a17460d
Fixed portal modal infinite looping (#17945)
refs https://github.com/TryGhost/Product/issues/3349
https://ghost.slack.com/archives/C0568LN2CGJ/p1693556448443489

- fixes an issue that's caused an infinite loop in the Portal design modal and stressing the CPU.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at ac33e3e</samp>

Refactors error handling logic for signup options form fields in
`SignupOptions.tsx` using `useCallback` and `useEffect` hooks. This
enhances the code quality and efficiency.
2023-09-04 09:58:28 +07:00
Fabien "egg" O'Carroll
5e3470a3a1 Fixed invalid Offers from throwing when reading
closes https://github.com/TryGhost/Product/issues/3675
refs c98bf80248

As part of our architecture guidelines Repository implementations should protect
against invalid or malformed data in persistence. We do not want read operations
of Entities to throw because of such data. For some fields that bad data can be
fixed or handled in the constructor or static create factory method and replaced
with valid data, others will cause the factory to throw.

This means that Repositories should catch these errors and exclude those
entities from their results. We log the errors in Sentry so that we have
visibility on the state of bad data in DBs
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
84e6026408 Fixed Offer entity types in OfferBookshelfRepository
JSDoc has a problem with using values as types across repositories, rather than
getting `Offer` as the type we end up with `typeof Offer` as the type - which is
incorrect. Instead we use `import` syntax inside of JSDoc which resolves correctly
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
127c61d4c6 Moved OfferRepository to core
As per our architecture guidelines we want to keep bookshelf implementations of
Repositories in Ghost core, so that all the bookshelf code is kept together, and
the packages implementing business logic with entities and services require less
dependencies to test. This separation should also help us inadvertently add
business logic to repository implementations by having a more "physical"
boundary between them.
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
b64be18e74 Export Offer from @tryghost/members-offers
This will allow us to implement the Repository outside of the package, as it
needs access to the Entity factory to create instances.
2023-09-02 16:58:48 +07:00
Fabien "egg" O'Carroll
00072a204f Simplified use of ValueObject in OfferRepository
I don't think we need to instantiate and use the `equals` method here. It adds
an extra dependency to the Repository implementation, but it is slightly more
"correct" as it means that we leak internals by comparing strings exactly?

The ValueObject pattern here was very much a trial and isn't something we're
necessarily sticking with, so I don't see a problem with this string comparison.
2023-09-02 16:58:48 +07:00