closes https://github.com/TryGhost/Team/issues/3425
- Index collection is needed to support one of the usecases we have in the near future where we'd hold all posts that would be displayed on the "index" page.
closes https://github.com/TryGhost/Team/issues/3431
- We don't currently have a clear usecase to use the new pattern of updating posts as nested resource (of a collection). To simplify the API we are sticking with the approach of controlling where the post belongs to only through the Posts Admin API.
refs https://github.com/TryGhost/Team/issues/3274
Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
Co-authored-by: Ronald Langeveld <hi@ronaldlangeveld.com>
Co-authored-by: Jono Mingard <reason.koan@gmail.com>
Co-authored-by: Sag <guptazy@gmail.com>
refs 551532f874
refs https://github.com/TryGhost/Team/issues/3324
- After analyzing data dumps, the data revealed that we have extra data from a stray batch. The filtering logic manually filters out the data to the recipients that belong to a "current batch".
- Hunting down the root cause of the data mixup proved to be too expensive of an investigation, so this is a "good enough patch" to deal with the problem.
- Most likely cause is the concurrent batch sending, but reducing the concurrency would be too expensive of a performance price to pay instead of filtering the data rarely.
no issue
The Storybook did set the color, but that shouldn't be set because normally the components are always rendered in an iframe, with a default black, unchangeable color.
refs TryGhost/Team#3405
- BackgroundSave option sets post status as Draft. Don't need such
behaviour as a post already can have a different status when a user
leaves the page.
no issue
- if the converted mobiledoc started with a card and contained any text content we would hit a "can not read .length of undefined" error which could prevent snippets from being migrated when opening the beta editor and result in copy/paste from old editor to new not working
- bumped `@tryghost/kg-converters` to a fixed version
no issue
- if the converted mobiledoc started with a card and contained any text content we would hit a "can not read .length of undefined" error which could prevent snippets from being migrated when opening the beta editor and result in copy/paste from old editor to new not working
- bumped `@tryghost/kg-converters` to a fixed version
refs. https://github.com/TryGhost/Team/issues/3399
The feature image overlay that helps with the contrast for the feature image buttons were covering the alt text input field and button.
refs. https://github.com/TryGhost/Team/issues/3399
The feature image overlay that helps with the contrast for the feature image buttons were covering the alt text input field and button.
refs https://github.com/TryGhost/Toolbox/issues/592
- we don't need to receive the refreshed model back afterwards so we can
save an SQL select per insert by disabling auto-refresh
- this saves about 18000 DB queries for the MySQL tests, which should
help reduce test time due to the overhead
no issue
- The class should not rely on being passed a specific dependency, but rather needs to communicate with types what structure and method it needs to function correctly.
- Replaced the specific dependency to `sentry` with a generic definition of what is expected.
no issue
- In order to listen to `DomainEvents` for `MilestoneCreatedEvents` we need to add a `DomainEvents` listener and handler to the Segment analytics service.
- For better readability and to be more consistent with how code is currently written in Ghost, I refactored the service index file and split the two types of event listener into separate classes which is much cleaner and easier to test.
Regression tests are not written to ensure coverage of code, in fact they are
barely written at all anymore, instead we write unit and e2e tests. Because of
this the coverage is constantly dropping as the codebase grows. This causes
significant pain and suffering for developers and slows down development.
closes https://github.com/TryGhost/Ghost/issues/16825
- iOS is very restrictive on input focus which doesn't allow without any
user interaction
- The only workaround was creating a temporary input, focus it, and
remove it after moving the focus to the actual searfch input
- It also moves the inputRef to the parent component, so that it can be
used in the click event handler, because the focus event only works when
it's inside a function that's triggered after user interaction
fixes https://github.com/TryGhost/Team/issues/3392
- the "price" here can contain a slash, which is encoded/escaped by default by
i18next
- this disables the escaping to fix the text that is shown to the user
no issue
Early in the editor beta snippets were being saved with double-encoded JSON meaning we were dealing with strings rather than objects after Ember's deserialization. That's since been fixed so we're dealing with objects everywhere but old data can still cause issues.
- added a step to the `syncMobiledocSnippets()` method that checks if `snippet.lexical` is a string and performs the necessary fixes to the double-encoded values
- updated the snippet filter in the old editor to exclude double-encoded snippets as that could still load before the new editor has been accessed and the sync+fix has run
closes https://github.com/TryGhost/Team/issues/3387
- adds syncing of mobiledoc->lexical formats for snippets when opening the beta editor
- this is a one-way sync
- new snippets or changes made to snippets inside the beta will not be available in the old editor
- creating or changing snippets in the old editor will sync to (and potentially overwrite snippets) in the beta editor
- fixed incorrect saving of doubly-escaped JSON when creating snippets in the beta editor
closes https://github.com/TryGhost/Team/issues/3325
Awaited `DomainEvents.allSettled()` to ensure domain event is fully
processed before asserting member was successfully updated
refs https://github.com/TryGhost/Team/issues/3145
Updates pintura integration to be switched on by default for all sites by adding a migration to update the default value for the setting.
no issue
Early in the editor beta snippets were being saved with double-encoded JSON meaning we were dealing with strings rather than objects after Ember's deserialization. That's since been fixed so we're dealing with objects everywhere but old data can still cause issues.
- added a step to the `syncMobiledocSnippets()` method that checks if `snippet.lexical` is a string and performs the necessary fixes to the double-encoded values
- updated the snippet filter in the old editor to exclude double-encoded snippets as that could still load before the new editor has been accessed and the sync+fix has run
closes https://github.com/TryGhost/Team/issues/3387
- adds syncing of mobiledoc->lexical formats for snippets when opening the beta editor
- this is a one-way sync
- new snippets or changes made to snippets inside the beta will not be available in the old editor
- creating or changing snippets in the old editor will sync to (and potentially overwrite snippets) in the beta editor
- fixed incorrect saving of doubly-escaped JSON when creating snippets in the beta editor
no issue
- In Safari, we'll poll longer before animating to the new iframe
- Update the iframe immediately if the last change was a while ago, to improve responsiveness
refs https://github.com/TryGhost/Team/issues/3376
fixes b4a97d084f
- The in-memory stores are not cleaned up when the Ghost instance is "shallow restarted" between test suite runs, causing the initialization of built-in collections to run multiple times. The initialization should ever add the collections once.