refs https://github.com/TryGhost/Product/issues/3770
- Site is not always defined, so the things broke when using the signup action without a defined site, where it wants to read the recommendations_enabled setting
- Fixed this by removing the welcome page and looking for the existing query params instead
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)
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.
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
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
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.
refs https://github.com/TryGhost/Product/issues/3349https://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.
no issue
- Also fixes a backend issue with nullable fields
- Fixes blurring the url input and setting the value to '/'
automatically while we expect absolute urls
- Added autoFocus to inputs
refs https://github.com/TryGhost/Product/issues/3349
---
This pull request improves the end-to-end tests for the code injection
settings in the admin-x-settings app. It fixes some typing and saving
issues with the `CodeMirror` editor.
refs https://github.com/TryGhost/Product/issues/3745
---
This pull request adds a storybook file for the `CurrencyField`
component and changes its value prop to use cents instead of a string.
This improves the component's usability and consistency.
no issue
Previously the beta editor only worked for newly created posts/pages, any older content would open with the original editor. This change enables automatic conversion of old content to the new content format when a post/page is opened in the admin interface allowing new features like signup and advanced header cards to be used on existing content.
- removed `convertToLexical` feature flag
- where necessary switched to using just the `lexicalEditor` feature flag in its place
- moved the "L"/"M" indicators on the posts list to a new `lexicalIndicators` feature flag to make debugging/development easier
- added a redirect to the original editor route so that any route to opening the editor (such as the `/edit` front-end shortcut, or other areas of Admin) will open in the beta editor
- avoids confusing/inconsistent behavior
refs https://github.com/TryGhost/Product/issues/3745
---
Added a user setting for webmention notifications in the admin panel.
This allows users to opt in or out of receiving notifications when they
are mentioned by other sites using webmentions.
refs https://github.com/TryGhost/Product/issues/3746
---
This pull request adds and improves features for the membership settings
app, especially for the tips or donations feature. It introduces a new
`CurrencyField` component and a `currency` module for handling currency
input and display. It also refactors and enhances some existing
components, hooks, and types for better user experience and code
quality. It affects files such as `TierDetailModal.tsx`,
`TipsOrDonations.tsx`, `useForm.ts`, and `currency.ts`.
refs https://github.com/TryGhost/Product/issues/3745
---
This pull request adds and refactors several components and hooks for
the labs and advanced settings in the admin app. It introduces feature
flags for alpha and beta features, and allows the user to upload and
download redirects, routes and content files.
refs https://github.com/TryGhost/Product/issues/3349
---
Improved user experience for editing user details in the admin settings.
Added `dirty` state to track and handle unsaved changes in the
`UserDetailModal` component.
refs https://github.com/TryGhost/Product/issues/3751
---
This pull request adds limit checks and upgrade prompts for various
features in the admin-x-settings app, such as staff, members,
newsletters, custom integrations, and custom themes. It uses a custom
hook called `useLimiter`, which relies on the `@tryghost/limit-service`
package and the host settings configuration data.
refs https://ghost.slack.com/archives/C0568LN2CGJ/p1692804385770949
- Analytics exports was previously retrieved on on page load instead of
on demand.
- This fixes that to ensure it gets fetched when the user hits the
download button.
- Renamed the file saving to `post-analytics.yyyy-mm-dd.csv`
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 2c96e78</samp>
Improved the export posts feature in the membership settings by fetching
the data only on demand and adding a date to the file name. Modified the
`usePostsExports` hook and the `exportPosts` function in
`Analytics.tsx`.
refs https://github.com/TryGhost/Product/issues/3504
- This adds support for translations, but doesn't yet translate every
possible string in the app.
- Only active if beta translations is enabled
fixes https://github.com/TryGhost/Product/issues/3753
The validation for the terms checkbox was being executed when the terms
checkbox was not being rendered. The validation checks needed to be
updated to account for if the checkbox was rendered or not. Basically
the same as this:
45a70a3f4c
refs https://github.com/TryGhost/Product/issues/3349
- When updating certain states, eg the branding colour using or a typing
in a text box, we want it display on the preview almost immediately.
However this comes with a drawback of sending a ton of requests to the
server.
- This fix adds debouncing which essentially adds a small delay of
500ms, to wait for the user to finish typing / selecting colour before
making a request.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 4e623ff</samp>
Improved the performance and user experience of the site description and
accent color settings by debouncing the backend updates. Added a
`debounce` utility function in `debounce.ts`.
refs https://github.com/TryGhost/Product/issues/3349
- Previously it detected members as being disabled altogether, which
wasn't the case.
- This resolves that by passing in a few extra required params to have
Portal loading properly
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at d3cccab</samp>
This pull request enhances the portal preview feature by adding new
parameters to the iframe URL for the portal settings and pricing tiers.
It also cleans up some code in `PortalFrame.tsx` for better readability
and type safety.
refs https://github.com/TryGhost/Product/issues/3729
This pull request improves the Slack integration settings by allowing
users to test the webhook URL and save the settings from a modal. It
also refactors the `SlackModal` component and adds a new API function
`useTestSlack` to handle the test message.
refs https://github.com/TryGhost/Product/issues/3349
- added a download handler for the analytics download button.
- wired up the download api endpoint
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 46054be</samp>
This pull request adds a feature to export post analytics as a csv file
from the membership analytics dashboard. It implements a new query hook,
a download function, and a response handler in the
`apps/admin-x-settings` app, and adds a test case for the feature.
refs https://github.com/TryGhost/Product/issues/3729
---
This pull request enhances the custom integrations feature in the
admin-x-settings app by adding accessibility and UI improvements to the
`Select` and `WebhookModal` components, refactoring the webhook and
integration types in the API module, and adding a new end-to-end test
file to verify the functionality using mocked API responses.
refs https://github.com/TryGhost/Product/issues/3349
- Adds an additional condition to set the 'default' mailgun base url in case it not need change, to prevent it from staying null in the database config, when setting the domain and api key.
- In other cases it will work as usual.
refs https://github.com/TryGhost/Product/issues/3504
- App component now uses React hooks intead of React class component
- App is now written in TypeScript
- All JavaScript is now removed from the Comments-UI project
- Removed `PopupNotification` because these were never displayed
- Removed `action` from AppContext (never used)
- Moved options parsing out of `index.ts` into a separate utility file,
similar to the signup-form
- Improved reliability of some editor tests by always waiting for the
editor to be focused (was not always the case) + added an utility method
for this
refs https://github.com/TryGhost/Product/issues/3729
- Wired up the Pintura Integration to AdminX.
---
<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 4d33355</samp>
This pull request adds the ability to customize the Pintura image editor
with custom JS and CSS files in the advanced settings modal. It
introduces a new `files.ts` file in the `api` folder, which provides a
hook and a helper function for uploading and retrieving files. It also
modifies the `PinturaModal.tsx` component to use these functions and
display the settings.
refs. https://github.com/TryGhost/Product/issues/3349
- added static Preview button to Tips and Donations
- updated modal buttons in Design settigns, so it doesn't close on save
and easier to play around with various settings
refs TryGhost/Product#3743
- Users should be able to hide the free plan from Portal, which removes it as an option on the main portal /signup page
- However, they should still be able to use the /signup/free link to allow members to signup for the free plan. Currently if the free plan is hidden from portal, the /signup/free link renders the main /signup page, with only paid plans available.
- This PR fixes that by allowing the /signup/free link to work even if the free plan is hidden from portal, but only by directly accessing the /signup/free link
refs https://github.com/TryGhost/Product/issues/3504
- When you are logged in as an admin, but not as a member, no buttons
showed (discovered in new e2e tests)
- Added E2E tests for admin actions