Commit Graph

979 Commits

Author SHA1 Message Date
Daniel Lockyer
5f860c6e31
Fixed encoded characters appearing for Offers in Portal
fixes https://github.com/TryGhost/Team/issues/3392

- the "price" here can contain a slash, which is encoded/escaped by default by
  i18next
- this disables the escaping to fix the text that is shown to the user
2023-06-07 08:35:40 +02:00
Sam Lord
ee274deae6 Added context strings to all new translatable strings
refs: https://github.com/TryGhost/Ghost/issues/16628

Modified a couple of translation strings to reduce complexity and remove duplication
2023-05-30 16:03:32 +01:00
Sam Lord
c37c785a9f Refactored translation function t into object destructure
refs: https://github.com/TryGhost/Ghost/issues/16628
2023-05-25 16:48:56 +01:00
Sam Lord
a123a3ceee Added missing reference to translation function t
refs: https://github.com/TryGhost/Ghost/issues/16628
2023-05-25 16:48:56 +01:00
Sam Lord
8135ef74f7 Wrapped public facing strings with translation function
refs: https://github.com/TryGhost/Ghost/issues/16628
2023-05-25 16:48:56 +01:00
Sam Lord
5816217019 Added more string translations
refs: https://github.com/TryGhost/Ghost/issues/16628
2023-05-25 16:48:56 +01:00
Sam Lord
67c81dbd6c Added wrapped i18n strings for email FAQ
refs: https://github.com/TryGhost/Ghost/issues/16628

This adds a library for interpolating strings with React components, which allows us to pass HTML elements / React components into our i18n templates. We can further templatize those components to have fully translated, nested components.
2023-05-25 16:48:56 +01:00
Sam Lord
91ce2fd21f Wrapped i18n strings for paid account actions
refs: https://github.com/TryGhost/Ghost/issues/16628

Separate commit for these, this change was a little more complex since the string "Complimentary" was repeated several times, with different additional context.

I decided to keep "Complimentary" by itself as a translatable string, and concatenated a second string for the expiry.

If this would be better as 3 strings, then we could switch to having these:
- "Complimentary"
- "Complimentary ({{label}})"
- "Complimentary - Expires {{expiry date}}"

^ Makes sense only if the use of parentheses & hyphens would be changed in other locales
2023-05-25 16:48:56 +01:00
Sam Lord
d3fd8f81e2 Wrapped easy i18n strings
refs: https://github.com/TryGhost/Ghost/issues/16628

Added wrapping for as many easy / simple i18n strings as possible.
2023-05-25 16:48:56 +01:00
Sodbileg Gansukh
f052b78a77
Hid other plans link when there's no paid plan (#16822)
refs https://github.com/TryGhost/Team/issues/2841

