1
0
mirror of https://github.com/TryGhost/Ghost.git synced 2024-12-22 18:31:57 +03:00
Commit Graph

18675 Commits

Author SHA1 Message Date
Naz
bbb5b64ec5 Cleaned up member's neswletter test suite
refs https://github.com/TryGhost/Arch/issues/87

- We just introduce member's newsletters serialization, so removed the comments reminding to do so.
2023-09-13 13:18:43 +08:00
Naz
282de7f0b4 Added newsletter payload serializer
refs https://github.com/TryGhost/Arch/issues/87

- The newsletters in members payload have leaked internal properties from Public Members API. The code skipped the output serialization step, which is now in place.
- The newsletter resource returned from the API consistently returns these properties:
id,
name,
description,
sort_order
2023-09-13 13:18:43 +08:00
Naz
a284e8275d Added a test for Public member data endpoint
refs https://github.com/TryGhost/Arch/issues/87

- There was no test whatsoever! Adding a super basic test to have some certainty the output doesn't change after a refactor
2023-09-13 13:18:43 +08:00
Naz
e73b16979f Trimmed down Members Admin API response data
refs https://github.com/TryGhost/Arch/issues/87

- The Members Admin API and members.* webhooks were returning too many fields in the nested `newsletters` objects. There was no "allowlist" serializer for the newsletter object, which meant every time we add a new field to the database we would unintentionally return extra fields without a second thought.
- With this change only following fields will be returned with `members[x].newsletters[x]`:
'id',
'name',
'description',
'status'
2023-09-13 13:18:43 +08:00
Naz
2e84cdca36 Added specific newsletters and attribution tests
refs https://github.com/TryGhost/Arch/issues/87

- Round 2 for the previous commit. Removes use of `anyArray` for all
- Using `anyArray` in snapshot test is an anti-pattern which leads to leaking output fields unintentionally when the API changes.
- Adding these fixes is fundamental work before changing the output of 'member.newsletters' property
2023-09-13 13:18:43 +08:00
Naz
4999523289 Added specific newsletters and attribution tests
refs https://github.com/TryGhost/Arch/issues/87

- Using `anyArray` in snapshot test is an anti-pattern which leads to leaking output fields unintentionally when the API changes.
- Adding these fixes is fundamental work before changing the output of 'member.newsletters' property
2023-09-13 13:18:43 +08:00
Kevin Ansfield
ff0426fd86
🐛 Fixed incorrect order of author/publisher in bookmarks cards created with beta editor ()
no issue

- bumps Koenig packages
- `@tryghost/kg-default-nodes` contains fix for swapped author/publisher in bookmark renderer
- all packages contain bumped Lexical dependencies
2023-09-12 16:29:07 +00:00
Daniel Lockyer
64388072ee Updated i18n translations
- these needed updating after Portal was changed
2023-09-12 14:59:14 +02:00
renovate[bot]
a276335b66 Update dependency @types/common-tags to v1.8.2 2023-09-12 14:36:23 +02:00
Daniel Lockyer
841fb1f5c9 Updated @tryghost/errors 1.2.21 to 1.2.24
- we have this set as a higher resolution anyway, but I think having
  some hardcoded lower versions causes some weird yarn issues
- at the very least, this removes any mention of 1.2.21 from our
  yarn.lock
2023-09-12 12:56:14 +02:00
renovate[bot]
60cd15525f Update dependency @types/cookies to v0.7.8 2023-09-12 12:31:23 +02:00
renovate[bot]
7ffb3206a8 Update dependency uuid to v9.0.1 2023-09-12 12:29:51 +02:00
Simon Backx
d166977ae4
Updated Portal to always honor outboundLinkTagging setting ()
no issue

- Do not set ?ref in recommendations if analytics is disabled
- Do not send url_history if analytics is disabled
- Expose outboundLinkTagging as a public setting
2023-09-12 10:27:04 +00:00
Peter Zimon
25e240357e
AdminX global loading Orb ()
refs. https://github.com/TryGhost/Product/issues/3349

- we showed a "Loading..." text for people on super slow connection
instead of the animated Ghost Orb
2023-09-12 11:56:41 +02:00
Sodbileg Gansukh
1b1d871374 Fixed Koenig action bar icon color in dark mode
fixes https://github.com/TryGhost/Product/issues/3846

