refs https://github.com/TryGhost/Product/issues/3657
- When reverting a post to a draft, the meta, `email_only` remained
true.
- This fix switches `email_only` back to false when the `revertToDraftTask` is executed.
refs https://github.com/TryGhost/DevOps/issues/50
- `react-app` comes from `eslint-config-react-app`, which is a CRA package
- we're moving away from that so this commit switches the linting over
to a more recently updated plugin
- once that was removed, we started using a newer version of
`@typescript-eslint/eslint-plugin`, so there were plenty of
updates/exemptions to make
refs https://github.com/TryGhost/Product/issues/3561
- Added a static section to Membership settings with a button to copy
the Tips & donations Stripe link
- Added a `tipsAndDonations` feature flag
closes https://github.com/TryGhost/Arch/issues/45
- This endpoint is here to keep the convention of being able to fetch the resource by it's slug through a `GET /{resource_name}/slug/:slug`. It has identical output as the `GET /collections/:id` endpoint
- The alternative would be having an alias and try fetching by :id and then by slug if the result for id was null, but that would be a completely new pattern we have not used anywhere else yet.
no issue
- logic was incorrect in two places that meant we were showing the incompatibility warning for compatible themes
- `codedErrors` was looking at the Ember Data `errors` object instead of the renamed `gscanErrors` object
closes https://github.com/TryGhost/Product/issues/3604
- The change password button in the user settings wasn't updating correctly.
- the saveNewPasswordTask() wasn't returning anything, causing `
this.get('task.last.value')` to return undefined in the `isSuccess`
method.
- This fix ensures that there is a value attached to the
`task.last.value` so that the condition for a successful save checks
out.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at a6a76eb</samp>
Improved error handling and feedback for changing user passwords in the
settings UI. Modified `saveNewPasswordTask` function in
`ghost/admin/app/controllers/settings/staff/user.js` to catch and
display errors and return user object.
refs https://github.com/TryGhost/Arch/issues/41
- Having a filter input for an automatic collection make it way easier to test things without messing with the database.
refs https://github.com/TryGhost/DevOps/issues/47
- in the event we supply a CDN URL, don't prefix the URL with anything
as this will get auto-prefixed
- if not, add the Ghost Admin root because the assets sit under there
no issue
- bumps `@tryghost/kg-lexical-html-renderer` which includes a change to drastically reduce the number of `jsdom` instantiations made when rendering text content
no issue
- bumps `@tryghost/kg-lexical-html-renderer` which includes a change to drastically reduce the number of `jsdom` instantiations made when rendering text content
refs https://github.com/TryGhost/DevOps/issues/47
- in the event we supply a CDN URL, don't prefix the URL with anything
as this will get auto-prefixed
- if not, add the Ghost Admin root because the assets sit under there
refs https://github.com/TryGhost/Ghost/pull/17327
- Added an additional condition to avoid the new memberLinks function
from returning undefined, which may lead to nothing being returned at
all in the autocomplete.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
Improved `memberLinks` function in `koenig-lexical-editor.js` to support
optional links and fix a bug.
refs https://github.com/TryGhost/Ghost/pull/17327
- Added an additional condition to avoid the new memberLinks function
from returning undefined, which may lead to nothing being returned at
all in the autocomplete.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 59d45a1</samp>
Improved `memberLinks` function in `koenig-lexical-editor.js` to support
optional links and fix a bug.
refs https://ghost.slack.com/archives/C056H5Z4HEK/p1689168376165479
- Added missing paid member links to the autocomplete function within
the Koenig-Lexical editor.
- This bring it in line with the mobiledoc editor.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at f49f6a5</samp>
This change adds a new feature to the editor component that allows users
to insert links related to members and subscriptions. It depends on the
`membersUtils` service and the `koenig-lexical-editor` component.
refs https://github.com/TryGhost/Product/issues/3508
- added a feature flag for Header Cards that's being upgraded.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 10ac1e4</samp>
This pull request adds a new feature flag `headerUpgrade` to the server
and the admin settings, which allows the user to opt-in to a new header
design. The feature flag is only available if the labs toggle is
enabled.
no issue
`show_title_and_feature_image` leads to more intuitive logic in themes and we can use `posts` rather than `posts_meta` as there are no longer row-length issues with MySQL 8.
- removed original add-column migration that was never in a release
- added new add-column migration that puts
`show_title_and_feature_image` column with a default of `true` on the `posts` table
- renamed property and default value everywhere
- bumped `@tryghost/admin-api-schema` to allow the new property through at the API level
refs https://github.com/TryGhost/Product/issues/3349
- adds basic routing in adminX settings based on hash url path
- adds new routing provider that manages hash routing across adminX
- updates sidebar navigation to update route directly
- updates theme/design settings to update route for opening edit modals
no issue
- adjusted conditional to take post type into account
- removed usage of `lexicalEditor` feature flag as the flag only adjusts
default editor rather than access to the editor (existing lexical
posts/pages will always load lexical editor)
closes https://github.com/TryGhost/Team/issues/2463
- it merges the similar history events by adding additional properties
to the events data
- `skip` was added to the current event when the next event is similar to
it, so that the event isn't output on the frontend
- `count` was added to the last item of the similar events and it's used
for outputting the number of repeated similar events
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.
fixes https://github.com/TryGhost/Ghost/issues/17076
When a post is saved `_revisionSaveTask` gets queued to execute 10
minutes from the save. When a post is published via the publish modal
`_revisionSaveTask` does not get dequeued. When `_revisionSaveTask` gets
executed at the 10 minute mark it is assumed that it is ok to save a
revision, which will cause the post to be reverted back to a draft. This
change enforces another check during the task exection to ensure that it
is in fact still ok to save a revision (in case anything has changed in
the 10 minutes since the task queued, i.e the post being published)
fixes https://github.com/TryGhost/Ghost/issues/17076
When a post is saved `_revisionSaveTask` gets queued to execute 10
minutes from the save. When a post is published via the publish modal
`_revisionSaveTask` does not get dequeued. When `_revisionSaveTask` gets
executed at the 10 minute mark it is assumed that it is ok to save a
revision, which will cause the post to be reverted back to a draft. This
change enforces another check during the task exection to ensure that it
is in fact still ok to save a revision (in case anything has changed in
the 10 minutes since the task queued, i.e the post being published)
no issue
Updates the labels of the post history components to reflect the type of
content (post or page).
It modifies the `restore-revision`, `gh-post-settings-menu`, and
`modal-post-history` components.
no issue
- even when the editor beta is turned off, any post created in the beta will still open in the beta editor
- the "beta feedback" text in the bottom right was disabled when the beta flag was disabled which meant it was difficult to tell when you were using the beta editor vs the original editor
no issue
- even when the editor beta is turned off, any post created in the beta will still open in the beta editor
- the "beta feedback" text in the bottom right was disabled when the beta flag was disabled which meant it was difficult to tell when you were using the beta editor vs the original editor
refs https://github.com/TryGhost/Team/issues/3169
- When navigating through collections slugs did not display correctly returning "undefined" in the navigation. It was easier to fix the bug than working around it.
refs https://github.com/TryGhost/Team/issues/3432
The admin assets url are modified by ember build process by adding cache busting, so the original urls can't be used directly in adminX. This change passes the image assets from ember admin, causing the right image urls to be passed to adminX and for loading images.
refs https://github.com/TryGhost/Team/issues/3448
Added the ability to specify a description for a custom theme setting
---------
Co-authored-by: Sodbileg Gansukh <sodbileg.gansukh@gmail.com>
closes https://github.com/TryGhost/Team/issues/3471
- after adding and removing an icon, icon settings passed an undefined
icon to the signup form's all-in-one style. The AIO conditions didn't
take that into account and caused the entire component to crash.
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 9e1aea3</samp>
Fix signup form embed code generation when icon is not set. Add a check
for `this.settings.icon` in `signup-form-embed.js` before replacing
image path.
refs https://github.com/TryGhost/Team/issues/3458
From the discussion in slack, for all published/sent posts:
Published only --> view history & restore
Published & sent --> view history & restore
Email only --> history hidden
And for all unpublished/unsent posts:
All states --> view history & restore.
closes https://github.com/TryGhost/Team/issues/3471
- after adding and removing an icon, icon settings passed an undefined
icon to the signup form's all-in-one style. The AIO conditions didn't
take that into account and caused the entire component to crash.
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 9e1aea3</samp>
Fix signup form embed code generation when icon is not set. Add a check
for `this.settings.icon` in `signup-form-embed.js` before replacing
image path.
fixes https://github.com/TryGhost/Team/issues/3470
- When members are disabled or invite only, the signup form embed should be disabled
- The comments access setting is now also disabled if members are disabled
- The tiers menus are now also disabled if members are disabled
refs TryGhost/Team#3445
- The snippet model always expects an object as it gets serialized when
saving - if we give it a string, it gets doubly serialized. It breaks
snippet replacement and insertion in the new editor.
refs https://github.com/TryGhost/Team/issues/3458
From the discussion in slack, for all published/sent posts:
Published only --> view history & restore
Published & sent --> view history & restore
Email only --> history hidden
And for all unpublished/unsent posts:
All states --> view history & restore.
refs https://github.com/TryGhost/Team/issues/3456
- adds a boolean config whether members signup is enabled so that we can
hide the signup card option from the editor if it's not enabled.
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 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.
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
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