0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2024-12-30 22:34:01 -05:00
Commit graph

114 commits

Author SHA1 Message Date
Sag
e67e2411f2
Added option to disable free signups (#21862)
ref https://linear.app/ghost/issue/ENG-1235

- problem: today, when a publisher removes the "free" tier from the
Portal settings, it doesn't disable free signups entirely. It removes
the free tier from the Portal UI, but free signup is still possible via
other avenues (signup form in themes, embeddable signup form on another
site, direct API call). This creates confusion/frustration for
publishers who thought they disabled free signups, but are still getting
unwanted free signups (spam). There is no way to disable free signups
entirely.

- solution: introduced a new "paid-members only" subscription access
setting, which blocks all free signups at the API level. If chosen, the
free tier is hidden in Portal and all free signup are blocked at the API
level with a readable error message (`This site only accepts paid
members.`)

![CleanShot 2024-12-10 at 09 09
28@2x](https://github.com/user-attachments/assets/c71b38b4-0d23-429c-a743-00772e82c787)
2024-12-20 02:43:48 +08:00
Peter Zimon
252918b70c
Adding Posts analytics React app (#21878)
ref https://linear.app/ghost/issue/DES-1021/create-posts-app

Part of establishing React patterns in Ghost is to build a well-defined
and fairly self-encapsulated app through which we can test assumptions
and define best practices. Our guinea pig is Post analytics for this
purpose. This PR creates a new React app (posts) using Shade (the new
design system).
2024-12-19 12:01:08 +01:00
Sodbileg Gansukh
65bec88187
Added 403 errors to the error handler (#21898)
ref ENG-745

- added permission related errors to list of error types to be handled
- previously, generic error messages were displayed when permission
errors are thrown
- this would make it possible to display the actual message returned
from the API in toasts
2024-12-17 18:21:48 +08:00
Peter Zimon
fbbf34e1d0
Added Shade fundamentals (#21812)
ref
https://linear.app/ghost/issue/DES-1020/create-new-react-app-for-shade

Shade is our new design system that follows React best practices and
leverages third-party libraries extensively. It's built on ShadCN/UI
which is one of the most popular React UI libraries today. This commit
adds an (almost) empty React app, set up to be the a starting point of
Shade.
2024-12-11 15:55:58 +01:00
Sodbileg Gansukh
ea0e598bf2
Added custom fonts feature check (#21738)
ref DES-1011

- previously, we were hiding the old font settings from the official themes without checking if they support the custom fonts or not
- now we use the gscan warning info to check this — only when there's support, we hide the settings which means users with the older version will get the old settings back
- also added two new tests for this procedure
2024-12-04 13:42:44 +08:00
Djordje Vlaisavljevic
550a52598c
Fixed WordPress article feature image not showing (#21779)
ref https://linear.app/ghost/issue/AP-619/feature-images-from-wordpress-are-[object-object]

- WordPress puts the feature image into an `image` object, rather than putting the URL directly into an `image` string. We now properly render this.
2024-12-02 15:50:27 +00:00
Sodbileg Gansukh
1f501c1e58
Added author name as an additional check for official themes (#21665)
ref DES-982

- we're hiding font-related theme settings from official themes to make room for the new custom font settings
- this adds author name as an additional check on top of the existing ones (theme name and corresponding setting keys)
2024-11-21 12:04:24 +08:00
Djordje Vlaisavljevic
3709a4811e
Improved ActivityPub drawer view UI (#21521)
ref https://linear.app/ghost/issue/AP-507/inbox-view-missing-min-width-for-inbox-card, https://linear.app/ghost/issue/AP-562/remove-unused-viewfollowersmodal-and-viewfollowingmodal-files, https://linear.app/ghost/issue/AP-559/add-post-stats-and-buttons-to-articles-in-drawer-view, https://linear.app/ghost/issue/AP-468/drawer-visual-refinements, https://linear.app/ghost/issue/AP-558/add-actor-info-to-articles-in-drawer-view, https://linear.app/ghost/issue/AP-573/add-anchor-link-to-replies-in-the-drawer

- Made `Articles` in drawer view wider for better reading experience
- Added `Actor` info to `Articles` in drawer view for more context about who posted it
- Added `Like` and `Reply` buttons and counters to `Articles` in drawer view
- Clicking on a Reply notification or Reply icon in the drawer view now scrolls you directly to replies
- Removed modals we’re no longer using
- Updated `RoutingProvider` so it can work without any modals passed to
it
2024-11-07 15:59:29 +00:00
Ronald Langeveld
1c95acfd57
Fixed flaky Admin X design tests (#21426)
ref ONC-478

- Admin X design tests became flaky largely due to the implementation of
a debounce.
- Initially running a `waitForTimeout` helped to give the environment
enough time to ensure that the specific requests are made, however it
proved to be unpredictable across CI and locally.
- We then replaced `waitForTimeout` in with `waitForRequest` to ensure
tests reliably wait for specific requests.
- Updated logic to check `x-ghost-preview` headers directly, ensuring
the correct response headers are captured and tested against
- Improved stability by using request interception and matching,
preventing debounce issues in the tests.
2024-10-28 17:25:05 +09:00
Aileen Booker
c1ce322e86
Custom fonts (#21337)
- Adding custom fonts for themes behind a feature flag
- Introduces new `@tryghost/custom-fonts` module to manage custom fonts
- UI updates for Branding and Theme settings

---------

Co-authored-by: Fabien O'Carroll <fabien@allou.is>
Co-authored-by: Sodbileg Gansukh <sodbileg.gansukh@gmail.com>
Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
Co-authored-by: Daniël van der Winden <danielvanderwinden@ghost.org>
2024-10-24 07:43:08 -04:00
renovate[bot]
b70bb13fb4 Update sentry-javascript monorepo to v7.119.2 2024-10-15 15:57:58 +02:00
Steve Larson
2157cbfc20
🌐 Updated packages for improved i18n support (#21218)
no ref

We've shipped quite a few updates to our i18n package these past couple
weeks and are due for an update to the consuming packages. Special
thanks to our community contributors for the translations, and in
particular to @cathysarisky for their continued effort!
2024-10-03 22:27:16 +00:00
Michael Barrett
8fa9fb9c25
Updated search to be dynamic in admin-x-activitypub app (#21099)
refs
[AP-352](https://linear.app/tryghost/issue/AP-352/search-for-mastodon-usernames-in-ghost-admin)

Updated the search functionality in the admin-x-activitypub app to be
dynamic and utilise the search API endpoint provided by the activitypub
service

---------

Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2024-09-30 11:32:05 +01:00
renovate[bot]
c96744156e
Update dependency @playwright/test to v1.46.1 (#20866) 2024-09-06 10:35:50 -07:00
Chris Raible
07932325f4
Added type checks to admin-x-design-system unit tests (#20863)
no issue

- Previously we weren't running the type checks in the
`admin-x-design-system` in CI, because we only run `yarn test:unit` in
CI. This adds the typechecks to the `yarn test:unit` command so CI will
fail if the type checks fail.
2024-09-05 16:15:15 -07:00
Daniel Lockyer
33dd6b6b49 Removed concurrently from building apps
ref https://linear.app/tryghost/issue/DEV-20/faster-builds

- we added concurrently because, in theory, it should make builds faster
  by utilizing more cores
- however, when combined with Nx, it seems that we are trying to exceed
  the number of cores, which actually makes individual builds slower
- I've removed concurrently from the apps, which should improve the
  build time significantly
2024-09-02 12:06:27 +02:00
renovate[bot]
91e8aa1271 Update dependency jsdom to v24.1.3 2024-08-26 09:44:19 +02:00
Kevin Ansfield
27123844dc Added donation notification toggle to user settings
closes https://linear.app/tryghost/issue/PLG-155

- added checkbox when "stripe enabled" check is true
2024-08-20 16:00:32 +01:00
renovate[bot]
dc7abe4712 Update sentry-javascript monorepo to v7.119.0 2024-08-15 15:11:53 +02:00
renovate[bot]
eb7024da34 Update testing-library monorepo 2024-08-07 09:59:15 +02:00
Fabien 'egg' O'Carroll
978ccc8483
Updated types for attributedTo property of Objects (#20715)
ref https://github.com/TryGhost/Ghost/commit/5376bd52c7afb91b

This should have been included in the referenced commit
2024-08-05 11:20:34 +00:00
Djordje Vlaisavljevic
bbec5c0ba6
Added support for displaying different types of Mastodon notes (#20684)
- Added logic for displaying different attachments for Mastodon Notes
(images, audio, video)
- Centered the feed on the screen for better focus and made the Feed
layout the default one
- Moved Following and Followers counters to the new “Profile” tab

---------

Co-authored-by: Fabien O'Carroll <fabien@allou.is>
2024-07-30 10:40:10 +01:00
renovate[bot]
cbd994d033 Update dependency jsdom to v24.1.1 2024-07-22 09:10:23 +02:00
Sag
a8533c9dc9
Cleaned up "Embeddable signup form" GA feature flag (#20577)
no issue

- "Embeddable signup form" feature was released in Ghost
[v5.51.0](https://github.com/TryGhost/Ghost/releases/tag/v5.51.0)
(commit: 5e7edb9)
- [Project
details](https://www.notion.so/ghost/Embeddable-signup-forms-1632735f1f894d01be491aeffb48bd45?pvs=4)
2024-07-10 10:46:04 +00:00
Sag
5dfee47fca
🐛 Fixed default recipients setting not showing label filters (#20480)
fixes https://linear.app/tryghost/issue/SLO-171

- problem: when the Default Recipient setting is set to "Specific
people" and is filtered by a label, we were not able to render the label
correctly
- cause: during the rendering, we look for labels by `id`, but they're
stored by `slug` in the database setting
`editor_default_email_recipients_filter`
- solution: allow to look by the relevant key, by introducing a
programmatic `key` to search for

Before the fix:
https://github.com/TryGhost/Ghost/assets/6225080/aed5fc31-6409-4986-aafe-557073c7f355


After the fix:
https://github.com/TryGhost/Ghost/assets/6225080/f35b2607-5f22-42be-b1bb-92f35ccc9ab7
2024-06-27 17:47:26 +02:00
Fabien 'egg' O'Carroll
0cf3d4d3d5
Updated ActivityPub API root path (#20471)
ref https://linear.app/tryghost/issue/MOM-201

We will be proxying to `/.ghost/activitypub` rather than just
`/activitypub`
2024-06-27 11:27:25 +07:00
Fabien O'Carroll
b81839f2fe Updated ActivityPub Admin X to work with Fedify API 2024-06-24 18:07:09 +01:00
renovate[bot]
ccf2d22f4b Update sentry-javascript monorepo to v7.118.0 2024-06-21 13:07:47 +01:00
Fabien 'egg' O'Carroll
cb2150f33c
Added Ghost2Ghost ActivityPub feature that uses mock API (#20411)
ref https://linear.app/tryghost/issue/MOM-108/ap-phase-two

Added a WIP version of the Ghost-to-Ghost ActivityPub feature behind the feature flag. Enabling it will add a new item to the main sidebar nav that lets you interact with our ActivityPub mock API in the following ways:
- Shows you the list of sites you follow
- Shows you the list of sites that follow you
- Shows you the articles published by sites you follow
- Shows you activities (who followed you or liked your article)
- Shows your liked articles

Mock API can be easily updated to simulate working with different types of data and interactions.
2024-06-19 12:46:02 +01:00
Ronald Langeveld
9e1a70eed7
Added custom headers to be passed to createQuery hook (#20402)
ref MOM-239

- for ActivityPub + Egg
- allow custom headers to be passed to createQuery hook in Admin X.
- this includes the ability to use it inside `createQueryWithId` hook.
- Added testing
2024-06-19 10:27:07 +07:00
renovate[bot]
e93bdba689 Update sentry-javascript monorepo to v7.117.0 2024-06-11 09:35:31 +02:00
Sag
fde40e9d85
Removed Sentry error on multiple request attempts (#20360)
refs https://linear.app/tryghost/issue/SLO-146
- this Sentry error is not a user-facing error
- the request is retried if it fails the first time
2024-06-11 07:22:34 +00:00
Kevin Ansfield
9ca1f3ce24
Renamed subtitle to excerpt (#20334)
no issue

We've settled on using "excerpt" naming in place of "subtitle" to better reflect the underlying property name and tie in with themes and historical usage.

- added migration to rename the `show_subtitle` newsletter setting to `show_excerpt`
- renamed all places in the codebase that referenced subtitle
2024-06-05 17:59:30 +01:00
Kevin Ansfield
952a89f673
Renamed show_subhead to show_subtitle (#20320)
closes https://linear.app/tryghost/issue/MOM-194

- whilst working on the feature our naming changed from "Subhead" to "Subtitle"
- this rename of the newsletter design setting column brings naming back into a consistent state before public release
2024-06-04 10:57:14 +00:00
Sag
41f8ed6f45
Improved error message when fetching resources fails (#20317)
ref
https://linear.app/tryghost/issue/SLO-118/[admin]-error-cannot-fetch-x
2024-06-04 07:39:59 +00:00
Sag
9b7f1be740
Replaced Array.at() for better browser compatibility (#20315)
fixes https://linear.app/tryghost/issue/SLO-125

- Array.at() has been introduced in ECMAScript 2022 and is currently not
supported by older browsers, e.g. Safari < 15.4
2024-06-04 06:20:32 +00:00
Ronald Langeveld
fddcf3ffee
Added Subheads behind a flag (#20265)
refs MOM-152 MOM-148 MOM-151

- Added Subheads behind a flag + toggle in settings.
- Removes Excerpt fields from post settings if flag is enabled.
- Added subhead toggle in newsletter settings.
- Loads of styling

---------

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2024-05-29 09:53:40 +00:00
renovate[bot]
c472a3ac4b
Pinned dependencies (#20257) 2024-05-27 15:29:32 +00:00
Daniel Lockyer
ecc6053e5d Cleaned up jsdom dependency usage
- we don't need this in `ghost/core` as it's not used in there
- we need to declare this dependency for the apps, as they use it for
  running tests
- this doesn't change the lockfile but it means we're declaring the
  dependency in the right places now
2024-05-27 09:49:43 +02:00
renovate[bot]
f0c8be59a8 Update dependency @types/react to v18.3.3 2024-05-27 09:37:46 +02:00
Ronald Langeveld
99232de6ee
Fixed Settings not working in offline dev locally (#20246)
ref
https://forum.ghost.org/t/access-settings-of-local-ghost-install-when-offline/47590

- Fixed a React Query configuration that would only load Settings when
you're connected to the internet.
- Setting `networkMode: 'always'`, ensures that queries are executed
regardless of the network status, bypassing any checks for internet
connectivity.
2024-05-23 10:58:14 +00:00
renovate[bot]
ad48d8eb25 Update sentry-javascript monorepo to v7.116.0 2024-05-21 14:24:23 +01:00
Peter Zimon
770f657ae9
Improve messaging and error handling (#20078)
ref DES-228

This PR updates messaging and error handling in order to make Ghost calmer and friendlier. High level summary of the changes:

- Removed all onBlur validation in Settings -> now it’s possible to just click around without being warned to fill mandatory fields
- Removed  lot of technical errors like `ValidationError: Validation (isEmpty) failed for locale`
- Completely removed the red background toast notifications, it was aggressive and raw esp. on the top
- Removed some unnecessary notifications (e.g. when removing a webhook, the removal already communicates the result)
- Now we show field errors on submitting forms, and in case of an error we show a “Retry” button in Settings too. This allowed to remove a lot of unnecessary error messages, like the big error message on the top, plus it’s consistent with the patterns outside Settings.
- Notification style is white now with filled color icons which makes everything much calmer and more refined.
- Removes redundant copy (e.g. "successful(ly)") from notifications

---------

Co-authored-by: Sodbileg Gansukh <sodbileg.gansukh@gmail.com>
2024-05-14 09:31:19 +02:00
renovate[bot]
484ba8873b Update Types packages 2024-05-13 09:04:16 +02:00
renovate[bot]
4c1ecabfc7 Update sentry-javascript monorepo to v7.114.0 2024-05-09 10:16:37 +02:00
Sag
6281e63411
🐛 Fixed error rendering when using a duplicate offer code (#20156)
closes https://linear.app/tryghost/issue/ONC-15

- when adding or editing an offer, the backend throws an error if the
offer code is already in use. This error was not being surfaced
correctly in Admin
2024-05-08 11:27:31 +02:00
renovate[bot]
ec626bd0cf Update react monorepo to v18.3.1 2024-05-02 11:46:13 +02:00
renovate[bot]
8f839b34b1 Update Types packages 2024-04-30 22:00:55 +02:00
renovate[bot]
393007bcd6 Update react monorepo to v18.3.0 2024-04-30 21:26:31 +02:00
renovate[bot]
25657b6a99 Update sentry-javascript monorepo to v7.112.1 2024-04-23 16:39:50 +02:00