- currently, the link to other plans is always shown regardless of
whether if there's any other paid plan or not
- this adds a check to show the link only when there are other plans
2023-05-22 13:20:46 +08:00
Ronald Langeveld
6289d756ed
Added ability to show / hide signup form in a post (#16792)
closes https://github.com/TryGhost/Team/issues/3200
https://ghost.slack.com/archives/C02G9E68C/p1684150226572149

- a little prototype to see if we can hide the new WIP signup form in a
post, if a user is already logged in and portal is loaded.
- the idea is that the signup card will be hidden by default in a post/page and only initiated by Portal if the defined conditions are met.
2023-05-16 13:11:40 +02:00
Fabien "egg" O'Carroll
45a70a3f4c 🐛 Fixed Member signup when signup terms are null
We only display the signup checkbox if both the checkbox is required AND we
have some terms to display alongside it. However we require the checkbox to be
checked, regardless of if it is displayed. This results in the Signup button
not working at all if your settings are in this state.
2023-05-08 11:11:39 -04:00
Simon Backx
6aa8fa2a8e Updated Portal back button translations
refs https://github.com/TryGhost/Ghost/issues/16628
2023-05-02 16:51:48 +02:00
Sanne de Vries
d37f958f41 Updated signup terms positioning on Portal offer page
Refs https://github.com/TryGhost/Ghost/issues/16625
2023-04-13 11:06:55 +01:00
Simon Backx
75a25d1f70 Added signup terms to offer page
refs https://github.com/TryGhost/Ghost/issues/16625

The signup terms were not visible when signing up via an offer. This adds the checkbox and validation to the offer page.
2023-04-13 10:32:34 +02:00
Sanne de Vries
7dee5d215d Fixed signup terms displaying behind button in Portal free signup
Refs https://github.com/TryGhost/Team/issues/2878
2023-04-12 21:13:34 +01:00
Simon Backx
ae863674ba
Added error message to Portal SignupPage below buttons (#16609)
fixes https://github.com/TryGhost/Team/issues/2980

This change adds an error message below the submit buttons on the signup page (if there are multiple tiers), when one or multiple fields have an error. That way, the error message is visible and not out of view.

---------

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2023-04-12 11:12:14 +02:00
Daniel Lockyer
a97335f7f4
Removed translations for "Powered by Ghost"
refs https://github.com/TryGhost/Team/issues/2795
refs https://ghost.slack.com/archives/CFH10N79S/p1681131575137019?thread_ts=1680206445.643819&cid=CFH10N79S

- we want to keep this in English so this commit removes the
  translation wrapper and associated translations
2023-04-10 15:13:49 +02:00
Sanne de Vries
c48ca09ff2 Moved signup terms above plan selection for non-free plans in Portal
Refs https://github.com/TryGhost/Team/issues/2878
- The free-only version of Portal will show the signup terms just above the signup button, whereas the non-free Portal version will show the signup terms above the plan selection
- The signup terms settings have been moved to the "Signup options" section
2023-04-07 11:53:59 +02:00
Fabien "egg" O'Carroll
4225377436 Fixed links in Portal signup terms
Because we load Portal in an iFrame the anchor tags do nto work
correctly. We've intercepted all clicks on them and manually opened
the URL in a new window instead.
2023-04-07 14:26:35 +07:00
Sanne de Vries
6ed9a96bdb Fixed Portal checkbox error hover state
Refs https://github.com/TryGhost/Team/issues/2878
2023-04-06 19:04:02 +02:00
Sanne de Vries
024d43478a Fixed text not displaying when checkbox is disabled
Refs https://github.com/TryGhost/Team/issues/2878
2023-04-06 18:56:32 +02:00
Sanne de Vries
5dc0e92dc2 Replaced default checkbox with custom checkbox in Portal
Refs https://github.com/TryGhost/Team/issues/2878
- The default checkbox component is limited in terms of styling. This commit replaces the default checkbox with a custom checkbox component in Portal, which turns red when a signup attempt is made without checking the box.
2023-04-06 18:37:42 +02:00
Sanne de Vries
9eb4aedf3a Styled signup notice in Portal
Refs https://github.com/TryGhost/Team/issues/2878
2023-04-06 14:05:19 +02:00
Fabien "egg" O'Carroll
c2a6bbfefa Implemented signup terms and checkbox
refs https://github.com/TryGhost/Team/issues/2878

We've updated the signup page to display the signup terms and checkbox when
they've been set, as well as denying the signup from occuring if the checkbox
is required and not checked.

We've had to add a random value for the `key` property of the checkbox because
otherwise it isn't rendered correctly, unsure why that is at the moment.
Without the random key, the checkbox is never visually checked, even though the
internal state of both the component and the virtual DOM do say it should be
checked, it seems some kind of equality checker is broken.
2023-04-06 17:23:54 +07:00
Fabien "egg" O'Carroll
ab8304fa5c Refactored signup handling
We had two implementations for the same signup logic, which meant that we would
have to update two places when modifying the logic. This consolidates the logic
into a single method so that when we add the terms and checkbox feature we can
make the checks in a single place.
2023-04-06 17:23:54 +07:00
Rishabh
56eb7a822f Fixed FirstPromoter integration to ignore old referrals
closes https://github.com/TryGhost/Team/issues/2888

Due to lack of member's created at date, we previously called the FirstPromoter tracking function for all logged-in members irrespective of when they signed up. This caused issues in few cases where members who were already signed up were getting falsely attributed as referrals if they had clicked on a referral link previously.

This change uses the member's created at date which is now available on frontend for logged-in members, and ignored the FirstPromoter tracking script if member had signed up more than 24 hours ago.
2023-04-04 23:46:12 +05:30
Simon Backx
d0042b550a
Fixed redirecting back to account home after sign in in Portal (#16487)
refs https://github.com/TryGhost/Team/issues/2674

When going to /#/portal/account when not signed in, you are redirected
to the login page. But once signed in, you aren't redirected back to the
account page. This fixes this issue by adding an extra and optional
redirect parameter when requesting a magic token via email.

This new parameter allows to override the default behaviour of using the
Referer HTTP header, which doesn't include the hash/fragment part of the
URL.

The referrer is already restricted to only allow redirects to the site,
not external URLs.
2023-04-04 18:07:37 +02:00
Simon Backx
7bc79ddb4e Added basic UI to update portal signup term settings
refs https://github.com/TryGhost/Team/issues/2897

Hidden behind a feature flag. UI probably needs to be improved, but this is a good start.
2023-04-04 10:10:06 +02:00
Daniel Lockyer
5cd67f83ea Added i18n labs flag
- this adds the labs flag and scaffolding to wire it into Ghost + Portal
2023-03-30 18:15:57 +02:00
Daniel Lockyer
327fef0ad8 Migrated Portal from CRA to Vite
refs https://github.com/TryGhost/Ghost/issues/15502

- this commit migrates Portal from CRA to Vite, as it brings the
  package more inline with the direction we're going in terms of tooling
  for builds
- the bulk of the changes here are just config related to get things
  working with Vite, and then cleaning up all the CRA boilerplate
2023-03-16 16:25:55 +01:00
Daniel Lockyer
9f5d4b4efe
Removed .only from Portal tests
- I'm not sure what this was doing here, nor why it hasn't caused
  problems for us
2023-03-16 16:00:19 +01:00
Daniel Lockyer
0479b1a848
Converted Portal utils to ESM syntax
- Portal is completely configured for ESM so we can utilize that here
  too and save on some tsserver warnings
2023-03-16 12:10:16 +01:00
Daniel Lockyer
e280925a8b
Switched Portal components to use explicit path imports
- `compilerOptions.baseUrl` is nice but it means we end up with two
  different styles of import paths for project files - relative and from
  `src/`
- to fix this, we're going to standardize on relative imports and remove
  the ability to import relative to the top-level project folder
- this removes the jsconfig line and fixes all existing imports
2023-03-16 12:10:03 +01:00
Sodbileg Gansukh
64e5fbe5b7 Adjusted Portal popup width for better readibility
refs https://github.com/TryGhost/Team/issues/2621
2023-03-15 17:45:01 +08:00
Daniel Lockyer
42d9c3ea4d
Reorganised React imports
- we use ES6 `import` for all other imports so this standardizes the
  React package to also use import vs require
- merged with other imports from the react package if present
2023-03-15 10:15:04 +01:00
Aileen Nowak
465e88510a Improved FirstPromoter integration to run on all subdomains
closes https://www.notion.so/ghost/Update-FirstPromoter-implementation-to-allow-subdomains-d108aee94aaa417eb552db7e825f1e44?pvs=4

- Allow the FirstPromoter script to run on all subdomains of the root site domain by removing any subdomain from the used domain and prefixing the root with a `.`.
2023-03-12 10:59:16 +00:00
Tim Gates
5394fa81fc
Fixed typos (#16359) 2023-03-06 13:11:45 +01:00
Daniel Lockyer
6d8ca23625
Added support for namespaces to i18n package
refs https://github.com/TryGhost/Ghost/issues/15502

- this adds support for namespaces to the i18n package so we can
  separate translations for different packages
2023-03-01 10:24:08 +01:00
Daniel Lockyer
acf2ab2d22 Added translation wrapper to public-facing strings in Portal
refs https://github.com/TryGhost/Ghost/issues/15502

- in order to use the translations, strings must be wrapped in the `t`
  function, which is passed through AppContext
- whilst I haven't instrumented all public strings, the vast majority
  are done here and the strings have been brought into the JSON locale files using `yarn translate:generate`
2023-02-28 10:03:04 +01:00
Daniel Lockyer
e630acdb88
Added i18n translate function to test context
refs https://github.com/TryGhost/Ghost/issues/15502

- this allows use of the `t` function whilst running tests
2023-02-27 13:35:11 +01:00
Daniel Lockyer
9e5efff187
Added @tryghost/i18n to Portal
refs https://github.com/TryGhost/Ghost/issues/15502

- this adds the package to Portal and integrates it into the state we
  pass around
- note: I've currently left the detection of the language
  (`site.locale`) commented for now until we flesh more of the
  implementation out
2023-02-27 10:50:37 +01:00
John O'Nolan
14c5e48190
Improved micro copy on Portal email tips 2023-02-15 12:30:03 -04:00
John O'Nolan
d4725bfe87
Updated email tips copy 2023-01-26 13:12:03 -04:00
Cathy Sarisky
9db27cfd50
remove hardcoded values from Portal (#15661)
Portal currently has a Globals.js file that spells out all the colors in use in Portal, which should make it easy to customize the portal colors to match the chosen theme. There are a bunch of hardcoded values and this PR deals with those. The final outcome of these changes is absolutely invisible.

Co-authored-by: Peter Zimon <zimo@ghost.org>
2023-01-24 13:23:11 +01:00
Rishabh
fea75365c7 Updated guard for site data in Portal
closes https://github.com/TryGhost/Team/issues/2276

Portal had died with an unintelligible error about portal plans/includes being undefined when there was missing site data in some extreme edge cases. This change catches any errors in site transformation and logs it to console instead of crashing portal unexpectedly
2023-01-13 21:01:58 +05:30
Peter Zimon
1ccb2f08e7 Improved mobile popup for feedbacks
no refs.

Post feedback popups were not optimised for mobile usage at all. All the content was on top of the window which is really hard to reach using a single hand/thumb and it just looked like a scaled down version of a desktop modal.
2023-01-13 15:14:49 +01:00
Rishabh
ee7474db45 Fixed portal failure on opening email prefs for logged out member
- opening email preferences page via portal link doesn't work if member is not logged in.
- opens the signin page now instead of silently crashing
2023-01-12 13:02:41 +05:30
Elena Baidakova
a7366249bc
Added data-test attr for e2e tests to Portal (#16104)
refs TryGhost/Team#2371
2023-01-11 19:39:29 +04:00
Rishabh
86c3a890a7 Updated portal frame ids
refs https://github.com/TryGhost/Team/issues/2371

- updates portal trigger and popup frame data test ids
2023-01-10 11:48:29 +05:30