Commit Graph

150 Commits

Author SHA1 Message Date
Simon Backx
c08538ba84
Released Portal v2.35.2 (#18031) 2023-09-08 11:07:20 +00:00
Simon Backx
669be72673
Wired up pagination to recommendations (#18018)
fixes https://github.com/TryGhost/Product/issues/3822
fixes https://github.com/TryGhost/Product/issues/3838

This PR became a bit big because it affected multiple parts of Ghost
that needed to be updated to prevent breaking anything.

### Backend
- Added pagination to the recommendations API's
- Updated BookshelfRepository template implementation to handle
pagination
- Allow to pass `page` and `limit` options to Models `findAll`, to allow
fetching a page without also fetching the count/metadata (=> in the
repository pattern we prefer to fetch the count explicitly if we need
pagination metadata)
- Added E2E tests for public recommendations API (content API)
- Extended E2E tests of admin recommendations API

### Portal
- Corrected recommendations always loaded in Portal. Instead they are
now only fetched when the recommendations page is opened.

### Admin-X
- Added `usePagination` hook: internally used in the new
`usePaginatedQuery` hook. This automatically adds working pagination to
a query that can be used to display in a table by passing the
`pagination` and `isLoading` results to the `<Table>`
- Added placeholder `<LoadingIndicator>` component
- Added a loading indicator to `<Table>`. This remembers the previous
height of the table, to avoid layout jumps when going to the next page.
2023-09-08 12:32:06 +02:00
Princi Vershwal
83282ca4cd
Added checks for subscription to multiple newsletter through custom sign up form (#17994)
refs https://github.com/TryGhost/Product/issues/3810

---------

Co-authored-by: Michael Barrett <mike@ghost.org>
2023-09-07 18:27:32 +01:00
Michael Barrett
b70fd30a39
Add ability to specify newsletter in a custom sign-up form (#17956)
refs https://github.com/TryGhost/Product/issues/3809

When an input is added to a custom sign-up form with the attribute
`data-members-newsletter`, the value of the input will be used as the
newsletter to subscribe the member to.
2023-09-07 16:31:14 +01:00
Simon Backx
6e7089e58a
Fixed loading of invalid recommendation icons and feature images (#18011)
fixes https://github.com/TryGhost/Product/issues/3811 
fixes https://github.com/TryGhost/Product/issues/3829
2023-09-07 12:30:59 +02:00
Simon Backx
8f618c7b5c Updated Portal tests 2023-09-07 10:29:43 +02:00
Simon Backx
afeb9579b5 Released Portal v2.35.1 2023-09-07 10:29:43 +02:00
Simon Backx
d1c6bfefbc Fixed direct subscribe links broken
refs https://github.com/TryGhost/Product/issues/3770

- Site is not always defined, so the things broke when using the signup action without a defined site, where it wants to read the recommendations_enabled setting
- Fixed this by removing the welcome page and looking for the existing query params instead
2023-09-07 10:29:43 +02:00
Simon Backx
2497a665b2 Released Portal v2.35.0 2023-09-06 17:33:42 +02:00
Simon Backx
f71c074d31
Added one-click-subscribe detection (#17995)
fixes https://github.com/TryGhost/Product/issues/3820

- This adds a new public site endpoint in the members API to check if a
site can offer the one-click-subscribe feature
- This is implemented on the members API as a copy of the `site`
endpoint because the admin API site endpoint is protected by CORS and
mainly because it can be served on a different domain than the
recommended site and this is hard to detect reliably from the frontend
- Added a new calculated setting `allow_self_signup`, which can replace
the setting that is currently used in Portal (best to do this after a
release otherwise we risk creating issues if a patch release happens)
2023-09-06 15:11:14 +00:00
Simon Backx
448e91d916
Fixed notification and showing of recommendation modal (#17991)
refs https://github.com/TryGhost/Product/issues/3771

- Don't show a notification if the recommendation modal is shown
- Don't show the recommendation modal if there are no recommendations
2023-09-06 12:01:27 +00:00
Sag
8f272e730b
Updated recommendation modal copy when triggered after signup (#17985)
refs https://github.com/TryGhost/Product/issues/3771
2023-09-05 18:50:34 +00:00
Djordje Vlaisavljevic
9e1b11f26e Added Close button to Recommendations modal
refs https://github.com/TryGhost/Product/issues/3824
2023-09-05 16:06:53 +01:00
Djordje Vlaisavljevic
8efeb20ae8 Updated heading copy
refs https://github.com/TryGhost/Product/issues/3771
2023-09-05 11:58:58 +01:00
Djordje Vlaisavljevic
ff1b256ff5 Improved design when Recommendation doesn't have a reason
refs https://github.com/TryGhost/Product/issues/3814
2023-09-05 11:58:58 +01:00
Sag
a017596a1d
Added a random order and a limit of 5 to the Recommendations modal (#17958)
refs https://github.com/TryGhost/Product/issues/3815

- recommendations are rendered in a random order, using Fisher-Yates
shuffle
- only 5 recommendations are rendered by default, the other ones are
hidden behind a "Show all" button
- recommendations are fetched all at once from the backend, as we assume
there won't be more than 100-ish recommendations per publication
2023-09-04 19:05:32 +02:00
Sag
d7504bdbf5
Added recommendation modal trigger on signup (#17925)
refs https://github.com/TryGhost/Product/issues/3771

- if recommendations are enabled, render the recommendation modal on
sign up, in Portal
- for free signups, the recommendations modal is rendered after clicking
on the magic link
- for paid signups, the recommendations modal is rendered after Stripe
Checkout
- the recommendations modal is not rendered on a free to paid upgrade
2023-09-04 14:35:56 +00:00
Daniel Lockyer
c6cb35074a Updated linting and testing packages 2023-09-01 15:51:17 +02:00
Sag
f56c36ca24
Wired up recommendations in Portal (#17888)
closes https://github.com/TryGhost/Product/issues/3796
refs https://github.com/TryGhost/Product/issues/3770

- also added a public endpoint for Recommendations in the Content API
2023-08-31 10:07:49 +00:00
Djordje Vlaisavljevic
69a6388009 Updated Recommendations list design in Portal
refs https://github.com/TryGhost/Product/issues/3770
2023-08-31 10:47:32 +01:00
Sag
62172fb883
Added basic Recommendations modal (#17877)
refs https://github.com/TryGhost/Product/issues/3770
2023-08-30 15:24:04 +00:00
renovate[bot]
d418a431be Update sentry-javascript monorepo to v7.66.0 2023-08-30 14:00:40 +02:00
renovate[bot]
24300120c2 Update dependency vitest to v0.34.3 2023-08-29 18:52:13 +01:00
Daniel Lockyer
1ca8dcc836 Released Portal v2.34.4 2023-08-29 08:59:11 +01:00
renovate[bot]
228b497076 Update dependency @babel/eslint-parser to v7.22.11 2023-08-29 08:25:12 +01:00
renovate[bot]
1a44d8106b Update sentry-javascript monorepo to v7.65.0 2023-08-28 19:06:53 +01:00
Simon Backx
e9703f6a15
Extended translations beta to comments (#17801)
refs https://github.com/TryGhost/Product/issues/3504
2023-08-24 10:33:03 +02:00
Chris Raible
851981ac1d
Released Portal 2.34.3 (#17808)
no issue

- this version allows use of the /signup/free link even if the free plan
is hidden from portal
2023-08-23 12:37:26 -07:00
Michael Barrett
a69841a465
🐛 Fixed member signup from offer when terms are not specified (#17795)
fixes https://github.com/TryGhost/Product/issues/3753

The validation for the terms checkbox was being executed when the terms
checkbox was not being rendered. The validation checks needed to be
updated to account for if the checkbox was rendered or not. Basically
the same as this:
45a70a3f4c
2023-08-23 13:25:26 +01:00
renovate[bot]
f9589ff7bd Update dependency vitest to v0.34.2 2023-08-23 11:45:02 +01:00
renovate[bot]
26bdba9d4c Update dependency concurrently to v8.2.1 2023-08-22 17:39:36 +01:00
Chris Raible
629aa08262
🐛 Fixed portal free signup link not working if free plan is hidden (#17742)
refs TryGhost/Product#3743

- Users should be able to hide the free plan from Portal, which removes it as an option on the main portal /signup page
- However, they should still be able to use the /signup/free link to allow members to signup for the free plan. Currently if the free plan is hidden from portal, the /signup/free link renders the main /signup page, with only paid plans available.
- This PR fixes that by allowing the /signup/free link to work even if the free plan is hidden from portal, but only by directly accessing the /signup/free link
2023-08-17 14:58:37 -07:00
renovate[bot]
bed89b7bec Update sentry-javascript monorepo to v7.64.0 2023-08-15 12:17:01 +02:00
Sag
06d6078731
Published Portal v2.34.2 (#17719)
no issue

- this version contains the latest changes for the Tips & Donations
feature
2023-08-15 09:54:34 +00:00
renovate[bot]
8dc4923041 Update babel monorepo to v7.22.10 2023-08-14 12:06:20 +02:00
renovate[bot]
9f2fac34ad Update sentry-javascript monorepo to v7.63.0 2023-08-11 09:27:14 +02:00
Sag
67426d5c35
Added a separate error flow for when Tips & Donations are disabled (#17625)
refs https://github.com/TryGhost/Product/issues/3686
2023-08-10 17:32:44 +02:00
Sag
82851aaa4a
Published Portal 2.34.1 (#17680)
refs https://github.com/TryGhost/Product/issues/3661

- this version contains WIP changes for the Tips & Donations feature
2023-08-10 14:12:25 +00:00
Sag
4ace11a441
Added logic to load Portal when Tips & Donations are enabled (#17659)
closes https://github.com/TryGhost/Product/issues/3661

- until now, Portal was not loaded if members were disabled. With the
introduction of Tips & Donations, signed-off readers can also make
payments, using the Portal link /#/portal/support.
- now, Portal is loaded when Tips & Donations are enabled, even if
Memberships are disabled
- depending on the member signup access, the top bar / trigger button
Portal buttons are hidden as before (signup/subscribe hidden if access is set to none, subscribe hidden if
access is set to invite-only)
- for any other signup / signin Portal links (e.g., added by the theme,
or added via a Post/Page), a new popup informs the reader when
Memberships are disabled: "Memberships unavailable, contact the site
owner for access".
2023-08-10 15:45:02 +02:00
Simon Backx
658f0a65e6
Fixed Portal temporary donation link saved in browser history (#17677)
no issue

- When clicking back button in the browser when on the checkout page,
will not open Stripe again
- Does not open Stripe checkout in peek and pop mode in Arc
2023-08-10 12:41:56 +00:00
Sag
6cfa4bb6e8
Revert "Added logic to load Portal when Tips & Donations are enabled" (#17655)
no issue

- this reverts commit b95c8275f2
- browser tests needs to be fixed
2023-08-09 13:53:17 +00:00
Sag
b95c8275f2
Added logic to load Portal when Tips & Donations are enabled (#17634)
closes https://github.com/TryGhost/Product/issues/3661

- until now, Portal was not loaded if members were disabled. With the
introduction of Tips & Donations, signed-off readers can also make
payments, using the Portal link /#/portal/support.
- now, Portal is loaded when Tips & Donations are enabled, even if
Memberships are disabled
- depending on the member signup access, the "sign in" / "subscribe"
Portal buttons are hidden (both hidden if none, signup hidden if
invite-only)
- for any other signup / signin Portal links (e.g., added by the theme,
or added via a Post/Page), a new popup informs the reader as such when
Memberships are disabled: "Memberships unavailable, contact the site owner for access".
2023-08-09 12:44:07 +00:00
renovate[bot]
0424915a31 Update dependency @vitejs/plugin-react to v4.0.4 2023-08-09 11:43:08 +02:00
renovate[bot]
1353b04c9d Update dependency vite-plugin-css-injected-by-js to v3.3.0 2023-08-09 11:28:50 +02:00
renovate[bot]
98dc4d7b06 Update dependency vite to v4.4.9 2023-08-09 10:09:03 +02:00
renovate[bot]
9f85124a2e Update dependency vitest to v0.34.1 2023-08-09 09:54:48 +02:00
renovate[bot]
ca7d829915 Update dependency vite to v4.4.8 2023-08-09 09:50:54 +02:00
Sag
ecc9c4aee5
Released Portal 2.34.0 (#17610)
no issue

- this version contains a WIP version of the Tips & Donations feature
2023-08-07 12:59:39 +00:00
Djordje Vlaisavljevic
f953fedd8f
Updated Tips&Donations portal loading state (#17605)
refs https://github.com/TryGhost/Product/issues/3677

- Removed text from the loading state
2023-08-07 09:46:45 +01:00
Djordje Vlaisavljevic
24ea4c0fb9
Updated Tips&Donations portal success and loading states design (#17592)
refs https://github.com/TryGhost/Product/issues/3677

- Updated portal loading design when user clicks on a Tips&Donations
link
- Removed "Retry" button from error state and added "Close"
2023-08-03 22:46:26 +01:00
Sag
7f6de07b1e
Removed unconsistent success state from the donation page (#17590)
refs https://github.com/TryGhost/Product/issues/3650
2023-08-03 21:00:42 +00:00
Djordje Vlaisavljevic
172479c987
Updated Tips & Donations success and error states (#17559)
refs https://github.com/TryGhost/Product/issues/3672,
https://github.com/TryGhost/Product/issues/3673

- Updates design for success and error states of Tips & Donations
checkout flow
2023-08-01 19:48:02 +01:00
Sag
4e0f52a7cb
Updated cancelation URL for donations (#17555)
refs https://github.com/TryGhost/Product/issues/3650
- also adds an await on the .json() call
2023-08-01 15:19:15 +00:00
Sag
6d85ea4425
Added redirect after a successful donation (#17551)
refs https://github.com/TryGhost/Product/issues/3650
2023-08-01 12:39:59 +00:00
Sag
83c736cc2c
Added support pages to Portal (#17539)
refs https://github.com/TryGhost/Product/issues/3650

- adds '/support', '/support/success' and 'support/error' pages
- support page calls the '/members/api/create-stripe-checkout-session'
backend endpoint on mount, then renders an error or success page
accordingly
2023-07-31 13:15:22 +00:00
Daniel Lockyer
c97cc08455 Updated ESLint config for React+Typescript packages
refs https://github.com/TryGhost/DevOps/issues/50

- `react-app` comes from `eslint-config-react-app`, which is a CRA package
- we're moving away from that so this commit switches the linting over
  to a more recently updated plugin
- once that was removed, we started using a newer version of
  `@typescript-eslint/eslint-plugin`, so there were plenty of
  updates/exemptions to make
2023-07-27 11:40:31 +02:00
Daniel Lockyer
5875962392 Converted CRA packages to Vite
refs https://github.com/TryGhost/DevOps/issues/50

- we're moving away from CRA in favor of Vite, so this switches the last
  packages over
2023-07-27 09:43:35 +02:00
renovate[bot]
c05976645c Update sentry-javascript monorepo to v7.60.1 2023-07-27 09:24:27 +02:00
Ronald Langeveld
c419306f30
Bumped Portal (#17499)
no issue

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at e0f948c</samp>

This change updates the `portal` package to the latest version, which
fixes some bugs and enhances the user experience of the members feature.
2023-07-26 08:36:27 +02:00
renovate[bot]
5ca8c1f568 Update dependency vite to v4.4.7 2023-07-24 20:56:39 +02:00
Daniel Lockyer
d5cbb33e54 Pinned dependencies 2023-07-24 16:21:47 +02:00
Daniel Lockyer
d0f9c8cf0c Deduplicated eslint and eslint-plugin-ghost to top-level package.json
refs https://github.com/TryGhost/DevOps/issues/50

- this deduplicates where we define the version of `eslint` and
  `eslint-plugin-ghost` so it's easier to maintain
2023-07-24 16:21:47 +02:00
renovate[bot]
19efd7cd9a Update sentry-javascript monorepo to v7.60.0 2023-07-21 14:42:59 +02:00
renovate[bot]
7cdc87ed99 Update dependency vite to v4.4.6 2023-07-21 12:31:29 +02:00
renovate[bot]
9a24877e7d Update dependency vite to v4.4.5 2023-07-21 09:23:51 +02:00
renovate[bot]
dd328f39f7 Update sentry-javascript monorepo to v7.59.3 2023-07-20 07:27:24 +02:00
Chris Raible
96b678a20d
🐛 Fixed members unable to unsubscribe from plan if hidden in Portal (#17251)
refs TryGhost/Product#3563

- For a member on a paid plan, which had subsequently been hidden from
portal, the member was unable to unsubscribe/change plan because the
'Change' button was hidden
- This change restores the 'Change' button for members on a paid plan,
even if the plan is hidden from portal
- This change also makes some modifications to the 'Change Plan' page,
like showing the current active plan even if it is hidden, and displays
a message to comped members to contact support if they want to change
their plan

---------

Co-authored-by: Sodbileg Gansukh <sodbileg.gansukh@gmail.com>
2023-07-19 18:14:20 -07:00
renovate[bot]
b82cbeec04 Update sentry-javascript monorepo to v7.59.2 2023-07-19 07:53:05 +02:00
Ronald Langeveld
2c1c315016
Bumped Portal version to 2.33.7 (#17402)
no issue

- bumped portal to a new minor after publishing.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 7e70d04</samp>

Updated the portal package to version 2.33.7 with some bug fixes and
improvements. The `apps/portal/package.json` file reflects the new
version number.
2023-07-18 10:37:39 +00:00
Ronald Langeveld
a85d271754
🎨 Added missing translation strings in portal (#17400)
closes https://github.com/TryGhost/Product/issues/3613

- Strings around the buttons was still hardcoded. 
- This replaces them with the `i18n` integration.

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 068d0d6</samp>

Added internationalization support to the `ProductsSection` component
using the `t` function and the `Interpolate` component. This enables the
component to display product information in different languages and
currencies.
2023-07-18 11:15:41 +02:00
renovate[bot]
b6439457e6 Update dependency vite-plugin-css-injected-by-js to v3.2.1 2023-07-17 21:42:43 +02:00
renovate[bot]
2f76f07dff Update dependency vite to v4.4.4 2023-07-14 11:04:59 +02:00
renovate[bot]
eec68d876b Update sentry-javascript monorepo to v7.58.1 2023-07-13 15:08:54 +02:00
renovate[bot]
873f3f4ae3 Update sentry-javascript monorepo to v7.58.1 2023-07-13 14:07:33 +02:00
Daniel Lockyer
78bc1e7156 Released Portal v2.33.6 2023-07-13 14:05:03 +02:00
renovate[bot]
d1ac5260e3 Update dependency @babel/eslint-parser to v7.22.9 2023-07-13 08:28:35 +02:00
renovate[bot]
672a19f78e Update sentry-javascript monorepo to v7.58.0 2023-07-13 06:03:29 +02:00
renovate[bot]
bef119fa0f Update dependency vite to v4.4.3 2023-07-11 17:17:23 +02:00
renovate[bot]
7dce046786 Update Test & linting packages 2023-07-11 15:26:07 +02:00
renovate[bot]
40e616eea8 Update sentry-javascript monorepo to v7.57.0 2023-07-11 12:54:56 +02:00
renovate[bot]
9dd1f97bb0 Update dependency vite to v4.4.2 2023-07-10 18:17:28 +02:00
renovate[bot]
9a5c13309e Update dependency vitest to v0.33.0 2023-07-10 16:23:32 +02:00
renovate[bot]
cb96ad36bc Update babel monorepo to v7.22.7 2023-07-10 16:06:41 +02:00
renovate[bot]
0c309454cf Update dependency @vitejs/plugin-react to v4.0.3 2023-07-10 15:40:54 +02:00
renovate[bot]
ea9cc21a0c Update dependency @vitejs/plugin-react to v4.0.2 2023-07-10 13:48:58 +02:00
Daniel Lockyer
fb0807c8c5 Prevented git tags from being created for apps
refs https://ghost.slack.com/archives/C02G9E68C/p1688983916615989?thread_ts=1687341349.559679&cid=C02G9E68C

- these cause issues with our PR workflow because we can't push tags in
  a PR and the commit is rebased onto `main` so the hash changes
- this disables tags for now
2023-07-10 13:09:28 +02:00
renovate[bot]
44d38e4d4e Update dependency vite-plugin-css-injected-by-js to v3.2.0 2023-07-10 10:29:23 +02:00
renovate[bot]
5fc6659423 Update dependency cross-fetch to v4 2023-07-10 10:19:26 +02:00
Daniel Lockyer
b433686944 Released Portal v2.33.5 2023-07-07 16:12:41 +02:00
Daniel Lockyer
c5aea0caee Fixed showing name in Portal notification
fixes https://github.com/TryGhost/Ghost/issues/17242

- we weren't passing the correct parameter to the translation function,
  so the name placeholder wasn't being replaced
2023-07-07 16:12:41 +02:00
renovate[bot]
74f2e08b16 Update dependency vitest to v0.32.4 2023-07-04 12:24:03 +02:00
renovate[bot]
8a4aac0c9f Update dependency cross-fetch to v3.1.8 2023-07-03 14:31:29 +02:00
renovate[bot]
a04a4293cb Update dependency vite-plugin-css-injected-by-js to v3.1.2 2023-06-28 16:21:00 +02:00
Daniel Lockyer
549e608b27
Released Portal v2.33.4 2023-06-27 09:26:05 +02:00
Daniel Lockyer
bebf85f84a
Released Portal v2.33.3 2023-06-27 08:22:48 +02:00
Michael Barrett
a79035c2f6
🐛 Fixed portal free trial message incorrectly showing (#17095)
no issue

Fixed portal free trial message incorrectly showing when signing up for
free. Message was showing due to `pageQuery` erroneously not being
passed down the call stack to `getSiteProducts`
2023-06-22 13:38:33 +01:00
Daniel Lockyer
5c4ef092b6 Updated vitest to v0.32
refs https://github.com/TryGhost/Ghost/pull/16949
refs https://github.com/vitest-dev/vitest/releases/tag/v0.32.0

- contains a switch from `@vitest/coverage-c8` to `@vitest/coverage-v8`
  as this is now required in 0.32
2023-06-20 14:54:04 +02:00
renovate[bot]
ea3ab6beb6 Update dependency @vitejs/plugin-react to v4.0.1 2023-06-20 08:09:23 +02:00
Daniel Lockyer
e13fcd3272
Released Portal v2.33.2 2023-06-16 13:41:31 +02:00
Daniel Lockyer
f3894d5898 Moved Portal to apps/
refs https://github.com/TryGhost/Toolbox/issues/594

- we're moving all the standalone apps to a separate folder to keep them
  out of the core code and easier to find
2023-06-16 13:37:58 +02:00