- when the lexical editor is turned off, some action bar icons appear as black in dark mode
- this fixes the icon and divider color for the mobiledoc editor
2023-09-12 16:35:59 +08:00
renovate[bot]
e32e0cb7af Update dependency luxon to v3.4.3 2023-09-12 09:02:09 +02:00
Zabriskije
4f1ccfd8e7
Updated Italian translations ()
refs https://github.com/TryGhost/Team/issues/2795
2023-09-12 08:44:59 +02:00
Raka Afp
4905407517
Updated Bahasa Indonesia translations ()
refs https://github.com/TryGhost/Team/issues/2795
2023-09-12 08:44:18 +02:00
Yin Guobing
32f7e13347
Updated Chinese translations ()
refs https://github.com/TryGhost/Team/issues/2795
2023-09-12 08:41:02 +02:00
renovate[bot]
c6cf4fc2f3 Update dependency @actions/core to v1.10.1 2023-09-11 21:34:39 +02:00
renovate[bot]
e006b8f874 Update dependency @types/nodemailer to v6.4.10 2023-09-11 17:31:18 +02:00
renovate[bot]
f35af08e03 Update dependency html-validate to v8.4.0 2023-09-11 17:31:03 +02:00
renovate[bot]
3abee991a2 Update dependency ember-svg-jar to v2.4.6 2023-09-11 17:30:51 +02:00
Simon Backx
f566729ed6
Fixed recommendation order ()
fixes https://github.com/TryGhost/Product/issues/3851

- Order was not applied via the CRUD plugin
- Removed usage of CRUD findAll, and swapped to Bookshelf fetchAll
instead, to decrease dependencies of invisible Bookshelf plugins logic
- Reverted page and limit options possibility via findAll method
2023-09-11 11:04:34 +00:00
Jono M
acae53d9ed
Updated AdminX to be preloaded to improve perceived speed ()
refs https://github.com/TryGhost/Product/issues/3832
2023-09-11 10:55:12 +01:00
renovate[bot]
73aca83fe5 Update dependency mysql2 to v3.6.1 2023-09-11 02:07:34 +00:00
Peter Zimon
7ebbf9d56e
AdminX dark mode ()
refs. https://github.com/TryGhost/Product/issues/3349

- added basic support for dark mode
2023-09-08 20:53:41 +02:00
renovate[bot]
7f6bd5ec31 Update dependency ws to v8.14.1 2023-09-08 18:31:09 +00:00
Ghost CI
88efa1a930 v5.62.0 2023-09-08 15:03:00 +00:00
Kevin Ansfield
b48cc49e5a
🐛 Fixed broken "< Posts" and "Back to editor" links in beta editor (infinite save loop) ()
refs https://github.com/TryGhost/Product/issues/3843

If you used relative URLs in the beta editor, when it came to leaving the editor you would get stuck due to an infinite save loop occurring in the background requiring a refresh to get back to a working state.

- when saving relative URLs the server will convert them to absolute for consistency and to ensure URLs work in other situations such as emails, RSS, 3rd party editors, etc
- although we get different data back from the server we don't overwrite the content in the editor with it as that would cause loss of changes since the save as well as loss of the cursor position
- when leaving the editor we compare content from the last save revision with the current editor content to see if we need to save a new revision but if the server data has been modified with relative->absolute URLs then we'd enter an infinite loop because the content would never match
- relative->absolute URLs should be the only thing to ever be modified in the underlying data when saving so we can work around the issue by replacing each instance of the site's URL before comparing revision data to current data
2023-09-08 14:24:05 +00:00
Michael Barrett
72cc285184
Refactor validating specified newsletters in custom sign-up form ()
refs https://github.com/TryGhost/Product/issues/3837

Moved the logic for validating specified newsletters to controller so
that the request can be failed
2023-09-08 13:55:02 +01:00
Daniel Lockyer
6dc1d08590 Re-enabled general eslint rules in TS config
refs https://github.com/TryGhost/DevOps/issues/50

- when creating a TS config in our `eslint-plugin-ghost` dependency, I
  only extended the recommended config, which left out a lot of
  stylistic things we used to enforce in JS
- this fixes that by bumping the dependency to a version which extends
  those shared configs, and fixes all the code that currently goes
  against those rules
2023-09-08 13:47:42 +02:00
renovate[bot]
68dcb0f012 Update dependency i18next to v23.5.1 2023-09-08 10:47:33 +00:00
Simon Backx
669be72673
Wired up pagination to recommendations ()
fixes https://github.com/TryGhost/Product/issues/3822
fixes https://github.com/TryGhost/Product/issues/3838

This PR became a bit big because it affected multiple parts of Ghost
that needed to be updated to prevent breaking anything.

### Backend
- Added pagination to the recommendations API's
- Updated BookshelfRepository template implementation to handle
pagination
- Allow to pass `page` and `limit` options to Models `findAll`, to allow
fetching a page without also fetching the count/metadata (=> in the
repository pattern we prefer to fetch the count explicitly if we need
pagination metadata)
- Added E2E tests for public recommendations API (content API)
- Extended E2E tests of admin recommendations API

