Commit Graph

2118 Commits

Author SHA1 Message Date
Fabien O'Carroll
bd66efa70a Added support for listing likes
We can reuse the FeedItem here, and I've defaulted to the 'feed' layout - I'm
not 100% sure if that's correct.

The liked collection doesn't have `liked` properties, and it's a little tricky
to add on the backend with how fedify works - so for now we hardcode the
`liked` property to true, which we can do because we're rendering all of the
liked content!
2024-09-06 21:07:13 +07:00
Fabien O'Carroll
c0386b6c69 Refactored like and unlike API requests
We don't want our components littered with fetch calls, as it makes it
difficult to test. Instead we move our http api code into the ActivityPubAPI,
giving us a central place for adding authentication and tests in the future.

We also make sure that the components use a react query wrapped call - so that
we can take advantage of the query invalidation.
2024-09-06 21:07:13 +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
renovate[bot]
e3db122bc5 Update dependency @uiw/react-codemirror to v4.23.1 2024-09-05 20:51:29 +00:00
Djordje Vlaisavljevic
3f797d5882
Connected outgoing Like API(#20931)
ref https://linear.app/tryghost/issue/AP-286/outgoing-like-activities
2024-09-05 19:57:00 +01:00
Djordje Vlaisavljevic
21fb57eabd
Refactored and reorganized FeedItem and Profile (#20919)
- Moved engagement stats to a reusable component
- Moved functions from Profile to a separate file
- Fixed Following on Your Profile and moved them from
modals to tabs
2024-09-05 13:07:01 +01:00
renovate[bot]
67291056b0
Update Koenig packages (#20911)
Ref: https://linear.app/tryghost/issue/ENG-1435/threads-embeds-contain-broken-images

Fixed broken Thumbnails and Icons
2024-09-03 16:13:13 +00:00
Kevin Ansfield
1bc34f7227 Added Tips & Donations one-off payments
no issue

Give your audience a simple way to support your work with one-time payments, no membership required.

- cleaned up `tipsAndDonations` labs flag
2024-09-03 16:00:48 +01:00
Daniel Lockyer
f96313e9c2 Enabled treeshaking for validator in AdminX design system
ref https://linear.app/tryghost/issue/DEV-20/faster-builds

- we can save 75KB by using a tree-shaking import for validator
- import string comes from validator docs
- also adds validator import, which was missing for this package
2024-09-03 10:44:14 +02:00
Daniel Lockyer
7db1cb4f14 Fixed treeshaking for lodash in AdminX apps
refs https://dev.to/pffigueiredo/making-lodash-tree-shakable-3h27
ref https://linear.app/tryghost/issue/DEV-20/faster-builds

- by importing `lodash`, we import a huge 500KB file into all AdminX
  apps
- we only use one function from this, so we can switch to `lodash-es`
  and Vite will treeshake the rest out of the final compiled JS
- this saves 500KB in each AdminX app and improves compile times
2024-09-03 10:18:04 +02:00
Djordje Vlaisavljevic
3696d4305c Added static design for Replies
ref https://linear.app/tryghost/issue/AP-374/add-design-for-replies
2024-09-02 21:38:32 +01:00
Kevin Ansfield
73d75413a0
🎨 Convert portal links to relative to avoid homepage flash on click (#20896)
closes https://linear.app/tryghost/issue/PLG-190

- often when adding portal links to your own site pages the URLs are added as absolute on the site's homepage due to copy+paste from displayed URLs in Admin
- when clicking absolute portal URLs the homepage is first loaded before the Portal popup is shown resulting in a slower and flashier experience
- added a transform for all local portal URLs on the page when Portal is initialized so links open the Portal popup immediately on the current page
2024-09-02 11:23:12 +00: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
Djordje Vlaisavljevic
a3e498106d Added icons to Activity items to make it easier to scan the page
ref https://linear.app/tryghost/issue/AP-283/handle-incoming-likes
2024-09-02 10:43:38 +01:00
Djordje Vlaisavljevic
c260ed5202 Added support for badges to APAvatar
ref https://linear.app/tryghost/issue/AP-283/handle-incoming-likes
2024-09-02 10:43:38 +01:00
Ronald Langeveld
b62baa8b0b
Added sentry to support error on Portal (#20890)
ref PLG-204

- Added a sentry capture so we know when and if the support error
component gets triggered.
2024-09-02 16:58:22 +09:00
Sodbileg Gansukh
d30164df97
Improved publishing flow (#20878)
ref DES-706

* After a user publishes or schedules a post, they are directed to the post list
* If a post is sent as an email, they are directed to the Analytics page
* In both cases, a confirmation modal is shown
* If a post is published, they can share it directly from the confirmation modal
* Added a "Share" button and some additional functions (view, edit, and delete post) to
published posts in post analytics
* Added a manual "Refresh" button to post analytics so that there is
no need to reload the whole app to update the data

---------

Co-authored-by: Sag <guptazy@gmail.com>
2024-08-29 21:17:16 +02:00
Daniel Lockyer
0a6cd75993 Gated NestJS framework behind environment variable
- we added NestJS to Ghost as a way forwards for a new framework within
  Ghost but we haven't added much to it
- requiring all the NestJS code adds about 6-9% to our boot time, so if
  we're not using it, it's just time we're burning for no benefit
- for now, I've gated this behind an env var to prevent it from loading
- we can't use labs flags in the boot process, so I've gone for an env
  var
2024-08-29 12:18:42 +02:00
Kevin Ansfield
0d091992f2 Shipped new Portal version 2024-08-28 17:54:58 +01:00
Sanne de Vries
8ddbf471dd
Updated donation success modal styles (#20859)
REF PLG-152
2024-08-28 15:48:57 +00:00
Kevin Ansfield
c689414497
Added missing translation entries for Portal field placeholders, labels, and errors (#20858)
no issue

- added `t()` around static strings to allow them to be translated
- updated translation files, with context provided in `context.json`
2024-08-28 15:43:03 +00:00
Kevin Ansfield
32edc12cc2 Fixed error closing donation success modal
no issue

- when redirecting from Stripe back to Ghost after making a donation the URL contained a double slash (`//#/portal/...`) which triggered browser security errors when Portal modified the browser history stack when navigating
- the above could prevent the donation success modal from closing
2024-08-28 12:38:14 +01:00
Kevin Ansfield
2b2e5dfeb1 Updated Portal readme with more testing/releasing details 2024-08-28 10:37:04 +01:00
Michael Barrett
59a3a9514b
Added data retrieval for activitypub activities (#20830)
refs
[AP-283](https://linear.app/tryghost/issue/AP-283/handle-incoming-likes)

Added data retrieval for activitypub activities in the acvitiies tab of
the ActivityPub demo
2024-08-28 09:39:01 +01:00
Chris Raible
a79ab03463
Fixed failing type check in admin-x-design-system story (#20838)
no issue

- The type checks for `admin-x-design-system` were failing for me locally for a Storybook story. It looks like we changed the `PopoverPosition` type to use 'start'/'end' rather than 'left'/'right', but this story was still using 'left'. This was causing `yarn test` to fail in the `admin-x-design-system` app.
- This commit updates the story to use 'start' instead of 'left', which allows the type checks to pass.
2024-08-27 17:58:42 -07:00
Steve Larson
962194b595
Bumped Portal (#20837)
no ref
2024-08-27 21:29:40 +00:00
Steve Larson
8a1274517d
🐛 Added integrity token to one click subscribe (#20836)
ref https://linear.app/tryghost/issue/ONC-269

When we added the integrity token to all `send-magic-link` callers in
Portal, we missed one.
2024-08-27 21:17:19 +00:00
Kevin Ansfield
709ee163e3 Bumped Portal
ref https://linear.app/tryghost/issue/PLG-152

- updates tips and donations success states
2024-08-27 19:30:27 +01:00
Kevin Ansfield
f613f42bec Updated donation success states
closes https://linear.app/tryghost/issue/PLG-152

- switched member success to a notification
- updated non-member success modal to include signup and signin links
2024-08-27 19:30:27 +01:00
Sodbileg Gansukh
0cf987ebff
Fixed Radix UI related custom validity error (#20829)
ref DES-755

- a direct child of a form control primitive should be a form element
- for TextField component, a div was the direct child
- this moves the input element to the form control primitive
2024-08-27 18:17:39 +08:00
Steve Larson
d24af3bd50
Bumped Portal (#20826)
ref https://github.com/TryGhost/Ghost/issues/20767
2024-08-26 23:06:27 +00:00
Steve Larson
22fcd21fbb
Fixed Portal honeypot field (#20825)
ref INC-97
ref https://github.com/TryGhost/Ghost/issues/20767
- finishes wiring up the honeypot fied
- updates state handing to properly set the value
- maintains honeypot field across page changes within portal

There isn't a single previous commit to point to here since they didn't
get squashed. We added a honeypot field to help mitigate bot signup
activity. It's hidden, and if filled out, we can anticipate it's a bot.
Right now this just logs to Ghost while we collect data.
2024-08-26 22:51:57 +00:00
Peter Zimon
65b6978482 Updated layout switch 2024-08-26 14:02:47 +02:00
Peter Zimon
6530cd535e Added basic inbox view 2024-08-26 14:02:47 +02:00
Djordje Vlaisavljevic
8cbdecfc7f Added static design for Search page
ref https://linear.app/tryghost/issue/AP-352/search-for-mastodon-usernames-in-ghost-admin
2024-08-26 14:02:47 +02:00
Djordje Vlaisavljevic
6171a417de Updated design of Notes in the feed and in the drawer
ref https://linear.app/tryghost/issue/AP-282/render-notes-in-the-frontend
2024-08-26 14:02:47 +02:00
Djordje Vlaisavljevic
5b70fc6b1c Added design for Profile component
ref https://linear.app/tryghost/issue/AP-305/profile-viewer-component-that-can-render-activitypub-actor-data
2024-08-26 14:02:47 +02:00
Djordje Vlaisavljevic
366d683d7b Fixed time not being converted properly
ref https://linear.app/tryghost/issue/AP-131/show-nice-relative-timestamps
2024-08-26 14:02:47 +02:00
renovate[bot]
91e8aa1271 Update dependency jsdom to v24.1.3 2024-08-26 09:44:19 +02:00
Sam Lord
0a9d2fadba Added honeypot field to prevent bot signup/signin
ref KTLO-1
Should prevent untargeted attacks using headless browser bots.
2024-08-22 22:32:04 +01:00
Sam Lord
ebc87002ce Added integrity token to signup-form package
ref KTLO-1
2024-08-22 22:23:16 +01:00
Sam Lord
ef4f79370f Added support in Portal for integrity tokens on magic link API
ref KTLO-1
These tokens should prevent untargeted attacks, as the magic link
endpoint needs a token that was generated by the server, similar to a
CSRF token, but without needing any server-side state, or a cookie to
be set for unauthenticated users.
2024-08-22 22:23:16 +01:00
Ronald Langeveld
ad3751bfa6
Added i18n support to tips and donations on portal (#20812)
ref PLG-159

- wrapped strings inside the translate function in Portal
- added new strings to i18n files
2024-08-22 15:28:08 +07:00
Princi Vershwal
309cb37cc6
Updated nql package (#20811)
Ref [ONC-216](https://linear.app/tryghost/issue/ONC-216/improve-the-performance-of-the-membersevents-aggregated-click-event)

Needed changes in nql package for this task.
2024-08-22 07:55:14 +00:00
Kevin Ansfield
f08e4d4728 Hid tips and donation settings when Stripe is disabled
closes https://linear.app/tryghost/issue/PLG-178

- updated conditional to ensure we're ready for GA by showing when Stripe is enabled rather than only when the feature flag is enabled
2024-08-21 16:12:00 +01: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
Ghost CI
5effca4c5e Merged v5.89.5 into main 2024-08-20 14:33:31 +00:00
Steve Larson
dac2561252
🔒 Added uuid verification to member endpoints not requiring a session
ref https://linear.app/tryghost/issue/ENG-1364
ref https://linear.app/tryghost/issue/ENG-1464

- credits to https://github.com/1337Nerd
- added a hashed value to endpoints that do not require a member sign in in order to verify the source of the link and resulting request
- added redirect to sign in page when trying to access newsletter
management
2024-08-20 16:24:02 +02:00
Kevin Ansfield
0b3f7d7705 Updated tips & donations default suggested value
closes https://linear.app/tryghost/issue/PLG-156

- updated all default fixtures to use `500` ($5) as the default suggested donation value
- added migration to update existing settings using the old default of `0` to `500`
  - this is fine to apply because the feature hasn't been released so there's no explicit `0` values in the wild
- added an acceptance test for the adminx-settings tips & donations section
2024-08-20 12:07:51 +01:00
renovate[bot]
26724d8705 Pin dependencies 2024-08-19 16:53:43 +02:00
Sodbileg Gansukh
2f76847e00
Migrated the design system to Radix (#20244)
ref DES-331
2024-08-19 20:37:33 +08:00
renovate[bot]
4462b20e01 Update dependency tailwindcss to v3.4.10 2024-08-19 08:38:24 +02:00
renovate[bot]
dc7abe4712 Update sentry-javascript monorepo to v7.119.0 2024-08-15 15:11:53 +02:00
Peter Zimon
108c9f60c8
Add reusable UI components to ActivityPub (#20758)
AP-348

ATM the top navigation and the article drawer components are missing for
ActivityPub UI. They are both part of the next phase so we need to add
them.
2024-08-15 12:28:08 +02:00
Sodbileg Gansukh
5ee67892dc
Improved publishing flow end screen (#20701)
ref DES-594

- this update introduces some improvements to the publishing flow end screen
- everything's behind a feature flag — publishFlowEndScreen
2024-08-15 18:22:32 +08:00
Djordje Vlaisavljevic
04b600b0b8 Refactored renderAttachment to keep it DRY
ref https://linear.app/tryghost/issue/MOM-282/render-notes-in-the-frontend
2024-08-14 16:30:14 +01:00
Djordje Vlaisavljevic
ee5a49077d Made hover state on links inside Notes easier to see
ref https://linear.app/tryghost/issue/MOM-282/render-notes-in-the-frontend
2024-08-14 16:30:14 +01:00
Djordje Vlaisavljevic
6ae20a8d32 Added relative timestamps to feed objects
ref https://linear.app/tryghost/issue/AP-131/show-nice-relative-timestamps
2024-08-14 16:30:14 +01:00
renovate[bot]
4d133defa0 Update tiptap monorepo to v2.6.1 2024-08-13 11:14:48 +00:00
renovate[bot]
808ed29c27 Update tiptap monorepo to v2.6.0 2024-08-13 09:44:26 +00:00
renovate[bot]
fa9bc4d446 Update Koenig packages 2024-08-12 22:00:16 +01:00
Kevin Ansfield
a86f9dbdda Cleaned up internalLinking labs flag
closes https://linear.app/tryghost/issue/PLG-15

- removed `internalLinking` GA labs flag
- renamed search providers to `flex` and `basic`
  - keeps old search provider around as it can handle non-English languages unlike the faster flex provider
- updated `search` service to switch from `flex` to `basic` when the site's locale is not english
- bumped Koenig packages to switch from a feature flag for toggling internal linking features to the presence of the `searchLinks` function in card config
- updated tests to correctly switch between flex and basic providers in respective suites
2024-08-12 13:08:29 +01:00
Ronald Langeveld
85aed302c1
Bumped Portal to 2.38.0 (#20733)
ref ONC-225

Bumped it a minor since it contains breaking changes.
2024-08-12 14:41:39 +07:00
Ronald Langeveld
da691bf0d7
🐛 Fixed newsletter button not hidden in Portal (#20732)
ref ONC-225

- Wires up the `editor_default_email_recipients` key to the settings
public / content api endpoint.
- This key is then wired up to Portal to determine whether it's hiding or
showing the Member subscribe toggle
2024-08-12 06:00:25 +00:00
renovate[bot]
eb7024da34 Update testing-library monorepo 2024-08-07 09:59:15 +02:00
renovate[bot]
445a2b7008 Update tiptap monorepo to v2.5.9 2024-08-06 16:46:10 +00: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
Fabien 'egg' O'Carroll
5376bd52c7
Updated design of announced Notes and Notes containing links
- Announced (reposted) Notes show information about both the Actor that
created the Note, and the Actor that Announced it
- The content of notes now keeps the formatting and links are clickable
and shown in different color

Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2024-08-05 11:07:03 +00:00
Djordje Vlaisavljevic
68d8f19d5a Revert "Updated design of announced Notes and Notes containing links (#20703)"
This reverts commit aca4626c72.
2024-08-01 17:32:25 +02:00
Djordje Vlaisavljevic
aca4626c72
Updated design of announced Notes and Notes containing links (#20703)
- Announced (reposted) Notes show information about both the Actor that
created the Note, and the Actor that Announced it
- The content of notes now keeps the formatting and links are clickable
and shown in different color
2024-08-01 15:35:46 +02:00
Daniël van der Winden
42299abf82
Added styling for accent colours on Tiers and Offers (#20696)
fixes
https://linear.app/tryghost/issue/DES-81/misleading-hardcoded-tier-preview-title-colors

Tiers and Offers in Admin were shown with hardcoded pink titles. This
changes that. They are now shown with black titles, and only in the preview will they render with the site's accent colour. 

---------

Co-authored-by: Princi Vershwal <vershwal.princi@gmail.com>
2024-08-01 09:46:11 +00:00
Michael Barrett
ffbcb5a69e
Refactored ActivityPub tabs to make tabs more maintainable (#20692)
no refs

Refactorings include:

- Formatting JSX to be more readable
- Filtering activities before rendering
- Fixing invalid inbox empty state HTML (nesting div inside ul)
- Adding initial support for announce activities in the inbox
2024-07-31 09:57:10 +01:00
Michael Barrett
61641bc7c6
Fixed ActivityPub app tabs content (#20690)
no refs

The `Activity` and `Likes` tabs of the AcitivityPub app were not showing
the correct content. This commit fixes that.
2024-07-30 15:23:34 +01:00
Steve Larson
f7a592e761
🐛 Fixed dark mode for standalone html editors in Admin X (#20689)
ref https://linear.app/tryghost/issue/DES-591
- finished wiring up the darkMode prop through the context providers 

The main impact here was that the formatting toolbar was not respecting
the dark mode settings.
2024-07-30 09:18:51 -05:00
Fabien 'egg' O'Carroll
178c98c17f
Fixed handling of single item collections (#20688)
Fedify will not use an array for the `items` key of collections when
there is only a single item, which wasn't being handled in our
activitypub api module.

Now we always return an array so that the components recieve consistent
data.
2024-07-30 17:33:25 +07: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]
f7ec72488a Update tiptap monorepo to v2.5.8 2024-07-30 07:48:45 +00:00
renovate[bot]
8afdc10ec9 Update dependency tailwindcss to v3.4.7 2024-07-30 09:30:41 +02:00
Steve Larson
a109b255f0
🐛 Fixed no redirect on Portal signin when trying to access newsletters (#20683)
ref https://linear.app/tryghost/issue/ENG-1464
- added redirect to sign in page when trying to access newsletter
management

If a user tries to access newsletter management when not logged in,
Portal requires sign in via magic link. This magic link didn't previous
redirect the user back to newsletter management, requiring some extra
clicks.
2024-07-29 15:58:08 +00:00
Daniel Lockyer
103672ef57 🐛 Fixed spurious errors when loading modal before provider
fix https://linear.app/tryghost/issue/SLO-190/error-no-dispatch-method-detected-did-you-embed-your-app-with

- we've spuriously been seeing `No dispatch method detected, did you
  embed your app with NiceModal.Provider` when browsing to a URL that
  loads a modal in Safari
- it looks like DesignSystemProvider (via DesignSystemApp) contains the
  NiceModal.Provider, but this is loaded within the RoutingProvider that
  could trigger a modal to load
- I tried switching around RoutingProvider and DesignSystemApp but many
  other tests failed, so my fix here is to add a NiceModal.Provider to
  wrap the RoutingProvider
- unfortunately, this bug is flaky to occur and I've only been able to
  reproduce it on Safari, so writing a test for this would be very
  tricky
2024-07-29 13:38:05 +02:00
renovate[bot]
184ef6274a Update dependency tailwindcss to v3.4.6 2024-07-29 12:35:12 +02:00
Sanne de Vries
14cabf97df
Updated tips and donations copy in editor button card (#20662)
REF MOM-313
2024-07-29 09:25:09 +02:00
Steve Larson
1f05a7890f
Added test coverage over newsletter flows (#20672)
no ref
- while reviewing the newsletter flows, it was apparent that we were
missing test coverage

Some of the tests in Portal are a bit redundant with tests added for
child components, but it didn't seem worth removing them after getting
them to work. There was a bug in our Portal fixture data that requires a
few changes, as well as some small adjustments for making tests easier
(testing-lib-react has `getByTestId` and simply a `querySelector` to use
alternate test attributes).
2024-07-27 02:20:13 +00:00
renovate[bot]
6da911e578 Update tiptap monorepo to v2.5.7 2024-07-26 14:12:21 +00:00
renovate[bot]
4f2a31aa2f Update tiptap monorepo to v2.5.6 2024-07-24 16:39:32 +00:00
renovate[bot]
59d4ad91d2 Update dependency tailwindcss to v3.4.5 2024-07-24 10:37:37 +02:00
Sanne de Vries
806fce191d
Updated Tips & Donations settings design (#20649)
REF MOM-315
- Changed to column layout
- Fixed broken currency dropdown
- Included a link to Stripe terms & conditions
- Renamed from "Tips or donations" to "Tips & donations"
2024-07-24 08:26:29 +00:00
Fabien O'Carroll
bfd3ee1209 Wired up ActivityPubAPI w/ ReactQuery
This is a bit of a stopgap, we'll want to eventually pull these hooks out into
a shared file, but for now this is fine.

This almost decouples us from admin-x-framework, but we're still using it to
get the site url as well as some types that we can pull out later.
2024-07-24 13:38:08 +07:00
Fabien O'Carroll
c6e407fb7e Created ActivityPubAPI module
ref https://linear.app/tryghost/issue/MOM-288

Instead of having all of our network code inside of admin-x-framework, we're
moving it into activitypub to make it easier to work with. We've also added
support for using identity tokens for authentication with the ActivityPub API.
2024-07-24 13:38:08 +07:00
Fabien O'Carroll
bef58e1069 Removed nx build from test:unit script
This slows down TDD workflows way too much
2024-07-24 13:38:08 +07:00
Fabien O'Carroll
63261d7d88 Updated vite config to allow sibling test files 2024-07-24 13:38:08 +07:00
Kevin Ansfield
4465e09f2f Fixed missing space after account name when disconnecting Stripe
no issue

- line wrap immediately after the variable meant whitespace was being ignored
2024-07-23 15:05:21 +01:00
renovate[bot]
f493ce9abe Update tiptap monorepo to v2.5.5 2024-07-22 12:00:54 +00:00
renovate[bot]
cbd994d033 Update dependency jsdom to v24.1.1 2024-07-22 09:10:23 +02:00
Michael Barrett
4a59e30050
Published new versions of apps to support BS locale (#20629)
refs
[ONC-150](https://linear.app/tryghost/issue/ONC-150/support-escalation-re-trouble-with-new-languages)

Published new versions of apps to support BS locale
- comments-ui@0.17.3
- signup-form@0.1.5
- portal@2.37.10
2024-07-19 09:26:59 +01:00
Steve Larson
6840c3a6b3
🐛 Fixed admin crashing when deleting a tier benefit that was last moved (#20628)
ref https://linear.app/tryghost/issue/ENG-1433/
- in the tiers details modal, if a tier was deleted after being moved it
would crash admin

The SortableList component calls renderItem for the drag overlay on the
dragged item. However, if that item was deleted, the draggingId never
got reset causing the drag overlay to try to call renderItem on a
nonexistent item.

As a note, we don't actually use this overlay... it could be best to
strip it out to prevent causing issues.
2024-07-18 17:18:32 +00:00
Princi Vershwal
7c1a732a30
🐛 Fixed publishing issue when site has no active newsletters (#20627)
Ref [ENG-1253](https://linear.app/tryghost/issue/ENG-1253/)

Not allowing users to archive their last active newsletter
2024-07-18 14:03:15 +00:00
Princi Vershwal
f05ba155b8
Revert fixed publishing issue when site has no active newsletters 2024-07-18 13:55:49 +00:00
Princi Vershwal
836b6e7be9
Fixed publishing issue when site has no active newsletters
Ref ENG-1253

Not allowing users to archive their last active newsletter
2024-07-18 19:14:18 +05:30
renovate[bot]
573dc9f3ee Update tiptap monorepo to v2.5.4 2024-07-17 16:16:16 +00:00
renovate[bot]
8c5e2a7128 Update tiptap monorepo to v2.5.3 2024-07-17 11:43:08 +00:00
renovate[bot]
15c1c9a76b Update tiptap monorepo to v2.5.2 2024-07-17 08:45:34 +00:00
renovate[bot]
1c12b5e92b Update tiptap monorepo to v2.5.1 2024-07-15 15:53:36 +00:00
renovate[bot]
6108df5292 Update tiptap monorepo to v2.5.0 2024-07-15 00:13:35 +00:00
Daniël van der Winden
57dc5f8ded
Updated Archive Newsletter modal (#20594)
Fixes
https://linear.app/tryghost/issue/DES-470/spacing-on-newsletter-archive-warning-modal-is-missing-between

The modal now follows the same markup as the _Archive Tier_ modal, and
therefore shows whitespace between both paragraphs.
2024-07-11 13:32:22 +00:00
Daniël van der Winden
74e4ee340a
Fixes searchbar breakpoint issue (#20593)
Fixes
https://linear.app/tryghost/issue/DES-323/settings-has-a-bad-breakpoint-with-search-bar

On smaller resolutions, the `X` of the searchbar was overlapping with
the `X` of Settings. Setting the right media queries resolved that.
2024-07-11 15:15:40 +02:00
Princi Vershwal
2cace2987d
Added test for hooks - useSortableIndexedList, usePagination (admin-x-design-system)
Ref ENG-1351 ENG-1373
2024-07-11 14:02:55 +05:30
Sag
f8966e26c8
Cleaned up "Recommendations" GA feature flag (#20580)
no issue

- "Recommendations" feature was released in Ghost
[v5.71.0](https://github.com/TryGhost/Ghost/releases/tag/v5.71.0)
(commit: 1b82efe5d2)
- [Project
details](https://www.notion.so/ghost/Recommentions-5be89ec0d02a4c9b9310a964f9b22901?pvs=4)
2024-07-10 12:24:27 +00:00
Daniël van der Winden
8feb37cf59
Changed button labels in Navigation modal (#20579)
Fixes
https://linear.app/tryghost/issue/DES-474/update-navigation-modal-to-use-close-and-save-buttons

We've changed buttons throughout the product to Close/Save, rather than
Cancel/OK. This applies the same pattern to the Navigation modal in the
Admin.
2024-07-10 11:12:46 +00: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
3aca1411fc
Updated Portal readme with updated develop and release instructions (#20576)
no issue
2024-07-10 10:05:41 +00:00
Daniël van der Winden
13bad88baf
Fixed comments UI regression (#20574)
Fixes
https://linear.app/tryghost/issue/DES-433/mobile-regression-in-comments-ui

Comments modal was previously using isMobile helper, which only works on
pageload. Code is now adjusted to use Tailwind media queries to
show/hide example profiles at the right resolutions.
2024-07-10 11:22:14 +02:00
Djordje Vlaisavljevic
c6e001280c Improved alignment and spacing of ViewContainer component
ref https://linear.app/tryghost/issue/MOM-261/improve-alignment-and-spacing-of-viewcontainer-component

- It now looks a lot better when it's set to be page-level and has tabs and actions
2024-07-09 20:48:40 +01:00
Fabien O'Carroll
f87a7dcd18 Added guard against null icon for actor
Sometimes the actors icon can be null, and we need to handle that
2024-07-09 16:58:58 +07:00
Daniël van der Winden
4084a3d00f
Fixes complimentary subscription display issues (#20563)
Fixes
https://linear.app/tryghost/issue/DES-324/complimentary-plan-issues

We were showing renewal copy for subscriptions that are forever
complimentary. We also had a trailing en-dash in the Member detail
screen when their subscription was complimentary and had no end date.

Those things are solved now. We don't show dates or renewal copy when we
don't need to.
2024-07-09 11:53:02 +02:00
Sag
8a3ad6df95
Updated README of Comments UI with release instructions (#20560)
no issue
2024-07-08 16:15:23 +00:00
Daniël van der Winden
0aef3d3bee
Error copy updates for Newsletter settings (#20559)
Fixes
https://linear.app/tryghost/issue/DES-550/mechanical-error-message-in-newsletter-detail-modal

Errors in the newsletter detail modal sounded mechanical and were
inconsistent with other error messages. That is now fixed, and they
sound more human.
2024-07-08 15:33:26 +00:00
Daniël van der Winden
dfb0f93c06
Updated support email error messages (#20558)
Fixes
https://linear.app/tryghost/issue/DES-537/inconsistent-error-messages-for-invalid-email

We were showing inconsistent error messages when changing the support
email address in Portal settings. They are now consistently shown
inline, rather than in a toast.
2024-07-08 14:16:38 +00:00
Djordje Vlaisavljevic
a6c6114e6f
Added alternative layout for displaying ActivityPub articles (#20556)
ref https://linear.app/tryghost/issue/MOM-244/add-alternative-inboxfeed-design, https://linear.app/tryghost/issue/MOM-256/fix-typescript-not-being-able-to-resolve-the-type

- Added a toggle for switching to an alternative layout for displaying
articles in the inbox
- Fixed actor icons not showing up in the inbox
- Fixed Typescript not being able to resolve the type for images
- Added Jest to make tests run

---------

Co-authored-by: Princi Vershwal <vershwal.princi@gmail.com>
2024-07-08 15:11:01 +01:00
Kevin Ansfield
191a301242
Cleaned up hasPortalImprovements GA feature flag (#20548)
no issue

- the feature has been GA for a long time now so the conditionals are no longer required
2024-07-04 16:21:48 +00:00
Kevin Ansfield
3b87c9be53
Cleaned up websockets experiment (#20547)
no issue

- we're no longer making use of the websockets experiment so it's just bloat
- this is the whole feature in a single commit in case we need to revive it at some point
2024-07-04 16:08:06 +00:00
Princi Vershwal
3c19d952b1
Added fix for Infinite loop when changing value of new navigation item's field value
fixed: https://linear.app/tryghost/issue/ENG-1351/🐛-infinite-loop-when-changing-value-of-new-navigation-items-field
2024-07-04 12:07:33 +00:00
Fabien 'egg' O'Carroll
3e4b8d825d
Fixed Follow for ActivityPub (#20544)
We need to make requests to the frontend URL, not the Admin API - but
the Admin X Framework doesn't currently support that, so instead we'll
use a simple `fetch` for now.

---------

Co-authored-by: Princi Vershwal <vershwal.princi@gmail.com>
2024-07-04 10:58:18 +00:00
renovate[bot]
9922c98a6e Update dependency @uiw/react-codemirror to v4.23.0 2024-07-04 07:31:40 +00:00
Kevin Ansfield
e6df014f84 Cleaned up newsletterExcerpt flag
no issue

- feature is GA so the flag and related conditionals are no longer required
2024-07-03 18:22:39 +01:00
Aileen Booker
194205769b Added test assertion to verify limit modal redirects to /pro route
ref ENG-1035

We didn't have a test assertion for when a user is prompted with a limit upgrade modal, which verifies that a click on the `Upgrade` button will redirect correctly to the Billing App (`\pro` route).
2024-07-03 12:40:42 -04:00
renovate[bot]
7fde7665e2 Update dependency @uiw/react-codemirror to v4.22.2 2024-07-02 16:16:05 +00:00
Sanne de Vries
a046ee324e
Fix scroll on settings page for editor users (#20516)
REF DES-352
2024-07-02 14:37:56 +00:00
Sodbileg Gansukh
04fdd2e29e
Display more useful error messages upon theme activation (#20509)
ref DES-75
2024-07-02 08:45:33 +00:00
Kevin Ansfield
2fd9116499
🐛 Fixed unwanted extra blank paragraphs when copy/pasting from Google Docs (#20505)
closes https://linear.app/tryghost/issue/ENG-1255

- updated Koenig packages including:
  - addition of `/preview` for public preview card
  - fix for HTML import from Google Docs
  - fix for embed thumbnails being cut off in email
  - fix for wide image card width on medium screens
- multiple fixes for unhandled (but non user-visible) errors causing noise in console and error logging
2024-07-01 21:14:07 +01:00
Peter Zimon
fca8941740
Updated integration modals buttons (#20502)
DES-27

Updated buttons in integrations from [Cancel] and [Save & close] to
[Close] and [Save] to be consistent with the rest of the Settings UI.
2024-07-01 17:29:53 +02:00
Daniël van der Winden
09f2ccfca4
Updated copy for default recipients hint (#20496)
Fixes
https://linear.app/tryghost/issue/DES-179/inappropriate-copy-in-default-recipient-settings

The hint for _default recipients_ referenced the wrong setting. It now
reflects the right one.
2024-07-01 14:14:38 +02:00
Peter Zimon
6378d7d66f
Unify "Save" and "Close" buttons in Settings (#20430)
DES-27

There are two patterns used in settings modals for action buttons:

1. [Cancel] and [Save & close] (sometimes it's [Cancel] and [OK],
inconsistently) — example: Staff details, Tier details, Navigation,
Recommendation
2. [Close] and [Save] — example: Design settings, Portal, Newsletter
details etc.

This is confusing and leaves people confused and uncertain about what's
going to happen in one or the other case.
2024-07-01 13:35:38 +02:00
Daniel Lockyer
fa430666bf 🐛 Fixed staff user modal not showing correct example URL
fix https://linear.app/tryghost/issue/ENG-928/regression-author-url-slug-preview-broken

- simple change to append the slug to the end of the example hint
- also added test
2024-07-01 10:03:22 +02:00
renovate[bot]
f561f362f4 Update dependency postcss to v8.4.39 2024-07-01 07:28:24 +02: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
Daniel Lockyer
ad77cec008 Removed unused type field
- this is no longer used and causes a React warning because we end up
  passing it to a textarea
2024-06-27 10:34:04 +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
Djordje Vlaisavljevic
eed162ed2a Added static design for ActivityPub explore
ref https://linear.app/tryghost/issue/MOM-246/add-empty-state-design
2024-06-24 18:07:09 +01:00
Djordje Vlaisavljevic
79bc84c545 Added empty state
ref https://linear.app/tryghost/issue/MOM-246/add-empty-state-design
2024-06-24 18:07:09 +01:00
Fabien O'Carroll
b81839f2fe Updated ActivityPub Admin X to work with Fedify API 2024-06-24 18:07:09 +01:00
renovate[bot]
e0057fd30f Update storybook monorepo to v7.6.20 2024-06-24 14:55:49 +02:00
renovate[bot]
ccf2d22f4b Update sentry-javascript monorepo to v7.118.0 2024-06-21 13:07:47 +01:00
Kevin Ansfield
414b2ff514 Moved internal linking feature out of beta
no issue

Full details coming soon to https://ghost.org/changelog

- Link toolbar and bookmark cards now let you search your existing posts/pages/tags/authors in addition to manually entering the URL
- Typing "@" inside your content lets you quickly search and add a text link
- Typing "@" on a blank paragraph provides a quick way to search and add a bookmark
2024-06-20 17:50:11 +01:00
Kevin Ansfield
524fe6ee19 Cleaned up onboardingChecklist GA labs flag
no issue

- removed labs flag
- removed labs flag conditionals
- removed code related to old setup/done screen
- fixed tests that weren't correctly running against the GA flag code
2024-06-20 11:42:42 +01:00
Steve Larson
a33378a497
Updated addtl payment methods feature description (#20419)
no ref
2024-06-19 15:26:36 -05:00
Kevin Ansfield
a896e1ccb7 Added "@" shortcut to trigger internal linking search (beta)
no issue

Typing "@" in the editor will immediately trigger an internal link search to make it faster to link to one of your articles. After typing "@" continue typing to search, results can be selected using Up/Down arrow keys or the mouse, then pressing Enter or clicking will insert the selected result's title pre-linked. Pressing Escape or moving the cursor out of the search box will cancel the search.

- removed labs flag
- updated Koenig feature flag for at-linking to use the same flag as our internal linking beta
2024-06-19 14:58:04 +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
Peter Zimon
73a88d0c13
Refined newsletter typography (#20406)
DES-459

The font size of subtitles/excerpts in newsletters was similar to the
body font size which doesn't reflect the content hierarchy
appropriately. Also, the spacing should be adjusted to represent that
the title and the subtitle belong together.
2024-06-19 11:57:29 +02: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
Peter Zimon
cd8a54d7cc
Updated borders in comments CTA box (#20274)
DES-189

Our use of borders makes it very difficult to style a theme that looks
good with all states. Theme developers need a border to separate
comments from the content, but the current comments output includes
borders. It's possible to make it look ok in most of the time, but it's
difficult to work with. This change updates borders from the comments
CTA box with the following rules:

- Logged out without comments: no borders
- Logged out with comments: top border only
- Logged in without comments: no borders
- Logged in with comments: no borders
2024-06-18 13:43:53 +02:00
renovate[bot]
9b04cc296f Update dependency @types/validator to v13.12.0 2024-06-17 08:48:37 +02:00
Kevin Ansfield
83ee649e82 Added improved search into internal linking beta
closes https://linear.app/tryghost/issue/MOM-117
closes https://linear.app/tryghost/issue/MOM-70

- updated flag handling to move the improved search into the `internalLinking` beta flag
- removed now-unused `internalLinkingSearchImprovements` flag
2024-06-13 17:30:15 +01:00
Ronald Langeveld
e615c36f83
Published new version of Comments-UI (#20380)
no issue

- Bumped from 0.17.0 to 0.17.1
2024-06-13 09:25:31 +07:00
Ronald Langeveld
e1e31c530a
Moved pagination button back to top in comments (#20379)
no issue

- moving the pagination button back to the top since it's not needed
now.
- Will move it to bottom in future along with additional comments enhancements.
2024-06-13 09:10:30 +07:00
Ronald Langeveld
a33ae00dee
Bumped Comments UI to 0.17 minor (#20373)
ref MOM-211
2024-06-12 11:33:16 +00:00
renovate[bot]
c93fb848d3 Update dependency @doist/react-interpolate to v1.1.1 2024-06-12 13:08:45 +02:00
Ronald Langeveld
63d912b2d8
Added content visibility feature flag (#20371)
ref MOM-221

- added new feature flag for content visibility.
2024-06-12 16:55:47 +07:00
Kevin Ansfield
54812dc67a
Added improved Admin search behind labs flag (#20363)
ref https://linear.app/tryghost/issue/MOM-117
ref https://linear.app/tryghost/issue/MOM-70

- moved current search into new `search-provider` service and updated `search` service to use the provider service internally
- added `search-provider-beta` service
  - uses `flexsearch` as the underlying index for each document so we have better indexing and matching compared to the naive exact-match search we had previously
  - adds `excerpt` matching for posts and pages
  - keeps results output the same as the original search provider
- added `internalLinkingSearchImprovements` labs flag so we can test this internally before reaching our internal linking beta testers
- updated `search` service to switch between providers based on labs flag
2024-06-11 15:18:28 +00:00
Ronald Langeveld
bea074b23d
Updated default comments from 5 to 20 (#20359)
ref MOM-135 MOM-211 MOM-213

- Bumped up the default comments count from 5 to 20 comments before
pagination kicks in.
- Moved the pagination (`Show X previous comments)` to bottom of the
page (soon to be reworded to `Show x more comments`)
- Updated tests and added a new helper for adding multiple comments easier.
2024-06-11 18:39:59 +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
renovate[bot]
496f4fde86 Update dependency tailwindcss to v3.4.4 2024-06-10 15:18:16 +02:00
Sodbileg Gansukh
81b46c53cc
Fixed double shadow issue on toast component story (#20352)
no issues
2024-06-10 03:46:13 +00:00
Michael Barrett
58dcbe9096
Published comments-ui v0.16.2 (#20345)
no refs

Published comments-ui v0.16.2 to include recently added translations
2024-06-06 21:38:29 +01:00
Michael Barrett
f2090fe92b
Published signup-form v0.1.4 (#20346)
no refs

Published signup-form v0.1.4 to include recently added translations
2024-06-06 21:38:14 +01:00
Peter Zimon
909f2fa028
Fix copy to "Post excerpt" in newsletter settings (#20344)
MOM-209

Currently if the "Show post excerpt inline" is on we show "Subtitle" in
newsletter settings, it should always be "Post excerpt" to avoid
confusion.
2024-06-06 06:40:52 +00:00
Kevin Ansfield
a7a1166310
Added beta feature toggle for moving excerpt field into editor (#20341)
closes https://linear.app/tryghost/issue/MOM-179

Full details coming soon to https://ghost.org/changelog

- Adds a toggle to labs setting that moves the excerpt input below the post title in the editor
2024-06-05 20:14:34 +01: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
0470a4a431
Added event tracking for feature toggles (#20335)
no issue
2024-06-05 16:59:03 +00:00
Michael Barrett
bb43395a2d
Published Portal v2.37.8 (#20336)
no refs

Published Portal v2.37.8 to include recent translations
2024-06-05 17:58:17 +01:00
Peter Zimon
0efec254ec
Refine subtitle typography in newsletters (#20321)
MOM-190
MOM-192

- The subtitle style (serif/sans) was tied to the body style which was
misleading. It makes more sense to connect it to the title style both
from the UX and the output POV.
- Newsletter design preview was not updated according to subtitle
styles.

---------

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2024-06-04 15:39:14 +02: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
Kevin Ansfield
80e115fba5 Fixed subtitle preview not respecting body font
closes https://linear.app/tryghost/issue/MOM-189
2024-06-04 09:57:46 +01:00
Kevin Ansfield
fc7d9d12bb Updated subtitle toggle copy
closes https://linear.app/tryghost/issue/MOM-188

- subtitle setting copy reflects the subtitle/excerpt terminology based on the subtitle-in-editor beta flag
2024-06-04 09:57:46 +01:00
Kevin Ansfield
417c83d3e9 Adjusted subtitle placeholder copy in newsletter design preview
closes https://linear.app/tryghost/issue/MOM-187
2024-06-04 09:57:46 +01: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
Chris Raible
9891abd61c
Updated error message shown when trying to overwrite a default theme (#20301)
ref
https://linear.app/tryghost/issue/ONC-57/trying-to-overwrite-the-default-source-theme-crashes-ghost

- No functional change, just an update to the error message to follow
our writing guidelines for error messages
2024-05-31 21:01:44 +00:00
Chris Raible
680651aa58
🐛 Fixed admin error when trying to overwrite a default theme (#20299)
ref
https://linear.app/tryghost/issue/ONC-57/trying-to-overwrite-the-default-source-theme-crashes-ghost

- When attempting to overwrite a default theme (source or casper), admin
would crash because this is not allowed by the API and the error was not
handled
- This fixes that by showing a modal with an error message when the user
tries to overwrite a default theme, and instructs the user to rename the
zip file
2024-05-30 15:55:45 -07:00
Kevin Ansfield
1a1ca3e91d Added name attribute to feature flag checkboxes
no issue

- added `name` prop to `<Toggle>` component that corresponds to the checkbox's `name` attribute
- updated `<FeatureToggle>` to set the `name` prop on it's `<Toggle>` component to the feature flag that was passed in so all feature toggles get a useful name attribute without having to manually specify one
2024-05-30 16:31:36 +01:00
Kevin Ansfield
2db35abc3c Added internal linking beta
no issue

When enabled the URL inputs in the link toolbar and bookmark card will search for posts, pages, authors, and tags, allowing for faster link creation and less interruption to workflow.

- moved internal linking feature from private to public beta
2024-05-30 15:20:21 +01:00
Sanne de Vries
6bc91a1e3b
Synced newsletter preview in settings with newsletter template (#20290)
REF MOM-147

- Updated newsletter preview in settings to match the newsletter
template
- Updated spacing for a few edge-case newsletter template combinations
2024-05-30 13:12:00 +02:00
Sanne de Vries
a8170752fa
Updated newsletter subtitle settings (#20289)
REF MOM-168
- Updated the settings order to reflect the newsletter order
- Hid the subtitle setting if post title section is toggled off
2024-05-30 10:01:59 +00:00
Sag
46f0efe463
Fixed flaky Portal test (#20286)
no issue

- the signup flow tests check whether the benefits of the available
tiers are rendering correctly. The test is based on a text match, which
sometimes fails because of duplicate benefit descriptions
- this fix makes the benefit descriptions less likely to be the same, by
using a timestamp in the randomisation function
2024-05-30 06:25:50 +02:00
Kevin Ansfield
55015ccbcc
Added '@' internal link shortcut to editor (#20272)
closes https://linear.app/tryghost/issue/MOM-83

- added additional labs flag to allow internal testing prior to private beta release
- bumped Koenig packages containing support for @-link feature
2024-05-29 18:13:52 +01:00
Sanne de Vries
acac7801f4
Split subhead feature into two feature flags (#20279)
REF MOM-119
- Split subhead feature flag into two: editorSubtitle and
newsletterSubtitle
- Updated UI copy, feature flag names and class names from subhead to
subtitle
2024-05-29 17:59:25 +02: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
Sanne de Vries
3ad77bd2c2
Updated email newsletter spacing and font sizes (#20273)
REF MOM-146

- These styling changes are a general newsletter template improvement,
and are also laying the groundwork for including a subhead in the
newsletter header. Both the newsletter template as well as the
newsletter preview in settings have been updated.
2024-05-28 14:29:49 +00:00
renovate[bot]
4b059e1654 Pin dependencies 2024-05-28 08:53:24 +02:00
renovate[bot]
6792261f05 Pin dependency @tryghost/kg-unsplash-selector to 0.1.17 2024-05-27 18:47:45 +02:00
renovate[bot]
ba7c659b35 Pin dependency @codemirror/lang-html to 6.4.9 2024-05-27 18:47:30 +02:00
renovate[bot]
c472a3ac4b
Pinned dependencies (#20257) 2024-05-27 15:29:32 +00:00
renovate[bot]
f52adcc54f Update dependency @uiw/react-codemirror to ^4.22.1 2024-05-27 15:12:14 +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
renovate[bot]
3e3bcb81fd Update dependency jsdom to v24 2024-05-27 09:07:18 +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
Peter Zimon
d9390d2262
Improve discoverability of unsaved settings (#20153)
DES-195

The purpose of this change is to (1) reduce the overwhelming use of green on the settings UI in general and (2) to make unsaved sections more focused and discoverable and focused when trying to quit Settings without saving so that it's easier to find.

---------

Co-authored-by: Daniël van der Winden <danielvanderwinden@ghost.org>
2024-05-23 10:20:27 +02:00
Peter Zimon
277e169f7b
Fixed static copy in newsletter preview (#20238)
DES-342

A static site title ("The Local Host") was displayed in the newsletter
preview instead of the actual site title. Also, moved over the "Support
independent publishing" button to design tab in newsletter settings.
2024-05-22 11:14:28 +00:00
Peter Zimon
8bc035ccb7
Update twitter.com to x.com (#20234)
DES-351

There's a frontend validation in Settings that rewrites the Twitter (X)
URL in social accounts to match the format: twitter.com. As of May 17, X
officially changed their domain to x.com so this validation is outdated.

---------

Co-authored-by: Ronald Langeveld <hi@ronaldlangeveld.com>
2024-05-22 10:00:13 +02:00
renovate[bot]
ad48d8eb25 Update sentry-javascript monorepo to v7.116.0 2024-05-21 14:24:23 +01:00
Peter Zimon
fe3d6a1ffe
Fix copy in newsletter preview content (#20213)
no ref.

The contents of the newsletter preview referenced settings on the left
but in new Settings it's on the right.
2024-05-15 18:58:03 +00:00
Kevin Ansfield
d2da9d3c17
Updated metadata shown on hover in internal link lists (#20204)
closes https://linear.app/tryghost/issue/MOM-80

- updated internal linking search results items
  - removed visibility text from meta data
  - added additional icon for paid/specific tier visibility
  - added titles to icons
- bumped `@tryghost/koenig-lexical` to include support for meta icon titles
- bumped other Koenig packages due to sub-dependency updates
2024-05-14 16:07:04 +00:00
renovate[bot]
0beba6b605 Update tiptap monorepo to v2.4.0 2024-05-14 13:29:36 +00: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
Steve Larson
842290cbef
Improved performance for filter strings with multiple neq statements (#20198)
ref https://linear.app/tryghost/issue/CFR-27
- updated packages to include performance improvement for NQL filter
strings including multiple neq filters for the same resource
- bumped `bookshelf-plugins`
- bumped NQL versions

We identified a performance fix that allows us to combine not equal
(neq) filters for the same resource in a logically-equivalent way that
also has far more performant resulting SQL.

We're effectively automatically combining strings like
'tag:-tag1+tag:-tag2` into 'tag:-[tag1,tag2]'.
2024-05-13 10:35:27 -05:00
renovate[bot]
484ba8873b Update Types packages 2024-05-13 09:04:16 +02:00
Djordje Vlaisavljevic
1cbaa1e68e
Released Portal v2.37.7 (#20185)
Changes:
- Removed extra spacing before email supression link in portal (#20082)
2024-05-09 15:40:29 +00:00
renovate[bot]
512c3e1413 Update CSS preprocessors 2024-05-09 10:36:59 +02:00
renovate[bot]
4c1ecabfc7 Update sentry-javascript monorepo to v7.114.0 2024-05-09 10:16:37 +02:00
renovate[bot]
9bf5a61d99 Update tiptap monorepo to v2.3.2 2024-05-08 16:16:50 +00: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
Daniel Lockyer
88ff804242 Simplified Nx dev config for AdminX ActivityPub package
- we can avoid a lot of the unnecessary duplication by using the caret,
  which automatically includes dependencies
- also adds a config for `dev`
2024-05-06 15:17:25 +02:00
Chris Raible
b9f7ea65e9
Revert "Added new member signup flow behind labs flag (#19986)" (#20130)
ref https://linear.app/tryghost/issue/KTLO-1/members-spam-signups

This reverts commit 01d0b2b304.

- Removed the new member signup flow because it didn't solve the
problems with spam signups
2024-05-02 13:02:32 -07:00
renovate[bot]
ec626bd0cf Update react monorepo to v18.3.1 2024-05-02 11:46:13 +02:00
renovate[bot]
b4480595bb Update storybook monorepo to v7.6.19 2024-05-02 11:45:51 +02:00
Sag
c790959e09
Fixed error rendering for theme uploads (#20097)
ref https://linear.app/tryghost/issue/ENG-842/gluster-file-name-length-limit

- when uploading a theme, Admin did not always render errors properly, zip extraction errors for example
- with this change, we do not change the API responses but rather update Admin to handle both types of error responses
2024-05-01 13:13:00 +02:00
renovate[bot]
48eb095327 Update dependency storybook to v7.6.18 2024-05-01 08:50:19 +02:00
renovate[bot]
60a3b5a913 Update TryGhost packages 2024-05-01 08:49:04 +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]
eccb48e91b Update tiptap monorepo to v2.3.1 2024-04-30 19:13:27 +00:00
Sodbileg Gansukh
eab5c8ba52
Fixed various design issues in Offers (#19922)
ref DES-101

- used the default TabView component on Offers list for better consistency
- added new property to TabView component which makes it possible to have extra content on the top right
- updated copy of the empty states
2024-04-29 13:00:55 +08:00
Daniel Lockyer
892b9ab397 Moved internalLinking and stripeAutomaticTax flags to private beta
refs https://ghost.slack.com/archives/C02G9E68C/p1714051665654659?thread_ts=1713970812.191919&cid=C02G9E68C

- this enables us to enable the flags on sites without the need to
  enable developer experiments
- added `(private beta)` to the end of the relevant UI flags, because
  they're still in alpha in the UI despite being in beta in backend
2024-04-25 16:37:55 +02:00
Djordje Vlaisavljevic
7a3bbfde10
Added ActivityPub playground (#20081)
ref MOM61

- Adds admin-x react app we’ll use as ActivityPub playground to the
sidebar nav behind the feature flag.
- Wired up routing to Ember
- Setup the project as `admin-x-activitypub`

---------

Co-authored-by: Ronald Langeveld <hi@ronaldlangeveld.com>
2024-04-25 16:44:29 +08:00
Djordje Vlaisavljevic
7f915215f3 Made subscription link in newsletter preview use brand color
closes https://linear.app/tryghost/issue/DES-220/email-preview-manage-subscription-link-in-sub-details-is-hardcoded-to
2024-04-24 16:42:32 +01:00
Djordje Vlaisavljevic
4b4af65fce Fixed spacing bug
closes https://linear.app/tryghost/issue/DES-258/not-receiving-emails-link-is-offset-on-account-page
2024-04-24 13:13:21 +01:00
Peter Zimon
9f19e334c1
Improve technical errors (#20046)
ref DES-229

Some of the error messages in Ghost and more specifically in Settings
were very technical, e.g.
`ValidationError: Validation (isEmpty) failed for locale`

This PR deals with some of the occurances for a more human error
communication.
2024-04-24 08:42:22 +02:00
renovate[bot]
571171bad5 Update storybook monorepo to v7.6.18 2024-04-23 17:10:07 +02:00
renovate[bot]
25657b6a99 Update sentry-javascript monorepo to v7.112.1 2024-04-23 16:39:50 +02:00
renovate[bot]
3960e8caa1 Update sentry-javascript monorepo to v7.112.0 2024-04-23 14:11:30 +02:00
renovate[bot]
197d510c9c Update dependency tailwindcss to v3.4.3 2024-04-23 11:27:43 +02:00
renovate[bot]
3fc9262204 Update dependency clsx to v2.1.1 2024-04-23 07:09:19 +00:00
renovate[bot]
80fe672525 Update sentry-javascript monorepo to v7.111.0 2024-04-19 08:54:26 +02:00
Daniel Lockyer
7ab6a219b0 Updated @doist/react-interpolate to v1.0.0
refs Doist/react-interpolate@ff466d4
refs https://ghost.slack.com/archives/CFH10N79S/p1713450302767339?thread_ts=1713439122.675249&cid=CFH10N79S
refs https://linear.app/tryghost/issue/ENG-765/add-support-for-node-20

- this version has support for Node 20, which we need in order to add
  support for it
2024-04-18 17:00:54 +02:00
Fabien O'Carroll
0fb290a841 Added Feature Flag for ActivityPub
ref MOM-31
ref https://linear.app/tryghost/issue/MOM-31

Ronseal - let's goooooooo
2024-04-17 14:00:07 +07:00
renovate[bot]
2af9c04477 Update CSS preprocessors 2024-04-16 09:44:36 +02:00
renovate[bot]
3f960818eb Update dependency vite to v4.5.3 [SECURITY] 2024-04-16 09:21:49 +02:00
renovate[bot]
39a9a9bfd8 Update sentry-javascript monorepo to v7.110.1 2024-04-16 09:09:22 +02:00
renovate[bot]
e7bb7a47ed Update dependency typescript to v5.4.5 2024-04-16 09:08:58 +02:00
renovate[bot]
3e4fc467c1 Update dependency @headlessui/react to v1.7.19 2024-04-15 17:47:58 +00:00
renovate[bot]
0c119e2464 Update dependency typescript to v5.4.4 2024-04-15 09:47:55 +02:00
renovate[bot]
b008c00feb Update sentry-javascript monorepo to v7.110.0 2024-04-15 09:47:44 +02:00
Sodbileg Gansukh
f088bca883
Fixed esc handler behavior on preview and advanced theme modals (#20014)
ref DES-26, DES-57
2024-04-12 13:22:44 +08:00
Chris Raible
b8ad03b0f3
Added PostHog to admin-x-settings trackEvent function (#20013)
ref https://linear.app/tryghost/issue/PA-53/add-posthog-tracking-to-trackevent-in-admin-x-settings-and-lexical

- There was a pre-existing `trackEvent` function in `admin-x-settings`
that was using Plausible for tracking events.
- This PR adds PostHog to the same function, any calls to `trackEvent`
will send the event name and properties to PostHog as well.
2024-04-11 19:35:30 -07:00
Ronald Langeveld
d12b79e036
🐛 Fixed First Promoter always showing Active (#20010)
ref https://github.com/TryGhost/Ghost/issues/19797

- Fixed FirstPromoter always showing Active in Integration Settings list
- This was due to the position of the variable in the array being in the
wrong positon and indexed incorrectly.
- Added additional testing to avoid it from cropping up again.
2024-04-11 13:09:12 +08:00
Kevin Ansfield
ebd36f2503
Added internalLinking labs flag (#20006)
ref https://linear.app/tryghost/issue/MOM-1
2024-04-10 12:13:37 +01:00
renovate[bot]
e0b8f612af Update tiptap monorepo to v2.3.0 2024-04-09 12:33:17 +00:00
Kevin Ansfield
85b8b61631
Removed admin-auth error logs for unknown message events (#20000)
closes https://linear.app/tryghost/issue/ENG-780

- the `admin-auth` frame was set up to log when any `message` event was handled but couldn't be parsed as JSON. For our own events that's fine but `message` events are also frequently triggered by browser extensions meaning the DevTools console log could become quite noisy for no reason
- removed the logging as it's noisy and not useful outside of development
2024-04-08 16:50:49 +00:00
Djordje Vlaisavljevic
8ba692f0ff Fixed portal links in dark mode
fixes https://linear.app/tryghost/issue/DES-197/🐛-portal-links-look-broken-in-dark-mode
2024-04-08 16:29:00 +01:00
Ronald Langeveld
d319718281
🐛 Fixed Gscan type error crashing settings (#19994)
ref ENG-189

- A type error was flagged by Sentry where Settingscrashed where the API
data wasn't formatted correctly and the error boundary didn't kick in.
- This adds additional safety to ensure the required data exists before
attempting to render the elements.
2024-04-08 16:01:41 +08:00
renovate[bot]
58e5aa5b53 Update tiptap monorepo to v2.2.6 2024-04-08 00:39:32 +00:00
Chris Raible
01d0b2b304
Added new member signup flow behind labs flag (#19986)
ref https://linear.app/tryghost/issue/KTLO-1/members-spam-signups

- Some customers are seeing many spammy signups ("hundreds a day") — our
hypothesis is that bots and/or email link checkers are able to signup by
simply following the link in the email without even loading the page in
a browser.
- Currently new members signup by clicking a magic link in an email,
which is a simple GET request. When the user (or a bot) clicks that link, Ghost
creates the member and signs them in for the first time.
- This change, behind an alpha flag, requires a new member to click the
link in the email, which takes them to a new frontend route `/confirm_signup/`, then submit a form on the page which sends a POST request to the
server. If JavaScript is enabled, the form will be submitted
automatically so the only change to the user is an extra flash/redirect
before being signed in and redirected to the homepage.
- This change is behind the alpha flag `membersSpamPrevention` so we can
test it out on a few customer's sites and see if it helps reduce the
spam signups. With the flag off, the signup flow remains the same as
before.
2024-04-04 15:25:41 -07:00
Fabien O'Carroll
a262a64eea Moved additional payment methods into beta
ref ENG-812
ref https://linear.app/tryghost/issue/ENG-812

We want to roll this out as a beta feature
2024-04-04 23:54:01 +07:00
Fabien O'Carroll
781599de62 Added a feature flag for additional payment methods
ref ENG-812
ref https://linear.app/tryghost/issue/ENG-812
2024-04-04 23:13:10 +07:00
Sag
267d677705
Removed leftover alpha lab (#19978)
refs https://ghost.slack.com/archives/C02G9E68C/p1712150935653429

- the 'newEmailAddresses' feature has been released to GA, end of
January
(7d0be3f1a9)
- but, the flag was still shown as alpha in Settings
2024-04-03 16:10:58 +00:00
Ronald Langeveld
a732164d54
🐛 Fixed jerky scrolling in Site Design for Safari (#19974)
no issue

- Keeping state of the scroll location to keep in sync with iframe
buffering caused performance issues in Safari.
- This adds a debounce to when the scroll location is updated which
fixes jerky scrolling in Safari.
2024-04-03 02:07:18 +00:00
renovate[bot]
541395434d Update sentry-javascript monorepo to v7.109.0 2024-04-01 14:10:07 +02:00
Sag
7e2d842db2
🐛 Fixed keeping existing attribution in recommendations (#19945)
ref https://linear.app/tryghost/issue/ENG-799

- recommendations were being stripped of query parameters and hash
fragments before save
- in particular, query parameters for attribution such as ?ref were not
being stored
2024-03-28 13:54:23 +01:00
renovate[bot]
bcf0fcb7d2 Update dependency tailwindcss to v3.4.2 2024-03-28 10:13:19 +01:00
Peter Zimon
7dcddb2e75
Improved staff empty display (#19810)
ref https://linear.app/tryghost/issue/DES-84

- changed display to not show tabs when there's no staff users (only owner)
- automatically switch to Invites tab in the Staff section after sending an invite
- updated toast messages on failure

---------

Co-authored-by: Steve Larson <9larsons@gmail.com>
2024-03-27 08:21:38 -05:00
Princi Vershwal
64122b1dc3
ENG-794 Fixed validation for offer percentage amount (#19927) 2024-03-26 15:23:08 +00:00
renovate[bot]
97c63e1735 chore(deps): update sentry-javascript monorepo to v7.108.0 2024-03-25 08:34:53 +00:00
Princi Vershwal
2798a8cd09
ENG-767 Offers cannot be created if there are no active paid tiers (#19900) 2024-03-21 15:07:32 +05:30
renovate[bot]
092f982fec Update dependency typescript to v5.4.3 2024-03-21 09:28:10 +01:00
Sag
fd777ccc54
Released Portal v2.37.6 (#19883)
Changes:
- Fixed button spacing in Portal unsubscribe popup footer
(ae5df293c3)
- Fix free tier benefit not showing up
(e4b908479e)
2024-03-19 09:40:27 +00:00
Peter Zimon
e4b908479e
Fix free tier benefit not showing up (#19879)
ref ENG-760

The benefits for Free tier was not showing up for some old & new logic.

---------

Co-authored-by: Sag <guptazy@gmail.com>
2024-03-19 09:51:59 +01:00
Djordje Vlaisavljevic
a67342b06a
Add WIP onboarding checklist behind the flag (#19801)
ref https://linear.app/tryghost/issue/IPC-66/onboarding-checklist-v1

- Adds a basic version of a new onboarding checklist behind the feature
flag, without incomplete/complete state logic
- Links to Design settings, Members screen and new post
- Opens amodal that we’ll use as Share modal

---------

Co-authored-by: Daniël van der Winden <danielvanderwinden@ghost.org>
2024-03-18 14:53:01 +00:00
Sodbileg Gansukh
04c9bf0197
Fixed empty state flashing issue on offers list (#19863)
ref DES-101, DES-105
2024-03-14 09:25:48 +00:00
Sodbileg Gansukh
2029a5846a
Fixed Portal preview flashing issue in Offers (#19862)
ref DES-101
2024-03-14 14:29:17 +08:00
Fabien "egg" O'Carroll
0fb0c6c2b5 Added NestJS Playground
no-issue

This adds the barebones of a NestJS application wired up to the Admin API
behind a feature flag, so that we can experiement with how to use Nest in the
context of Ghost
2024-03-13 19:44:06 +07:00
Peter Zimon
9d9707e6f4
Settings keyboard shortcuts (#19836)
ref DES-166

Accessing settings via a keyboard shortcut is a great productivity
booster for advanced users and it is missing from Ghost today.
2024-03-13 08:46:22 +01:00
Ronald Langeveld
19da5c6af4
Extracted Unsplash Selector from AdminX (#19849)
no issue

- Adds the unsplash selector as a standalone typescript package inside
the Koenig monorepo.
- Currently we have 3 versions of the Unsplash Selector. One in
Koenig-Lexical, one in AdminX and the original Ember version.
- We can now start phasing out the application coupled version of the
selector and replace it with the reusable version.
- We can now import it via npm to any React application.
- This commit removes the Unsplash components from AdminX and imports it
instead.

This is the second commit for this as the previous commit broke styles
due to normalise styles leaking into the Ember app. Disabling preflight
(https://github.com/TryGhost/Koenig/pull/1169) in Tailwind fixed it.
2024-03-12 22:40:33 +02:00
Kevin Ansfield
9203eea673
Released comments-ui 0.16.1 (#19847)
no issue

- includes fix for IFrame modal throwing errors and making comments block disappear when performing certain actions
2024-03-12 18:04:20 +00:00
Kevin Ansfield
dd3bc06761
🐛 Fixed comments block disappearing when performing certain actions (#19846)
closes https://linear.app/tryghost/issue/ENG-739

- `props.innerRef` in `<IFrame>` was inadvertently assumed to always exist, sometimes throwing an error on render when certain popups like the profile settings modal were opened resulting in the app crashing and the whole comments block disappearing
- added a guard to ensure the ref exists before trying to set it
- updated tests so the profile modal route is tested
2024-03-12 17:39:36 +00:00
Ronald Langeveld
36f11a65a0
Revert "Extracted Unsplash Selector from AdminX (#19838)" (#19844)
no issue

- caused a styling regression, making changes then will merge again.
2024-03-12 15:35:09 +00:00
Kevin Ansfield
ef143978e7
🎨 Reduced requests and 403 responses for comments auth check (#19840)
closes https://linear.app/tryghost/issue/ENG-721
ref https://linear.app/tryghost/issue/ENG-708

Comments-UI loads `/ghost/admin-frame/` in an iframe to check if a Staff User is authenticated in order to  show moderation options. That iframe request loads a HTML page which in turn contains a script that fires off an API request that attempts to fetch the logged-in user details, resulting in a 403 "error" showing up when not authenticated. In the vast majority of cases there will be no staff user authenticated so lots of extra requests and "errors" are seen unnecessarily.

- adjusted the `/ghost/auth-frame/` endpoint to check if the request contains an Admin session cookie
  - if it does, continue as before with rendering the HTML page so the script is loaded
  - if it doesn't, return an empty 204 response avoiding the script request and subsequent 403-generating API request
- eliminates the 403 error being generated for all typical visitor traffic, the error should only be seen when an Admin was previously logged in but their cookie is no longer valid (either from logging out, or going past the 6month validity period)
2024-03-12 12:27:18 +00:00
Ronald Langeveld
6719bcf46e
Extracted Unsplash Selector from AdminX (#19838)
no issue

- Adds the unsplash selector as a standalone typescript package inside
the Koenig monorepo.
- Currently we have 3 versions of the Unsplash Selector. One in
Koenig-Lexical, one in AdminX and the original Ember version.
- We can now start phasing out the application coupled version of the
selector and replace it with the reusable version.
- We can now import it via npm to any React application.
- This commit removes the Unsplash components from AdminX and imports it
instead.
2024-03-12 11:06:57 +00:00
renovate[bot]
0162fea441 Update dependency typescript to v5.4.2 2024-03-11 17:16:17 +01:00
renovate[bot]
439644e21c Update storybook monorepo to v7.6.17 2024-03-11 17:16:02 +01:00
Sodbileg Gansukh
be3a5664a2
Added escape key handler to select elements (#19689)
ref DES-58
2024-03-11 17:40:03 +08:00
Peter Zimon
ad491ea4f3
Fixed udpated banner z-index (#19822)
refs.
https://linear.app/tryghost/issue/DES-168/z-index-is-really-messed-up-in-settings

The update banner's z-index was conflicting with settings.
2024-03-07 14:46:48 +01:00
Ronald Langeveld
8a67901355
Updated test to check for Unsplash button in Admin (#19814)
ref DES-167

https://linear.app/tryghost/issue/DES-167/🐛-unsplash-in-admin-x-not-styled-correctly
2024-03-06 14:54:37 +00:00
Steve Larson
ae5df293c3
Fixed button spacing in Portal unsubscribe popup footer (#19815)
no ref
- The 'Get help' button was only adding margin on the left when accessed
through account management even though it is also shown on the
unsubscribe page accessed via link.
2024-03-06 14:53:02 +00:00
Steve Larson
7a36917c6a
Released Portal v2.37.5 (#19812)
ref ENG-677
- Improved unsubscribe from url workflow staying in sync with logged in
user.
- Added tests covering the unsubscribe from url workflow.
2024-03-06 14:37:04 +00:00
Sodbileg Gansukh
b90d66a846
Fixed various Unsplash design bugs (#19806)
ref DES-167

- fixed visibility of Unsplash button in publication cover setting
- fixed gallery image ratio
- fixed search input border style
- fixed icon fill color issue of the download button
- fixed insert image alignment
- fixed author thumbnail pixelation
2024-03-06 16:48:13 +08:00
Steve Larson
cbb27c2d53
Fixed TZ dependency in Portal helpers test (#19804)
no refs
- Tests run locally (US TZ) often always failed because the dates are
pushed to the en-GB locale. The test now forces the same TZ onto the
compared to date.
2024-03-05 15:44:07 -06:00
Steve Larson
2bb566f18f
Added Portal tests for newsletter subscriptions (#19802)
refs https://linear.app/tryghost/issue/ENG-677

- Portal was completely missing tests for `UnsubscribePage`
- `UnsubscribePage` is unique for Portal in that it needs to be able to
handle logged in and not-logged-in member state/interactions
- Various parts of Portal don't use a shared `GhostApi` instance, making
mocking all functionality impossible
- `UnsubscribePage` was updated to use `onAction` to bring it in line
with other Portal interactions while logged in
- Added checks for UI components for more precision in tests checking subscriptions within the UI

---------

Co-authored-by: Ronald Langeveld <hi@ronaldlangeveld.com>
2024-03-05 19:22:50 +00:00
Kevin Ansfield
857588ed60
Released comments-ui 0.16.0 (#19800)
no issue

- defers loading of `admin-auth` frame and it's API request until we are displaying some comments
  - defers the frame load and API request until the comments box is scrolled into view
  - eliminates the requests altogether for posts that have no comments
2024-03-05 16:20:19 +00:00
Kevin Ansfield
92a8a53a95
Added lazy-loading of admin auth in Comments UI (#19799)
closes ENG-711

When an Admin is authenticated in Comments-UI we only add moderation options to the displayed comments so we don't need to pre-emptively load the `admin-auth` iframe and make the `/ghost/api/admin/users/me/` request until some comments are actually visible.

- used `state.comments.length` property to defer rendering of the admin auth frame until comments have been fetched (after box is scrolled into view) and the count is > 0
2024-03-05 15:57:20 +00:00
Djordje Vlaisavljevic
50770d20b1
Reorganized and improved meta data settings so it's easier to parse DES-159
refs DES-159
2024-03-05 11:23:42 +00:00
Peter Zimon
6d6969f4b0
Portal signup page spacing fixes (#19791)
refs.
https://linear.app/tryghost/issue/DES-161/portal-signup-window-spacing-problem

The products section is returned even if there's only a free product in
the publication. This results in an extra, unnecessary space between the
signup form inputs and the signup button.
2024-03-04 16:27:30 +01:00
Ronald Langeveld
8582462619
🐛 Fixed emojis not updating in Announcement Bar (#19792)
refs
https://linear.app/tryghost/issue/ENG-358/🐛-emojis-created-with-lexicals-emoji-picker-are-not-displayed

- Changed the update method from onBlur to a 500ms denounce instead
since the onBlur would update before the emoji plugin for the koenig
editor input field manages to create the emoji.
- Switching to denouncing would ensure the preview only updates once the
input field stopped being modified.
2024-03-04 13:17:42 +00:00
Ronald Langeveld
2816c2c128
Added try/catch to iFrame buffering in Settings (#19790)
refs https://ghost.slack.com/archives/CTH5NDJMS/p1709230854358779

- Customer reported that some code they injected via the Code Injection
crashed the Preview in Ghost Settings.
- This wraps the function where the crash took place (according to
Sentry) in a try/catch to attempt to handle it gracefully.
- Added an additional Sentry log to better understand the situation
should it happen again.
2024-03-04 11:11:03 +02:00
Sanne de Vries
c7e475feb0
Remove comment icon at the top of email template (#19771)
Refs
https://linear.app/tryghost/issue/DES-80/newsletter-view-in-browser-breaking-to-next-line-with-incorrect
2024-02-29 14:45:38 +01:00
Steve Larson
c2f3ffaca7
🐛 Prevented newsletter subscriptions from getting out of sync in Portal (#19768)
refs https://linear.app/tryghost/issue/ENG-677
- UnsubscribePage is intended to be able to be used without logging in
to Portal. The app context (member state) was not synchronized when
logged in, causing conflicts in the client data vs. database.
- Now when a logged in member is found, the member object is manually
updated to reflect the API response(s).
2024-02-28 13:57:19 -06:00
Kevin Ansfield
c365972aa8
Released Comments-UI 0.15.0 (#19775)
no issue

- switches post browse requests to`/members/api/comments/post/:post_id/` to enable better cache bucketing
and invalidation
- removes `order` param from browse and replies requests
2024-02-28 18:59:01 +00:00
Kevin Ansfield
44e602b447
Switched to default ordering for comments API requests (#19774)
closes ENG-681

There's no need to provide an `order` param with every request in Comments-UI if the API has default ordering that matches our requirements. The order param makes logs more noisy/harder to read than they need to be so we want to get rid of it.

- modified comments API input serializer to add a default order param to the browse and replies endpoints when none is provided
- removed order param from the requests that Comments-UI makes
2024-02-28 18:42:02 +00:00
Fabien O'Carroll
a291914fc4 Updated Comments UI to use new endpoint
refs https://linear.app/tryghost/issue/ENG-676/

Now we have the case that there is no filter param, the simple string
approach fails. Instead we build up a URLSearchParams object which
makes it easier to handle conditional params & stringify it at the end.
2024-02-28 22:40:56 +07:00
Kevin Ansfield
b91bf74236
Released comments-ui 0.14.1 (#19770)
part of ENG-678

- comments are now lazy-loaded when the comments block is scrolled into view
2024-02-28 13:12:55 +00:00
Kevin Ansfield
5b6d8fb7a8
Added lazy-loading to comments (#19769)
closes ENG-678

The comments block is typically shown at the bottom of a post so it doesn't make sense to eagerly fetch comments from the API when we don't know if the comments block will even be viewed. By lazy-loading the data only when the comments block comes into view we can reduce both data usage for visitors and load on the site.

- uses IntersectionObserver API to delay comments app initialisation until the comments block has scrolled into view
- updated all iframe-related components to forward a `ref` so we can use the `<iframe>` element reference inside the `App` component
2024-02-28 12:52:24 +00:00
Fabien O'Carroll
6a4d36878e Removed timestamp from initial load of comments
refs https://linear.app/tryghost/issue/ENG-673

This means that the initial load of comments can be cached for everyone.

We also improve the timestamp which is used when fetching future comments,
instead of using a locally generated timestamp, we use the created_at of
the first comment loaded, this drastically improved the likelyhood that the
timestamp will be the same, meaning that it will hit the cache.
2024-02-28 07:38:22 +07:00
Fabien O'Carroll
359c1049c6 Fixed comments MockedApi and tests
The Comments API should be serving comments in reverse chronological order
2024-02-28 07:38:22 +07:00
Kevin Ansfield
ef38316976
Added rounding to Comments-UI API fetch timestamp (#19750)
no issue

- allows for comments to be cached for 10s to greatly reduce the load hitting Ghost
2024-02-23 19:53:27 +00:00
renovate[bot]
6294ccc370 Update tiptap monorepo to v2.2.4 2024-02-23 12:56:29 +00:00
Ronald Langeveld
85028eb00a
Changed invisible class to opacity (#19729)
no issue

- tried invisible tailwind class in main to hide the iframe in the
iframe buffering method, but it doesn't perform great, reverting that.
2024-02-21 18:39:47 +02:00
Ronald Langeveld
ef1c19820b
🐛 Fixed iFrame not keeping scroll position on update (#19725)
no issue

- Added position tracking in the iFrame to allow it to remain in the
same place in the preview after making changes.
2024-02-21 15:28:47 +00:00
Ronald Langeveld
c64c0c2123
🐛 Fixed Portal icon misaligned in Preview (#19723)
no issue

- because we use hidden here, it prevents the Portal iFrame from
calculating the width and position correctly on the initial load.
- Changing it to `invisible` conditionally allows it to do the calculation correctly.
- Also had to reposition the loading indicator.
2024-02-21 13:22:49 +02:00
Sag
99588a7852
Released Portal v2.37.4 (#19718)
refs ENG-607
- added the option to rename the free tier
- added the option to render monthly or yearly pricing by default on
signup
- added a "% discount" summary on the yearly pricing tab
2024-02-20 14:07:17 +01:00
Sag
034df3714e
Removed leftover alpha flag (#19717)
no issue
2024-02-20 14:07:03 +01:00
Sag
e9f5af110c
🎨 Added option to change the name of the free tier (#19715)
ref ENG-607

- also added the option to show the monthly pricing by default during
signup

Co-authored-by: Simon Backx <simon@ghost.org>
Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2024-02-20 12:54:41 +01:00
Ronald Langeveld
1d0fe18dd3
🐛 Fixed custom theme textfield rerendering (#19714)
no issue

- Changed the textfields in custom theme settings to use onBlur instead
to trigger a rerender of the iFrame to avoid flashing.
- It will now instead update once the text field loses focus, similar to
the Announcement Bar.
2024-02-20 10:28:39 +02:00
renovate[bot]
261cc3d022 Update tiptap monorepo to v2.2.3 2024-02-15 18:21:19 +00:00
Ryan Feigenbaum
69eb78b740
Released comments-ui 0.13.5 (#19703)
No issue
2024-02-15 13:19:45 -05:00
Sodbileg Gansukh
924c85d3dc
Sort themes based on package name (#19696)
ref DES-72

- current sorting makes it difficult to find themes when theme directory
and package name are different, because the sorting is based on the
directory name
- this new sorting is based on package name first
- as package name is optional, it then sorts based on directory name if
it doesn't exist
2024-02-15 17:49:29 +07:00
Ryan Feigenbaum
f8bcb489e0
Released Portal 2.37.3 (#19695)
No issue
2024-02-14 12:14:07 -05:00
Peter Zimon
f7e5fb2f9b
Input field visual design update (#19693)
no refs.

Slight visual adjustment to input fields focus state to keep consistency
between marketing pages and product styles.
2024-02-14 13:00:16 +01:00
Djordje Vlaisavljevic
f93143c76a Added focus state for HTMLField
refs DES-108
2024-02-13 15:27:20 +00:00
renovate[bot]
8d357bd551
Update dependency tailwindcss to v3.4.1 (#19395)
no ref

- includes run of `eslint --fix` to update changed classname ordering in Tailwind

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2024-02-13 14:28:02 +00:00
Sodbileg Gansukh
c1ee2de52b
Fixed codemirror hint background color in dark mode (#19687)
fixes DES-9
2024-02-13 11:23:55 +00:00
Peter Zimon
ba9b695626
Update "Customize" link on Setup screen (#19686)
refs.
https://linear.app/tryghost/issue/DES-113/clicking-customize-design-on-setup-page-lands-you-on-top-level

On the setup screen 60% of people choose "Customize your site" which ATM
just take people to the top level Settings screen. This is very
confusing as with all the settings people don't know where to click to
actually get to customizing their site.

This PR fixes it by showing the design settings when clicking on
"Customize your site" and to the Dashboard after closing it.
2024-02-13 11:16:01 +01:00
Djordje Vlaisavljevic
be57b888d2 Made hover and focus states easier to tell apart
refs DES-8
2024-02-08 11:36:15 +00:00
Djordje Vlaisavljevic
2256a22a85 Added hover state to HTMLField component
refs DES-8
2024-02-08 11:36:15 +00:00
Peter Zimon
3ef8b53fad
Added "No search result" screen to Settings (#19672)
refs.
https://linear.app/tryghost/issue/DES-21/empty-screen-is-missing-for-search-in-settings

- Search is one of the most useful functions in Settings and currently
the screen when there's no result for a searchterm is just a plain white
screen. Very non user-friendly.
- This update gives us an opportunity to improve the overall visual
hierarchy and focus of Settings in general.

---------

Co-authored-by: Ronald Langeveld <hi@ronaldlangeveld.com>
2024-02-08 08:32:40 +01:00
renovate[bot]
d424e1ada1 Update tiptap monorepo to v2.2.2 2024-02-07 13:43:15 +00:00
Sodbileg Gansukh
65e9900578
Added save shortcut support to Code Injection (#19660)
fixes DES-92
2024-02-06 11:03:00 +00:00
Djordje Vlaisavljevic
d59775cb66 Added success notification when switching to new installed theme
refs DES-76
2024-02-06 10:02:09 +00:00
Djordje Vlaisavljevic
f8f9c55f90 Improved TextField disabled state
- It's now easier to tell apart disabled and empty states

refs DES-30
2024-02-05 16:03:51 +00:00
Sodbileg Gansukh
612ea2f5f2
Added default background color to preview iframes (#19651)
fixes DES-88

- preview iframes should have default background as they simulate
browser windows
- transparent background causes unexpected inconsistency when themes
don't have default background color set
2024-02-05 12:56:43 +00:00
Daniël van der Winden
a7f6713614
Fixed icon preview in metadata card (#19650)
Closes issue:
https://linear.app/tryghost/issue/DES-7/admin-x-metadata-page-shows-icon-incorrectly

Set the background image to contain.
2024-02-05 13:38:37 +01:00
Princi Vershwal
aba6c4b5e8
ENG-32 Fixed error while verifying support address (#19648) 2024-02-05 10:41:18 +05:30
Ronald Langeveld
a47d55d1a2
🐛 Fixed trailing slashes not handled in Settings (#19640)
fixes
https://linear.app/tryghost/issue/ENG-609/staff-users-can-no-longer-be-opened-directly-with-their-url

- additionally added an `edit` route for editing staff users, which
fixes a regression.
2024-02-01 19:23:22 +02:00
renovate[bot]
94edc0c856 Update storybook monorepo to v7.6.12 2024-02-01 16:41:56 +01:00
Ryan Feigenbaum
4d6aaf0f68
Update grammar and fix missing word in Email receiving FAQ (#19637)
There were two changes in the Email receiving FAQ page.

1. Add "a" to "If you're not receiving the email newsletter you've
subscribed to, here are a few things to check."
2. Remove unnecessary hyphens from "to-and-from this address."

@jonhickman
2024-01-31 16:16:40 -05:00
Daniel Lockyer
e0fec5b952 Released @tryghost/comments-ui v0.13.4 2024-01-31 15:38:17 +01:00
renovate[bot]
25a8ab33ca Update storybook monorepo to v7.6.11 2024-01-31 11:36:58 +01:00
renovate[bot]
3ed6fab216 Update tiptap monorepo to v2.2.1 2024-01-31 10:03:38 +00:00
renovate[bot]
e77b53f6cf Update tiptap monorepo to v2.2.0 2024-01-29 13:07:18 +00:00
Sag
b5c6cf7d2d
Released Portal 2.37.2 (#19595)
no issue
2024-01-27 01:08:23 +00:00
Sag
1e988cccff
Revert Portal changes (#19594)
no issue

- This revert recent changes made to Portal, that may be causing the
Free tier to not render properly on Ghost sites
2024-01-27 01:46:59 +01:00
Sag
24952ab3df
🎨 Improved Portal and Portal settings (#19584)
no issue

---------

Co-authored-by: Simon Backx <simon@ghost.org>
Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2024-01-26 10:38:00 +01:00
Sag
360e02db4f
Fixed default prices in tier previews (#19586)
fixes ENG-558
2024-01-25 19:42:18 +00:00
Djordje Vlaisavljevic
18d6d72c41
Updated free tier placeholder value ENG-556 (#19585)
refs ENG-556
2024-01-25 19:27:55 +00:00
Sag
eb189c8045
Fixed default amounts in tier previews (#19582)
fixes ENG-558
2024-01-25 17:17:11 +00:00
Djordje Vlaisavljevic
1f90cf7ea9
Updated tier settings labels, hints and placeholders ENG-554 ENG-555 ENG-557 ENG-592 (#19580)
refs ENG-554 ENG-555 ENG-557 ENG-592

- Updated dropdown label copy 
- Updated tier name placeholder logic 
- Updated hint copy for free tier 
- Changed price placeholder values 
- Removed visibility hint when creating/editing tiers
2024-01-25 16:10:03 +00:00
Ronald Langeveld
0c95111f8e
🎨 Admin X - Offers (#19520)
no issue

- Offers rebuilt in React and now located in Settings.
2024-01-25 12:41:54 +00:00
Djordje Vlaisavljevic
9a3aa6310b Updated portal price toggle design
refs DES-24 DES-25
2024-01-25 12:08:33 +00:00
Princi Vershwal
58ec6792d9
Trying to fix browser tests (#19575) 2024-01-24 15:52:20 +00:00
Princi Vershwal
938d23ec33
Offer flash fix5 (#19574) 2024-01-24 15:16:54 +00:00