Commit Graph

2123 Commits

Author SHA1 Message Date
Chris Raible
fc7e150cc2
Fixed importer breaking any posts written in the new editor (#17230)
refs @TryGhost/Product#3551

- PostsImporter would convert the HTML from the import file into
Mobiledoc, even if the post was written in Lexical
- As a result, the imported posts would have both mobiledoc & lexical
fields populated, which prevents the post from being updated in the
Lexical editor
- Added a check to see if the post was written in Lexical, and if so,
skip the HTML > Mobiledoc conversion
2023-07-06 18:37:19 -07:00
Kevin Ansfield
5d8ea79788
Implemented pages.hide_title_and_feature_image property in API (#17211)
closes https://github.com/TryGhost/Product/issues/3557

- bumped `@tryghost/admin-api-schema` to allow passthrough of the new property in API requests
- updated output mapper to ensure property always returns a boolean rather than `null` in the case where `posts_meta` doesn't exist for a page
- updated `PostsService.copyPost()` to include the new property when copying
- updated `checkResponse` test util and snapshots to expect `hide_title_and_feature_image` property in page API responses
- fixed pages e2e test so it doesn't inadvertently modify the match object breaking later tests
2023-07-05 14:01:24 +00:00
Kevin Ansfield
2a340bcab9
Added migration and schema change for posts_meta.hide_title_and_feature_image (#17187)
closes https://github.com/TryGhost/Team/issues/3550

We want to allow an option to hide the title and feature image on a
per-page basis, to do that we need somewhere to store the setting value.
The existing `posts_meta` table is the simplest candidate, especially as
this is a single setting and we don't have a desire to introduce many
such settings.

- added migration that adds the `hide_title_and_feature_image` column to
the `posts_meta` table with a `boolean` data type and a default value of
`false` (matches behaviour of all existing pages)
- updated schema file for initial database creation
- removed property from API output via serializers to keep migration PR
minimal
2023-07-05 14:48:25 +01:00
Naz
4372a7e1a8 Added feature flag for flatUrls
refs https://github.com/TryGhost/Arch/issues/24

- Enables generating Post and Page URLs in a flat `{slug}-{id}` format
2023-07-05 17:41:28 +08:00
Daniel Lockyer
289e459283 Added tests for migrations
refs https://github.com/TryGhost/DevOps/issues/39

- up until now, we've had a CI job which does a really basic test for
  migrations, but it barely functions and misses bugs all the time
- this commit removes that and switches to an actual test suite for our
  migrations, so we can ensure they function as expected
- also removes the env var hack I came up with for those migrations
  tests
- this should lead to safer migrations and faster tests
2023-07-05 11:00:06 +02:00
Ghost CI
d9480f9569 Merged v5.53.4 into main 2023-07-04 14:25:45 +00:00
Ghost CI
9305dca60e v5.53.4 2023-07-04 14:25:42 +00:00
Ronald Langeveld
579a9243b5 Bumped packages (#17196)
refs https://github.com/TryGhost/Team/issues/3544

- Bumps required packages to fix an issue on posts that still contains base64 images.

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

Updated `@tryghost/helpers` dependency to fix some helper issues. This
improved the accuracy and security of the `{{reading_time}}` and
`{{encode}}` helpers in Ghost themes.
2023-07-04 16:06:29 +02:00
Ronald Langeveld
539550b481
Bumped packages (#17196)
refs https://github.com/TryGhost/Team/issues/3544

- Bumps required packages to fix an issue on posts that still contains base64 images.

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

Updated `@tryghost/helpers` dependency to fix some helper issues. This
improved the accuracy and security of the `{{reading_time}}` and
`{{encode}}` helpers in Ghost themes.
2023-07-04 11:14:45 +00:00
Simon Backx
1b33634495
🐛 Fixed sending newsletters with counter-reset CSS styles in custom HTML (#17194)
fixes https://github.com/TryGhost/Team/issues/2937

Bumps juice to 9.1.0:
- Support for 'auto' width and height attributes
- Fixed a bug with counter-reset styles
- Dependencies updates
2023-07-04 10:18:16 +02:00
Naz
e22d8e8680 Extracted model event interceptor to separate package
refs https://github.com/TryGhost/Ghost/pull/17065

- This is a follow up cleanup work after introducing even mapper when working on collections refresh mechanism.
- This module manages interception of the Model events and maps/dispatches Domain events that could later be used in different libraries.
2023-07-03 18:47:27 +08:00
Kevin Ansfield
292663f447
Simplified rendered structure of nested lists in beta editor (#17178)
refs https://github.com/TryGhost/Team/issues/1919
refs https://github.com/TryGhost/Koenig/pull/796

Adjusts rendered output of nested lists to make styling easier (and more
typical) for theme developers.

Before:
```html
<ul>
  <li>one</li>
  <li>
    <ul>
      <li>one.one</li>
    </ul>
  </li>
</ul>
```

After:
```html
<ul>
  <li>one
    <ul>
      <li>one.one</li>
    </ul>
  </li>
</ul>
```
2023-07-03 10:44:31 +01:00
Sanne de Vries
4a6a61b29b
Added feature flag for page improvements (#17176)
No ref
2023-07-03 09:24:57 +02:00
Ghost CI
8b164b8dbf v5.53.3 2023-06-30 15:02:52 +00:00
Simon Backx
8b610d46b1
Cleaned up batch email utils (#17165)
no issue
2023-06-29 15:29:16 +02:00
Simon Backx
c90424542e
🐛 Fixed signup card in post plaintext and email preheader (#17163)
fixes https://github.com/TryGhost/Team/issues/3542

The signup card text was included in the post plaintext/excerpt and
email preheader
2023-06-29 14:45:30 +02:00
Simon Backx
e6dbc0bc4c
🐛 Fixed repeating text in plaintext version of emails (#17162)
fixes https://github.com/TryGhost/Team/issues/3541

The email preheader, which is only present in the html version of an
email, is also included in the plaintext version of all emails. This
results in all text being duplicated twice in plaintext emails.
2023-06-29 12:47:17 +02:00
Simon Backx
c41694f5e6
Added E2E Koenig Lexical card tests for paragraphs and signup card (#17159)
refs https://ghost.slack.com/archives/C04TMVA1D7A/p1687987311455289
2023-06-29 11:10:56 +02:00
Ghost CI
a85d455d1b Merged v5.53.2 into main 2023-06-29 08:53:43 +00:00
Ghost CI
1e9844e781 v5.53.2 2023-06-29 08:53:41 +00:00
Ronald Langeveld
04970b4995 🐛 Fixed email breaking when signup card is added
ref https://ghost.slack.com/archives/C04TMVA1D7A/p1687987311455289
2023-06-29 10:34:39 +02:00
Ronald Langeveld
08e1bcd50c Bumped Koenig packages
no issue
2023-06-29 10:11:20 +02:00
Fabien "egg" O'Carroll
d4027a4797 Added BookshelfCollectionsRepository
This implements the CollectionRepository interface and can be swapped out with
the existing repository to persist collections to the database.
2023-06-29 01:40:05 +01:00
Fabien "egg" O'Carroll
724c95cd92 Added bookshelf model for collections
We setup the relations and NQL expansions/replacements here rather than in the
repository, we want to keep all the bookshelf code together in one place.
2023-06-29 01:40:05 +01:00
Fabien "egg" O'Carroll
cf83d169db Added use of a slug generator to offload calculation of slugs
When we end up wiring this to the database, this generator will also ensure
uniqueness by appending/incrementing a number on the end of the slug. Long term
it would be good to offload this to a shared slug service, this could also
ensure that slugs are unique globally or between multiple tables, if desired
2023-06-29 01:40:05 +01:00
Fabien "egg" O'Carroll
9771e1f5c1 Renamed collections service wrapper to service.js
This follows our existing patterns and protects us from th eslint max line rule
when wiring up dependencies. The rule is designed to keep logic out of glue
code, and this file won't have logic, just lots of deps.
2023-06-29 01:40:05 +01:00
Michael Barrett
636c916715
Fixed leaking pivot fields (#17142)
fixes https://github.com/TryGhost/Team/issues/2657

The `omitPivot` option does not have an affect on a models
`_previousAttributes`. When we serialise a model and want to retrieve
the previous attributes we need to ensure we manually remove the pivot
fields

See
7704fbc5e8/lib/base/model.js (L512)
2023-06-28 13:16:50 +01:00
Daniel Lockyer
12deff4a16 Fixed performance issue when checking theme name
refs 1374e3f70c

- see referenced commit for the explanation
- this bumps GScan to bring in that fix
2023-06-27 17:04:34 +02:00
Naz
9767e1f591 Fixed PostEditedEvent data mapping
refs https://github.com/TryGhost/Team/issues/3169

- The "current" part of the payload should always have the "id" included to make the data structure easier to use for the event consumer
2023-06-27 12:52:10 +07:00
Naz
5dd6159ac6 Added handling for 'post.edited' Ghost model event
refs https://github.com/TryGhost/Team/issues/3169

- Adds optomized collection update handling for when post.edited model event is emitted.
2023-06-27 12:52:10 +07:00
Naz
623599af1e Moved DomainEvents to be injected to Collections
refs https://github.com/TryGhost/Team/issues/3169

- With the new architecture all possible dependencies should be  injected rather than required directly - this applies to the DomainEvents module as well.
2023-06-27 12:52:10 +07:00
Naz
1fb8fb9bd5 Reduced the amount of events Collections listens on
refs https://github.com/TryGhost/Team/issues/3169

- When a not yet mapped event is produced by Ghost model the posts belonging to a collection are recalculated in a brute-force way. This causes a lot of strain on the database and times out some of the tests. Right now we only care about a handful of events, so limited the ones we listen to and will be uncommenting the rest when we have an optimal mapping/handling for them.
2023-06-27 12:52:10 +07:00
Naz
f74588f9c2 Fixed date filtering in collections
refs https://github.com/TryGhost/Team/issues/3169

- To be able to apply NQL filtering on Collection Posts the dates should be serialized to be ISO Date Strings instead of raw Dates. Otherwise, NQL filtering fails to compare Date with a Date String.
2023-06-27 12:52:10 +07:00
Naz
58a18d37ea Introduced PostEvent classes to make event handling less generic
refs https://github.com/TryGhost/Team/issues/3169

- When handling a single generic event the code becomes riddled with if statements to detect correct "data" that is being passed with the event. Switching to have a domain event per model event helps solving this problem and makes code more readable.
2023-06-27 12:52:10 +07:00
Naz
e7a0462877 Added model event to domain event bridge
refs https://github.com/TryGhost/Team/issues/3169

- To make the coupling to Ghost's model events as loose as possible added a bridge that maps model events to domain events. These domain events it what the collections module can subscribe to to make necessary updates.
2023-06-27 12:52:10 +07:00
Naz
2eb7f7dd25 Updated collections event initialization
refs https://github.com/TryGhost/Team/issues/3169

- Ghost model events should not be crossing emitted to outside libraries. The wrapper code is a "glue code" that can still listen to model events but transforms them to specific format that is useful for the collections module
- This hooks up the Ghost model events and transforms them into a "CollectionEvent" format.
2023-06-27 12:52:10 +07:00
Daniel Lockyer
1bce363bd3
Updated linting and migration comment to improve practices
refs https://github.com/TryGhost/Toolbox/issues/602

- the new regex allows for the filename to contain seconds, which would have
  helped prevent a bug we had with migrations being in the wrong order
- mentioned filename ordering in the migration review comment to bring
  that to the forefront of the mind
2023-06-26 15:29:37 +02:00
Kuba
9601285c3d
Added bulkEmail.batchSize option to configure batch size
refs https://github.com/TryGhost/Ghost/issues/15725

This pull request adds a new configuration option for the Mailgun email
provider that allows the user to set the maximum number of recipients
per email batch via a new config option `bulkEmail.batchSize`
2023-06-26 12:57:44 +02:00
Ghost CI
f716e31122 v5.53.1 2023-06-23 17:50:26 +00:00
Daniel Lockyer
6b89522c76
🐛 Fixed ordering of Collections migrations
fixes https://github.com/TryGhost/Ghost/issues/17125

- both collections migrations have the same timestamp so they're ordered
  based upon their slug name, and the one that creates
  `collections_posts` is ordered before the one that created
  `collections`
- as a result, the migration fails because the table does not exist
- this commit pushes the `collections_posts` migration after the other
  one by bumping the timestamp
2023-06-23 19:36:02 +02:00
Ghost CI
4c72f45676 v5.53.0 2023-06-23 15:12:57 +00:00
Ghost CI
fb8689f10b 🎨 Updated Casper to v5.5.1 2023-06-23 15:12:56 +00:00
Ronald Langeveld
5247d28a80
Added beta of the new Signup Card (#17124)
no issue

Keep an eye on Ghost's changelog (https://ghost.org/changelog/) for the
full feature announcement.


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

This pull request removes the `signupCard` feature flag and enables the
signup card for all users in the Lexical editor. This is part of the
Lexical editor beta release, which is a new editor for Ghost that
provides a better writing experience and more features for content
creators.
2023-06-23 16:59:46 +02:00
Fabien "egg" O'Carroll
bd6e476c57 Added tables to persist Collections
refs https://github.com/TryGhost/Team/issues/3427
2023-06-23 16:11:55 +02:00
Simon Backx
24df9628db
Corrected signup card css for responsive images (#17122)
no issue

The padding for the background image was wrong on smaller devices
2023-06-23 15:36:26 +02:00
Simon Backx
da72f8998e
Updated @tryghost/kg-lexical-html-renderer and @tryghost/kg-default-nodes (#17121)
no issue
2023-06-23 14:35:07 +02:00
Simon Backx
78405a9cb8
Corrected image CORS (#17119)
refs
018f97e679
2023-06-23 14:33:00 +02:00
Sag
9085ae1266
Reduced boilerplate required when building a new Lexical card (#17118)
refs https://github.com/TryGhost/Team/issues/3365

- bumped koenig-lexical, kg-default-nodes and kg-lexical-html-renderer
to a new minor
2023-06-23 13:48:11 +02:00
Simon Backx
c7f5ea4560
Added CSS changes for signup card picture/img elements (#17117)
refs https://github.com/TryGhost/Team/issues/3523

Instead of background images, we now use picture elements (with img
tags).
2023-06-23 13:42:14 +02:00
Michael Barrett
6f5baca849
Add endpoint to record mail events (#16990)
refs https://github.com/TryGhost/Team/issues/3319
2023-06-23 12:22:01 +01:00
Simon Backx
018f97e679
Added Access-Control-Allow-Origin: * to image assets (#17115)
refs https://ghost.slack.com/archives/C025584CA/p1687506966658799
refs https://ghost.slack.com/archives/C04TMVA1D7A/p1687426009256949

This change is required because we otherwise hit CORS issues when admin
tries to load an image and calculate the average color (to determine the
text color).
2023-06-23 11:10:48 +02:00
Daniel Lockyer
55b7bef9ad Fixed disabling search via config
fixes https://github.com/TryGhost/Ghost/issues/16120

- if you set `sodoSearch.url` to `false` in config, it'll currently
  crash because we're not correctly handling the types correctly
- the first part of the fix is ensuring the value is a string so we can
  call `.includes` on it
- second, the `false` value is passed into the output as a string, so we
  should detect if we passed a false value and early return with an
  empty string if so
- credits to https://github.com/ltoinel for the fix inspiration
2023-06-23 10:51:43 +02:00
Sanne de Vries
710d2143c2
Updated signup card background image positioning (#17113)
No ref
2023-06-23 10:27:20 +02:00
Princi Vershwal
5a1dcbc9a5
Removed Bluebird Promise.map from user.js file (#17112)
refs https://github.com/TryGhost/Ghost/issues/14882

Co-authored-by: Princi Vershwal <princi.vershwal@Princis-MacBook-Pro.local>
2023-06-23 10:13:02 +02:00
Daniel Lockyer
08e2fbeacb Removed Bluebird from tests
refs https://github.com/TryGhost/Ghost/issues/14882

- we're moving away from using Bluebird in favor of native Promises, so
  this commit removes nearly all instances from tests
2023-06-23 10:03:03 +02:00
Princi Vershwal
2798d43663
Removed Bluebird Promise.each from db.utils (#17032)
refs https://github.com/TryGhost/Ghost/issues/14882

Co-authored-by: Princi Vershwal <princi.vershwal@Princis-MacBook-Pro.local>
Co-authored-by: Daniel Lockyer <hi@daniellockyer.com>
2023-06-23 09:46:41 +02:00
Princi Vershwal
cc95c39dbb
Removed Bluebird Promise.map from settings.js file (#17086)
refs https://github.com/TryGhost/Ghost/issues/14882

Co-authored-by: Princi Vershwal <princi.vershwal@Princis-MacBook-Pro.local>
2023-06-23 09:16:16 +02:00
Princi Vershwal
d9c739efb7
Removed Bluebird Promise.map from apps index.js file (#17073)
refs https://github.com/TryGhost/Ghost/issues/14882

Co-authored-by: Princi Vershwal <princi.vershwal@Princis-MacBook-Pro.local>
2023-06-23 09:13:29 +02:00
Princi Vershwal
308a3b286a
Replaced Bluebird Promise.mapSeries with sequence util (#17008)
refs https://github.com/TryGhost/Ghost/issues/14882

Co-authored-by: Princi Vershwal <princi.vershwal@Princis-MacBook-Pro.local>
2023-06-23 09:04:37 +02:00
renovate[bot]
c0d32080b7 Update dependency semver to v7.5.3 2023-06-23 07:08:38 +02:00
Simon Backx
9035a87e50 Updated @tryghost/kg-default-nodes and @tryghost/kg-lexical-html-renderer
no issue
2023-06-22 17:07:44 +02:00
Daniel Lockyer
2c067aa1bb Fixed hack to kill Ghost after boot in tests
- in the migration tests we need to boot Ghost and then kill it
  afterwards
- because there was no easy way to do this, the workflow waits for 20s
  and then kills the last process ID
- aside from being a terrible idea, it means we're also just arbitrarily
  waiting for 20s, which burns time when it takes shorter to boot Ghost
- this commit implements an environment variable that will kill the
  server once it has run the whole boot process, and then fixes the
  workflow to use that
2023-06-22 15:32:48 +02:00
Simon Backx
8d6fb51908 Added Playwright tests to comments-ui
refs https://github.com/TryGhost/Team/issues/3504

Not complete yet, but contains the basic structure and a few tests that work and should run in CI.
2023-06-22 15:06:13 +02:00
Simon Backx
ab86e0d901 Removed Sentry and unused data options from comments-ui
refs https://github.com/TryGhost/Team/issues/3504

- Sentry was never setup and we don't use it
- Styles have been moved to inline JS styles (no separate css file generated)
- App version was never used
- Improved current script tag detection
2023-06-22 15:06:13 +02:00
Sanne de Vries
64518d2ad4
Updated signup card frontend styles for contained split layout (#17078)
Refs https://github.com/TryGhost/Team/issues/3459
2023-06-22 12:41:45 +02:00
Ghost CI
caadf7235c Merged v5.52.3 into main 2023-06-21 15:37:59 +00:00
Ghost CI
b7cad4e8fb v5.52.3 2023-06-21 15:37:57 +00:00
Ronald Langeveld
543f3750a7
🐛 Fixed draft pages not saving on forced revisions (#17081)
closes https://github.com/TryGhost/Team/issues/3493

- Fixed pages not saving on force revision. As a side effect, it broke
admin navigation as it doesn't manage to create a new revision upon going back to the pages list.
- This was simply caused by a missing option in the API endpoint config.

---

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

This change enables the `pages` endpoint to handle page revisions by
adding the `save_revision` permission. This is part of a pull request
that adds page versioning and restoring functionality to Ghost.
2023-06-21 13:32:18 +02:00
Hannah Wolfe
6161f94910
Updated to use assert/strict everywhere (#17047)
refs: https://github.com/TryGhost/Toolbox/issues/595

We're rolling out new rules around the node assert library, the first of which is enforcing the use of assert/strict. This means we don't need to use the strict version of methods, as the standard version will work that way by default.

This caught some gotchas in our existing usage of assert where the lack of strict mode had unexpected results:
- Url matching needs to be done on `url.href` see aa58b354a4
- Null and undefined are not the same thing,  there were a few cases of this being confused
- Particularly questionable changes in [PostExporter tests](c1a468744b) tracked [here](https://github.com/TryGhost/Team/issues/3505).
- A typo see eaac9c293a

Moving forward, using assert strict should help us to catch unexpected behaviour, particularly around nulls and undefineds during implementation.
2023-06-21 09:56:59 +01:00
Simon Backx
0c28cebfd4 Updated rate limiting snapshot for updated copy
refs https://ghost.slack.com/archives/C02G9E68C/p1687303342271029
2023-06-21 10:36:53 +02:00
Ghost CI
5dadaea515 Merged v5.52.2 into main 2023-06-21 03:32:58 +00:00
Ghost CI
18a0e173fb v5.52.2 2023-06-21 03:32:56 +00:00
Chris Raible
2568c5898a
🐛 Fixed post scheduling for sites with transferred ownership (#17075)
refs TryGhost/Ghost#3494

- By default, the post scheduler runs as user_id = 1, which is the
original owner of the site
- If ownership has been transferred to a different user, it's possible
that there is no user with id = 1
- In this case, the scheduler would fail to publish a post, because
updating the post using user_id = 1 failed a foreign key constraint in
the post_revisions table
- This commit fixes the issue by checking if the contextUser exists, and
if not, replacing it with the current owner of the site
2023-06-20 19:51:13 -07:00
renovate[bot]
b1bcc2cb2d Update dependency luxon to v3 2023-06-20 15:22:54 +02:00
renovate[bot]
6623572c5b Update dependency socket.io to v4.6.2 2023-06-20 14:40:10 +02:00
Simon Backx
fd2ef61b3c 🎨 Improved copy on too many login attempts
fixes https://github.com/TryGhost/Team/issues/2391
2023-06-20 14:32:04 +02:00
renovate[bot]
d919a9024f Update dependency @extractus/oembed-extractor to v3.1.10 2023-06-20 12:18:09 +00:00
renovate[bot]
e81070762d Update dependency gscan to v4.37.0 2023-06-20 14:04:43 +02:00
Ghost CI
69fddf8abe v5.52.1 2023-06-20 06:54:10 +00:00
Fabien 'egg' O'Carroll
41cbc40353
Moved collections initialisation behind labs flag (#17057)
We ran into an issue where the large `published:true` query was
affecting the boot time of large sites which had knock-on effects with
availability.
2023-06-19 16:40:15 +02:00
Kevin Ansfield
3070e505f5
🐛 Fixed beta editor causing left-aligned images in some themes
closes https://github.com/TryGhost/Team/issues/3499

- bumps `@tryghost/kg-default-nodes` and `@tryghost/kg-lexical-html-renderer` to fix missing `kg-image` class on the `<img>` element of rendered image cards
2023-06-19 14:20:40 +01:00
Kevin Ansfield
5d9dd893b3
🐛 Fixed beta editor HTML cards auto-closing tags when rendering
closes https://github.com/TryGhost/Team/issues/3462
refs a49f296c08

- bumps `@tryghost/kg-default-nodes` and `@tryghost/kg-lexical-html-renderer` with support for "raw" html values in rendered card output
2023-06-19 14:39:51 +02:00
Ghost CI
5b2ba79cef v5.52.0 2023-06-16 15:02:41 +00:00
Ghost CI
6a3af5b406 🎨 Updated Casper to v5.4.11 2023-06-16 15:02:41 +00:00
Sag
dfd69f9cf7 Bumped Lexical dependencies
no issue
2023-06-16 15:23:20 +02:00
Fabien 'egg' O'Carroll
a1dae99245
Enabled errors for our error rules in eslint (#17041)
Yo dawg, I heard you like errors?

This fixes the last issues we had with incorrect error usage and updates
eslint to longer allow them through!
2023-06-16 14:50:06 +02:00
Daniel Lockyer
99aeb73ecc Optimized DB reset during tests
refs https://github.com/TryGhost/Toolbox/issues/592

- it turns out that `TRUNCATE` in CI takes ~300ms for all tables, but
  `DELETE FROM` takes ~30ms
- whilst truncating is generally known to be faster, I believe it's only
  faster on large tables
- this saves 90% of the time it takes to reset the DB in MySQL
2023-06-16 13:15:17 +02:00
Naz
09264261b7 Added ability to fetch posts by collection
closes https://github.com/TryGhost/Team/issues/3423

- For convenience we need a way to fetch posts that belong to a certain collection. This change adds support for `collection` query parameter: `/?collection=` which can be either an id or slug of the collections we are trying to fetch.
- When posts are fetched by collection we ignore any filters passed along in query parameters as collection is a "filter" by it's very nature.
2023-06-16 17:28:12 +07:00
renovate[bot]
c1d90df181 Update dependency @playwright/test to v1.35.1 2023-06-16 10:03:32 +02:00
renovate[bot]
d6664b70fd Update dependency semver to v7.5.2 2023-06-16 09:56:57 +02:00
Naz
1d214361ad
Refactored posts browsing to posts service
refs https://github.com/TryGhost/Team/issues/3423

- This refactor allow for smaller and cleaner change that's coming up when dealing with `?collection=` query parameter
2023-06-16 14:52:55 +07:00
Ronald Langeveld
cfbc97b033
🐛 Fixed revisions relation not linked to Posts api (#17037)
no issue

This was a bit of an oversight from our feature built at the retreat. We
didn't take revisions into account for pages at all, but luckily it made
revisions without issues regardless.
It just wasn't accessible and users weren't able to restore via ADMIN
because the API didn't serve them at all.

This wires up the revisions relation to be served by the API so we can
retrieve it in Admin.
2023-06-16 09:49:12 +02:00
Daniel Lockyer
02eadc32d3
Switched to only enabling retries in CI
refs https://ghost.slack.com/archives/C02G9E68C/p1686841987067309?thread_ts=1686761234.035659&cid=C02G9E68C

- enabling retries has helped reduce the number of flaky tests we see,
  but it means it's causing issues with local development and snapshots
- this moves the retry config to the CI specific commands so we don't
  have retries enabled locally
- also deduped test:base and test:single
2023-06-16 09:47:03 +02:00
Fabien "egg" O'Carroll
0d7f98f4d1 Supported adding/removing post to collection via Posts API
We've got some fairly simple diffing logic here to update the collections which
a post is in, the bulk of the changes here are to support the return of a DTO
rather than Bookshelf Model. This also helps improve the architecture because
we are step closer to removing infrastructure concerns (HTTP Response Headers)
from the business logic layer.

For now there is a crappy EventString which can be passed back to the
controller which can then handle any HTTP related concerns, although long term
these should be actual events like PostPublished or PostUpdated.
2023-06-16 09:28:19 +02:00
Fabien "egg" O'Carroll
f3f9e5a2f3 Moved serialisation of formats into the serialiser-layer
This prepares us to return a DTO rather than BookshelfModel to the serialiser
layer. When passing a BookshelfModel, the serialisation layer uses the model to
read from when building computed properties. By stripping values out in the
toJSON method it means that the DTO will be missing them and the computed
properties won't be able to be calculated. Instead we return ALL values to the
serialisation layer, and then strip out the ones that weren't requested in the
"clean" step.

This also inadvertently fixes the issue with `reading_time` requiring the
`html` field to be requested, we can now request just `reading_time`, as well
as have it included by default.
2023-06-16 09:17:47 +02:00
Fabien "egg" O'Carroll
41716a06ae Fixed mutation of shared state for matcher
This can cause bugs due to the matcher constraints changing in each test
2023-06-16 09:17:47 +02:00
Fabien "egg" O'Carroll
53eea00d21 Fixed check for god_mode param
Rather than require the string 'true', we allow any value to be passed, this
works with any parsing of params into booleans.
2023-06-16 09:17:47 +02:00
Fabien "egg" O'Carroll
229875d67d Bumbed @tryghost/admin-api-schema to latest version
This includes the changes necessary to allow the `collection` property to be
passed on posts
2023-06-16 09:17:47 +02:00
Daniel Lockyer
4b6cfa8f28
Added yarn archive to produce a build tarball
fixes https://github.com/TryGhost/Ghost/issues/16835

- this reimplements a command to product a tarball with Ghost after we
  took over `yarn build` for package-specific build steps
2023-06-15 15:42:39 +02:00
Naz
6335033466
Added full post data when returning collection's posts
refs https://github.com/TryGhost/Team/issues/3423

- When querying for posts that belong to a collection we should be returning full post information just like we do for Posts API.
2023-06-15 18:35:58 +07:00