### Portal
- Corrected recommendations always loaded in Portal. Instead they are
now only fetched when the recommendations page is opened.

### Admin-X
- Added `usePagination` hook: internally used in the new
`usePaginatedQuery` hook. This automatically adds working pagination to
a query that can be used to display in a table by passing the
`pagination` and `isLoading` results to the `<Table>`
- Added placeholder `<LoadingIndicator>` component
- Added a loading indicator to `<Table>`. This remembers the previous
height of the table, to avoid layout jumps when going to the next page.
2023-09-08 12:32:06 +02:00
Princi Vershwal
f663774cf9
Added support for multiple newsletters in custom signup form ()
refs https://github.com/TryGhost/Product/issues/3514

---------

Co-authored-by: Michael Barrett <mike182uk@gmail.com>
2023-09-08 11:09:44 +01:00
Fabien "egg" O'Carroll
c9fff97c75 fixup! Added logging to collections event handlers 2023-09-08 14:46:38 +07:00
Fabien "egg" O'Carroll
ff8a3fbf32 fixup! Added logging to collections event handlers 2023-09-08 14:46:38 +07:00
Fabien "egg" O'Carroll
c6f908d31d Added logging to collections event handlers
This will help us with debugging issues we're seeing with large sites
2023-09-08 14:46:38 +07:00
Naz
fc5f139d39 Removed stray console.log
refs 367584f1c2

- I fucked up. ESLint fucked up. Life happened to all of us
2023-09-08 15:28:47 +08:00
Naz
367584f1c2 Optimized PostEditedEvent processing in collections
refs https://github.com/TryGhost/Arch/issues/86

- When PostEditedEvent data contains no visible changes we can skip the matching collections update process alltogether. Each call to `updatePostInMatchingCollections` creates a transaction in addition to fetching all collections. There's no need to process anything when there are no relevant changes in the post edit!
2023-09-08 13:46:44 +08:00
renovate[bot]
9e3e1d8c73 Update dependency newrelic to v11.1.0 2023-09-07 21:33:43 +00:00
Princi Vershwal
83282ca4cd
Added checks for subscription to multiple newsletter through custom sign up form ()
refs https://github.com/TryGhost/Product/issues/3810

---------

Co-authored-by: Michael Barrett <mike@ghost.org>
2023-09-07 18:27:32 +01:00
Jono M
1366296330
Bumped AdminX settings and fixed default JS path ()
no issue
2023-09-07 08:53:51 +00:00
Jono M
9e45afddb8
Updated AdminX to load via ES Modules to enable code splitting ()
refs https://github.com/TryGhost/Product/issues/3349
2023-09-07 06:38:20 +00:00
Naz
07ed1677df Fixed test coverage checks in adapter-cache-redis package
no issue

- The previous configuration did not trigger check failures when the coverage dropped below the threshold.
2023-09-07 13:32:00 +08:00
Naz
cc48ead945 Added option to share redis connections across caches
closes https://github.com/TryGhost/Arch/issues/85

- Added a cache configuration option to signal "reuse of redis connection" for Redis cache adapter. The connection reuse it turned on by default to be shared between caches. They rely on unique "keyPrefix" structure, so there is no collision side-effects when reusing same Redis Store.
- The Redis connection options like "ttl" are shared with the first connection that's crated. So if there's a need to have unique configuration, a separate connection has to be created by passing `"reuseConnection": false` parameter
2023-09-07 13:32:00 +08:00
Kevin Ansfield
8c91662a47
Added conversion to beta editor format when creating content via ?source=html ()
closes https://github.com/TryGhost/Product/issues/3803

Previously when the beta editor was enabled, using `?source=html` to create posts via the API would create posts in the old editor rather than the beta. This change switches conversion over to the new editor format when the beta is enabled so the full flow can be tested.

- added `htmlToLexicalConverter` method to our lexical library
- updated post and page input serializers to add html-to-lexical conversion when the beta editor is enabled
- updated post model to handle the mobiledoc+lexical co-existing state
  - this is a special case that is only valid for `?source=html` because providing both directly via the API is prohibited
  - we need the extra check here because at the input serializer layer we don't have access to the model to check if we're updating a mobiledoc post or a lexical post so the serializer sets both formats on a `?source=html` request when the beta is enabled and lets the model handle choosing the correct one
2023-09-06 21:16:40 +00:00
Simon Backx
62ee0928bb Bumped Portal to v2.35.0 2023-09-06 17:33:42 +02:00
renovate[bot]
a3a71a6728 Update dependency ws to v8.14.0 2023-09-06 15:27:00 +00:00
Simon Backx
f71c074d31
Added one-click-subscribe detection ()
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