ref https://github.com/TryGhost/Ghost/pull/22127
The update to the Portal release process has now been tested on main, it
would be good to get Search & Comments updated to the same process so
that it's easier to reason about releasing all of them.
Refs https://linear.app/ghost/issue/AP-735
- When a user boosts/reposts something it should show up in their profile section in ghost in both feed and profile modal.
This will be used for search and comments too, but I want to start with just
one app to get things going. Key things the script does:
- Enforces that we're not on main & have clean working dir
- Creates a well structured commit message w/ basic changelog
- Updates the package.json and default config
The script explicitly does not push anything to GitHub or to NPM, giving us
more control about the contents of the commit
no refs
Clean up includes:
- Removing unused queries (`inbox`, `following`, `followers`)
- Renaming of query hooks to be consistent with other hooks
- Fixed `useProfile*ForUser` fns as these where using the incorrect
handle to setup the API client
- Refactored query keys to make mutations easier to reason about
- Fixed `follow` / `unfollow` mutations not working as expected
ref https://linear.app/ghost/issue/AP-706/add-repost-count-so-that-the-ui-can-display-the-count
- When you repost (or derepost) a post, the stats counter will now nicely animate into a larger (or smaller) number, with only the relevant digits animating and the others staying in place. We’re using a reusable hook for this.
- Updated stat counter numbers to also change the color when the post is liked or reposted by the currently logged in user
- Fixed like and post state not persisting when opening a post/note in the drawer without refreshing
- Bumped the package
---------
Co-authored-by: Michael Barrett <mike@ghost.org>
ref https://linear.app/ghost/issue/AP-699
- when the user clicks again on the Repost icon, we undo the Repost
action, by calling the corresponding API endpoint `POST
/actions/derepost/:id`
- UX/UI and copy are still WIP
- at this stage, we're still missing acceptance tests in the frontend
app. We will be starting acceptance testing in a separate commit
ref https://linear.app/ghost/issue/AP-695/show-a-notification-when-someone-reposts-your-content
- When someone reposts your post or note, you’ll now receive a notification. If multiple accounts repost the same piece of content, those notifications will be grouped together, but only if they’re fetched as the same page of notifications.
- Converted functions to React components
- Bumped the package
ref https://linear.app/ghost/issue/AP-699
- wired the frontend to the new Create Repost API endpoint (POST
/actions/repost/:id)
- the UX/UI is yet to be worked on by Djordje
- the frontend activity-pub app is currently missing acceptance tests
altogether. A follow-up commit will set up and add a basic acceptance
test to the FE app, so that we can add tests as we ship new changes
ref https://linear.app/ghost/issue/AP-697/add-ui-for-reposted-inbox-posts
- Updated activity filter to show posts reposted by accounts you're following in your inbox
- Updated UI to indicate when a post shown in the inbox is reposted
- Updated UI for showing reposted notes for better alignment
- Added onClick to the repost indicator so it's easy to see the details of the account that reposted the content
- Bumped the package
ref
https://linear.app/ghost/issue/ENG-1974/create-config-option-to-forcibly-disable-email-track-clicks
- With the ability to override a setting via configuration, we also need
to disable the setting's toggle in the UI to signal to the user that it
cannot be changed.
- This commit sets `disabled: true` on the `Newsletter clicks` toggle if
`is_read_only` is set to `true` on the `email_track_clicks` setting
returned from the API, and establishes a pattern that we can use for
other settings in the future, if desired.
ref https://linear.app/ghost/issue/PLG-327
- updated post output serializer's gating functions to add gating of specific content blocks
- uses regex to look for specific strings in the HTML for speed compared to fully parsing the HTML
- content gating blocks look like `<!--kg-gated-block:begin nonMember:true/false memberSegment:"status:free,status:-free"-->...gated content...<!--kg-gated-block:end-->`
- parsing of params is limited to `nonMember` with a true/false value and `memberSegment` with a string value containing a limited set of supported filters
- occurs at the API level so that content is correctly gated in Content API output and front-end website
- added `checkGatedBlockAccess()` to members-service content-gating methods to keep the underlying member checks co-located
ref https://linear.app/ghost/issue/AP-590/unable-to-unfollow-accounts
- Users can now unfollow accounts they’re following, which means that account will be removed from the user’s “following” list and any of the future posts or notes published by that account won’t appear in user’s inbox or feed.
- Refactored and simplified `FollowButton` so it only has 2 variants: primary (used on profiles, where it's the primary focus of the screen) and secondary (used in lists where there will probably be lots of `FollowButton`s next to each other.)
---------
Co-authored-by: Fabien O'Carroll <fabien@allou.is>
ref DES-182
- adds `accept` parameter to the file uploads making it possible to
define a set of accepted file types
- allows only zip and json files for the universal importer
no issue
- Webhooks are advanced and powerful feature Ghost offers, but they are quite
hidden in the settings
- This change adds 'webhooks' keyword to the search in the sidebar to point
users in the right direction
ref https://linear.app/ghost/issue/ENG-1973
ref https://app.incident.io/ghost/incidents/132
- following an increase in spam members signups, we have recently added
a blocklist of email domains, based on config (see
https://github.com/TryGhost/Ghost/pull/22027). With this change, we are
extending that feature with a user-facing setting in Ghost Admin
- publishers can now block additional email domains in member signups,
directly from Ghost Admin. These emails domains will be added to the
list of domains already blocked by config
ref https://linear.app/ghost/issue/DES-1082/router-prototype
This task is about testing, figuring out pros and cons of React Router
compared to our current (custom) router, and what effort and risks are
involved in migrating to it.
ref BAE-371
Added the HCaptcha react component & related utils to enable it /
disable it based on the Captcha labs flag. At the moment this does not
include the same functionality on forms using the data-attributes.
ref
https://linear.app/ghost/issue/DES-1085/update-shade-to-be-used-in-activitypub
- Shade so far was just used in our playground (Post analytics). It
needed to be prepared so that it can be integrated in real projects like
ActivityPub. This means cleaning up everything related to it like
conventions, file structure, documentation etc.
ref https://linear.app/ghost/issue/PRO-1349
- the integrity token endpoint can return a json response with an error
message (for example, when rate limited)
- added the standard response handler to the integrity token endpoint in
Portal, to render the error message sent by the backend
ref
https://linear.app/ghost/issue/ONC-723/support-escalation-re-fwd-email-preferences
- On sites where the Default recipients setting was set to anything
other than "Whoever has access to the post", the list of newsletters and
the toggle to subscribe/unsubscribe would not be rendered on the Portal
"Email Preferences" page.
- The bug was introduced in v5.106.0, and intended to hide the
newsletter list if Newsletter sending were disabled completely, but
there was bug in the logic
- This commit has a breaking test to prevent this in the future, and
fixes the logic to only hide the newsletter list if
`editor_default_email_recipients` is explicitly set to 'disabled'.
ref bb9a69e
ref https://linear.app/ghost/issue/ENG-1753/labs-flags-cleanup
- We promoted i18n to GA several weeks ago now, and it's going fine
- Removing the UI first to reduce confusion before cleaning up all the
other references to the flag
- Introduced a new function for setting the publication language in internationalization (i18n) test cases, for readability
ref https://linear.app/ghost/issue/AP-534/profile-weird-button-hover-state-in-post-list
- While we've separated Inbox and Feed views, we're still showing both Notes and Articles together in Profiles. Articles had a confusing hover state and also felt disconnected. The new design is similar to the one used in the new publishing flow, with adjustments where it makes sense.
- Added more useful alt descriptions
- Fixed images from Thread notes not showing