93 Commits
Author SHA1 Message Date
Antoine ClausseandOlzhas Askar 3140e46e68 [web] Replace token-link email verification with 6-digit code on SSO registration (ORCID) (#33889)
* Replace token-link email with 6-digit code on SSO registration

Unverified SSO emails previously received a long-lived token link
(90-day TTL) via UserEmailsConfirmationHandler. This replaces that
flow with the same 6-digit code verification used for password
registration, redirecting through /registration/confirm-email.

- SSOManager.registerSSO now always confirms email (caller must
  verify first); removes sendConfirmationEmail / _finishRegistration
- SSOController._signUp sends confirmation code and stores
  pendingSSORegistration in session when IdP email_verified is false
- New SSOConfirmEmailHandler completes registration after code check
  via completeSSOEmailConfirmation module hook
- OnboardingController confirm-email handlers accept
  pendingSSORegistration alongside pendingUserRegistration

confirmEmailFromToken (POST /user/emails/confirm) removal is deferred
to a follow-up PR to avoid breaking in-flight 90-day tokens.

Closes #28607

* Fix unverified-email edge cases; Add ORCID e2e tests;

* Rename `confirmEmail` parameter to `emailVerifiedByIdP` in _signUp function

* Remove `sendConfirmationEmail`

* Mock getUserByAnyEmail in tests

* Extract _finishSSORegistration helper to deduplicate the register →
set session flags → allocate referral → finishSaasLogin → finishLogin
sequence shared by both the direct and deferred (code-confirmed) paths.

* Stop duplicating session data in pendingSSORegistration

analyticsId, splitTests, and referal_* are already in the session at
confirmation time — no need to copy them into pendingSSORegistration.
Re-fetch splitTests fresh on completion instead.

* Simplify the code

* Remove dead confirmEmail template

No callers remain after sendConfirmationEmail was deleted. The token-link
flow (confirmEmailFromToken) only validates tokens, never sends email.

* Remove dead reconfirmEmail template

* Address comments from Copilot

* Clear stale pending registration when starting a new flow

* Add unit tests for completeSSOEmailConfirmation

* Add `verificationMethod` param

* Fix camelcase issues

* Extract _createSSOUser and _registerAndFinish helpers to deduplicate registration logic

* Remove obscure "registration_error"

* Prevent FormTextIcon from shrinking

* Enable "email_already_registered_sso" error

* Misc. improvements to confirm-email-form.tsx

* Remove `UserEmailsConfirmationHandler` mock

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>

* Add info on sso_email.pug page

---------

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>
GitOrigin-RevId: d0196ebc6d81ff61bcd27726d0b899b743d08d64
2026-06-05 08:06:34 +00:00
0e4fe4090a [web] Migrate manual plurals to i18next _plural convention (#33989)
* Add tests on plurals

* Update `collabs_per_proj` and its pluralisations

* Update `n_user` and its pluralisations

* Update `showing_x_results` and its pluralisations

* Update `show_x_more_projects` and its pluralisations

* `bin/run web npm run extract-translations`

* Populate `_plural` keys in non-en locales

For 2-form languages (da, de, es, fi, fr, it, nl, no, pt, sv, tr), copy
the existing bare-key value into the new `_plural` sibling to prevent
i18next from falling back to English for count!=1.

Also remove orphan singular keys (`collabs_per_proj_single`,
`showing_1_result*`) left over from the previous commits.

Bare-key values remain in their original plural form pending translator
review — count=1 will still render the plural form in non-en until
translators flip those to singular. Multi-form (cs, pl, ru) and
single-form (ja, ko, zh-CN, zh-TW) locales are unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Flip non-en bare-key values to singular form

Per review, the i18next v3 plural convention uses the bare key for count=1
(singular) and `_plural` for count!=1. The non-en bare-key values were
left as the original plural form by the previous commit so the `_plural`
siblings could be copied from them; this commit flips the bare values to
the singular form per language.

Languages where singular and plural noun forms coincide (Finnish, Swedish,
Turkish) are unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: Olzhas Askar <olzhas.askar@gmail.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Olzhas Askar <olzhas.askar@gmail.com>
GitOrigin-RevId: 628513ca792c2dcce023247e52b7320e2741cc54
2026-06-02 08:07:17 +00:00
Olzhas Askar b5a73efaeb Merge pull request #34060 from overleaf/oa-timeout-cta
[web] Compile timeout CTA

GitOrigin-RevId: c1dd014150964ffec1b556943f572d3e5a8069ce
2026-06-01 08:04:24 +00:00
Olzhas Askar 014ac37704 Merge pull request #33814 from overleaf/oa-adjust-tooltip
[web] Adjust tooltip

GitOrigin-RevId: a180fb9872c9fc85b5ea7e3821e8e8c8393bab9d
2026-05-22 08:05:50 +00:00
Olzhas Askar 7c0595f9a9 Merge pull request #32063 from overleaf/oa-group-plans
[web] Rename group plans

GitOrigin-RevId: 8a3097dc1724709b5d7b163e0f9d968c21d63831
2026-04-30 08:05:10 +00:00
Olzhas Askar f4f6c493ac Merge pull request #32445 from overleaf/oa-greasy-translations
[web] Greasy translations

GitOrigin-RevId: e7bd350bac5d27bf1561ea25bce69ed255fe98cd
2026-03-31 08:07:53 +00:00
Jakob Ackermann 17e01526b4 [web] fix typo in i18n key (#31713)
* [web] fix typo in i18n key

* [web] sort locales

GitOrigin-RevId: 9736eae24cdbd7aabd995087de368c667b25b849
2026-02-24 09:07:18 +00:00
Davinder Singh 34173eda46 Change subscription page title to "Your subscriptions" (#29377)
* adding plural translations for the languages that were easy to test with the help of AI

* adding remaining translations

* adding your_subscriptions

* running make sort_locales

* fixing nl.json to make it formal You

GitOrigin-RevId: 7510e2f8eee87fd2a256ece434cc59e6877893e6
2025-11-11 09:05:44 +00:00
Alf Eaton c3881084be Merge pull request #29444 from overleaf/ds-remove-brazil-discount-banner
Removing GEO Price Banner from Brazil

GitOrigin-RevId: 85968cb546083bb3d3a526061daf8e6c1149867d
2025-11-04 09:06:06 +00:00
Olzhas Askar d11674a51f Merge pull request #28540 from overleaf/oa-punctuation
[web] Notification punctuation

GitOrigin-RevId: ba20f0049a5f72f3ba03917d9fe76b220adffcf0
2025-09-23 08:07:49 +00:00
CloudBuild efa20c26c9 auto update translation
GitOrigin-RevId: 410e63cee274ad03fc9f64b277ff0cd8aa8c1995
2025-05-30 08:05:46 +00:00
CloudBuild 1c6ee3f930 auto update translation
GitOrigin-RevId: 4e2e3d1e7ca70f76f13f905753ba1ca2c945b72f
2025-05-27 08:05:55 +00:00
CloudBuild c4c8f521ff auto update translation
GitOrigin-RevId: 07588ad1e4cbc9028cf0de125b4c6c222e1b0ecc
2025-05-19 08:05:37 +00:00
CloudBuild f2030789d1 auto update translation
GitOrigin-RevId: 6363d21d4903cb8f4cdcca28ec1b1baca39406b1
2025-04-07 08:05:11 +00:00
CloudBuild e08e58485e auto update translation
GitOrigin-RevId: 034ad5d613a28540d777f88c75e7284bc7eb7c3e
2025-03-31 08:05:01 +00:00
CloudBuild ab19677a6c auto update translation
GitOrigin-RevId: 9ba894868c164a34d5420369c798d837a06fd450
2025-03-24 10:51:34 +00:00
CloudBuild e8462f4250 auto update translation
GitOrigin-RevId: d8edcccce86a3892bebf2b4ab2d769275a231325
2025-03-24 10:51:30 +00:00
CloudBuild 6a344c7a52 auto update translation
GitOrigin-RevId: 037a91f43519537e0dc572771f8cbe92659d61df
2025-03-10 09:05:31 +00:00
CloudBuild b5031fdee5 auto update translation
GitOrigin-RevId: ba3022ee74dee8356611c970a9cd880930023d34
2025-03-10 09:05:27 +00:00
CloudBuild 1aec79d726 auto update translation
GitOrigin-RevId: 3e637f00e1a54160e992e6c9cfc277e554677301
2025-02-07 09:06:45 +00:00
CloudBuild 958d889cbe auto update translation
GitOrigin-RevId: 9d4df12b84ae4e63c54b8039c8e35eab506d8fa5
2025-01-22 09:05:25 +00:00
CloudBuild 22d007e8f4 auto update translation
GitOrigin-RevId: 087736340479ca8ef4b974e9b652e9e49011c764
2025-01-15 09:05:10 +00:00
Antoine Clausse 485bccebef [web] Update loading spinner in IDE for BS5 (#21970)
* Update `LoadingPane` with `LoadingSpinner`

* Remove unused file no-open-doc-pane.tsx

* Remove translation `open_a_file_on_the_left`

GitOrigin-RevId: 9045443de6aaf19b1d4bf82cd2be3ba91ee53bf1
2024-11-21 09:04:31 +00:00
CloudBuild 776647d62a auto update translation
GitOrigin-RevId: 96e1603b6e71d6cfbf5e9cdb47a9fe46be7e35e3
2024-11-08 09:06:32 +00:00
CloudBuild 77e0f6169a auto update translation
GitOrigin-RevId: d0cbd0f3ed525dbcec7576a9bf23ac5817e743b7
2024-09-25 08:06:29 +00:00
CloudBuild d4f808152e auto update translation
GitOrigin-RevId: 9995a6ce69703a5237790765af8ec656b8942dde
2024-08-22 08:06:07 +00:00
CloudBuild 8b30b74e08 auto update translation
GitOrigin-RevId: cbbfa22f8135cdea6c324ca81cef5d39518a9c30
2024-08-02 08:05:53 +00:00
CloudBuild 920b35c6fa auto update translation
GitOrigin-RevId: 501e6e20b59e3b17f25b462db8def4f125e99305
2024-07-15 09:02:53 +00:00
CloudBuild 6adade191f auto update translation
GitOrigin-RevId: 1d8ec2514af0da765314e63720f22b23cdd6ccd1
2024-06-19 08:05:18 +00:00
CloudBuild 6980a44f8b auto update translation
GitOrigin-RevId: bae1485e0792582f6a3bee3a791c193c8c7a5bee
2024-06-17 08:04:34 +00:00
CloudBuild 43c3c0c22e auto update translation
GitOrigin-RevId: f2b80a461106286993584d5d163053e11fbfbf63
2024-05-17 08:05:15 +00:00
David 0c20c86878 Merge pull request #18178 from overleaf/dp-insert-figure-translations
Add translations for insert figure dropdown

GitOrigin-RevId: 6ffbf0229f7ac222619271688517bc50339c10f6
2024-05-06 08:04:16 +00:00
CloudBuild fb05c0bb82 auto update translation
GitOrigin-RevId: 1850bdf3c1c7cd7c3e4b60ed895278602f4be0f9
2024-05-02 08:04:04 +00:00
CloudBuild 5b068780c7 auto update translation
GitOrigin-RevId: 3cf31cc9e3661cf207768112634cd876b771c50f
2024-04-23 08:05:59 +00:00
CloudBuild 732667a49b auto update translation
GitOrigin-RevId: 23ed612a380acb13d50eab1004b07d439238f61c
2024-04-19 08:04:32 +00:00
CloudBuild 91b67bc0bd auto update translation
GitOrigin-RevId: 3dcbbdf39ec5106a69f592d1e84fdba1a0ac7ec2
2024-04-16 08:05:03 +00:00
CloudBuild d6b1577393 auto update translation
GitOrigin-RevId: f0d1233b2dedcfe71ca28a637c7685129260df52
2024-04-11 08:04:37 +00:00
CloudBuild af037ddb43 auto update translation
GitOrigin-RevId: ec414f46c10ae1d8b0af22360184ece3e5c2433c
2024-04-09 08:04:49 +00:00
Davinder Singh 998d55d159 Merge pull request #17559 from overleaf/ds-latam-v2
LATAM Geo Pricing - Introducing split test in LATAM countries Round 2

GitOrigin-RevId: 76ab880262f126f8db7f8e577154d78b5e9abf7a
2024-04-09 08:04:06 +00:00
CloudBuild effae56462 auto update translation
GitOrigin-RevId: 0c5c1282b01d2e5460793063862397373d8bfd3e
2024-04-08 08:04:45 +00:00
David b1928cecef Merge pull request #17530 from overleaf/dp-teardown-onboarding-flow-split-test
Teardown onboarding flow split test

GitOrigin-RevId: 48e95e4e736772074cb68d195fc950a9da3aebcf
2024-04-08 08:04:04 +00:00
CloudBuild c159704ca7 auto update translation
GitOrigin-RevId: d6d1d01f5d41f093d1e02751eee5c9bba3ee46b9
2024-03-08 09:03:02 +00:00
CloudBuild ef71a6f1fc auto update translation
GitOrigin-RevId: 1454a800f9d0f73e43031a81025a8ef86321ca92
2024-02-21 09:03:41 +00:00
CloudBuild 2e6439b6b9 auto update translation
GitOrigin-RevId: ab2594ef16e8ff5d558f9496bde4d00037c2ab0e
2024-02-14 09:06:26 +00:00
M Fahru f0247a3311 Merge pull request #15302 from overleaf/mf-fix-unlink-github-sync-behaviour
[web] Unlink github from collaborators when project owner unsubcribes and github feature was lost

GitOrigin-RevId: 81b81cfb75e3a3684e185ef13d8c0aca19d5699d
2024-01-30 09:04:39 +00:00
CloudBuild 92f8e445d3 auto update translation
GitOrigin-RevId: cb705c267e609446e0e9f12773f3645c6b65754b
2024-01-05 09:03:52 +00:00
CloudBuild cbe87e89b9 auto update translation
GitOrigin-RevId: ba1315cb8dd3c81580ba4a24016d9916356cb8be
2023-12-08 09:05:10 +00:00
CloudBuild a722ca9483 auto update translation
GitOrigin-RevId: 39a5686574709e4a2e4434d4a6734177844fa758
2023-12-07 09:04:43 +00:00
CloudBuild 28d4275538 auto update translation
GitOrigin-RevId: f4342745e173db023168bba2f7211428cc60ea85
2023-11-27 09:04:35 +00:00
Alf Eaton 0124712cd2 Restore escaped standalone ampersands in translations (#15373)
GitOrigin-RevId: 8f505ea4906d9adfddfd72b7609c0c3e465f6b56
2023-10-24 08:03:18 +00:00