Commit Graph
240 Commits
Author SHA1 Message Date
Olzhas Askar a234c3cb27 Merge pull request #36952 from overleaf/oa-your-subscriptions
[web] Translate your subscriptions

GitOrigin-RevId: 20b249d8d94a33474d34ee8575c8e41667b6cf0f
2026-09-17 12:07:44 +00:00
Antoine Clausse 09c564fbc4 [web] Cleanup plans-2026-phase-1 - phase 5: unused files in pricing pages (#36688)
* Remove unused Pug files related to Pricing

* `make cleanup_unused_locales`

* Remove unused `descriptionMobile`

* `make cleanup_unused_locales`

* Remove dead CSS

* Remove non-EN dead keys

* Remove "ai-assist" dead CSS

* Remove "ai-assist" listeners

* Remove `plans-new-tabs` and related

* Remove dead SCSS variables

* Remove more dead CSS (mobile)

GitOrigin-RevId: 08c452f66fe5b4d5bca4bb8cf2171254f960bc71
2026-09-17 12:05:47 +00:00
Jessica Lawshe 69b585caf7 Merge pull request #36752 from overleaf/jel-group-sso-email-check
[web] Stop enforcing requested email for group SSO matches linked account

GitOrigin-RevId: 4988ecf76069d531e3aea892d07a134252c30323
2026-09-17 12:05:30 +00:00
David 90be47c5e1 Merge pull request #36649 from overleaf/dp-cleanup-library-feature-flag
Remove the overleaf-library feature flag

GitOrigin-RevId: ebeabd43c9e44dbc2344b4e8e7e5b9095fcc86e0
2026-09-17 12:04:13 +00:00
Olzhas Askar e9206d2b95 Merge pull request #36312 from overleaf/oa-unhardcode-homepage
[web] Unhardcode homepage

GitOrigin-RevId: 7ae0b66b5db57998ad1bd1988766d45e096620f7
2026-09-17 12:02:34 +00:00
Olzhas Askar b4880f691e Merge pull request #36346 from overleaf/oa-fix-counts
[web] Fix counts

GitOrigin-RevId: b1ec87eb19d41c897b205d2ff178ab2b600fb987
2026-09-17 11:51:17 +00:00
Olzhas Askar f513b1aa52 Merge pull request #36302 from overleaf/oa-teardown-trial-ineligible-cta
[web] Teardown trial ineligible cta

GitOrigin-RevId: 4d114943bc2839b29b6eae3a133d6c235f98ffcc
2026-09-17 11:50:24 +00:00
Olzhas Askar 58d76ff1a0 Merge pull request #36247 from overleaf/oa-wider-panel
[web] Wider checkout panel

GitOrigin-RevId: ea9edafa4e11b0b04d5a74c664781c3dd0cc5e87
2026-09-17 11:50:20 +00:00
Olzhas Askar 49747e61c9 Merge pull request #36163 from overleaf/oa-cookie-banner
[web] Rephrase the cookie banner

GitOrigin-RevId: 229cf5ead3d6a9f7c8fa1b8dda45508b06b23c42
2026-09-17 11:47:40 +00:00
Maria Florencia Besteiro Gonzalez 02d36687cd Merge pull request #35739 from overleaf/mfb-bring-main-bibliography-to-top-level
Bring main bibliography file to the top level settings

GitOrigin-RevId: 4c4d4927067995d947c6d0656425760ce56f9435
2026-09-17 11:36:48 +00:00
Mathias Jakobsen 33e0a5e1c2 [web] Remove toasts and NEW indicators from conversions (#35591)
* [web] Remove toasts for document conversions

* [web] Remove NEW indicators from document conversions

GitOrigin-RevId: 608b344d9be596ecb3cf4573ab1152f78d7d9d43
2026-09-17 11:36:11 +00:00
Olzhas Askar d29eefaa64 Merge pull request #35478 from overleaf/oa-paywall-ctas
[web] Paywall CTAs

GitOrigin-RevId: 26703fe008926db67473a43ef64addca0e23accd
2026-09-17 11:30:50 +00:00
Thomas e0d77271c2 Merge pull request #35452 from overleaf/tm-commons-ai-label
[WEB] Show "Commons AI" label when the AI assist bundle is active

GitOrigin-RevId: f49722b94be9b12c7ed5f031dc98182e3a761273
2026-09-17 11:27:03 +00:00
Olzhas Askar dd48dfa093 Merge pull request #35158 from overleaf/oa-compile-timeout-final
[web] Compile timeout CTA

GitOrigin-RevId: f64c651332a32c293da1f3256cf9443413878d63
2026-09-17 11:16:42 +00:00
Antoine ClausseandClaude Opus 4.8 e5f712a857 [web] Cleanup plans-2026-phase-1 - phase 2: pug/backend pricing (#34623)
* Remove `plans2026` from pug files in subscriptions module

* Remove `plans2026` param from `makeGroupPlans`

* Remove `plans2026` param from `makeUISettings` in interstitial-payment.mjs

* Remove `plans2026` param from `makeInterstitialPaymentConfig` in interstitial-payment.mjs

* Remove `plans2026` param from `makeIndividualPlans`

* Remove `plans2026` param from `makeStudentPlans`

* Remove `plans2026` from try-premium page

* Remove `plans2026` from controllers

* Remove unused files

* Update translations

* Update tests

* Update tests

* Remove unused translations

* Rename the collaborator upgrade-mode test to read explicitly as the
Standard-plan replacement for the removed redirect test, and drop the
stale "when plans 2026 is enabled" framing now the controller no longer
branches on the flag.

* Surface controller errors in InterstitialPayment tests

Move assertions out of the res.render callback into render/redirect
helpers that resolve with the captured args and reject on the wrong
path or a controller rejection, so failures show the real error
instead of timing out. Restore the ai-limit-upgrade-copy split-test
assignment for the AI copy tests.

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

* format

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
GitOrigin-RevId: f0b055b4d92b494b531766a13b057336d9c2c9af
2026-06-19 08:06:03 +00:00
roo hutton 1dfe6e60b3 Merge pull request #34534 from overleaf/rh-rm-recurly
[web] Remove conditional Recurly checkout page

GitOrigin-RevId: 5bb773080bba682628f0f5428c72b7dff75b6015
2026-06-18 08:06:17 +00:00
Antoine Clausse 0d004926e6 [web] Cleanup plans-2026-phase-1 - phase 1: frontend (#34619)
* Remove `plans-2026-phase-1` from frontend in subscriptions module

* Remove `plans-2026-phase-1` from general frontend

* Remove empty `AiErrorAssistantPaywall`

* Simplify `UpgradeNotification`

* Update translations

* Fix tests

* Remove `OverleafAssistPaywall`

* Remove unused locales

GitOrigin-RevId: 4cf04bbde134a3f7b778a0695d388f31d9765343
2026-06-18 08:06:01 +00:00
Rebeka Dekany 5a821a055b Show tax note conditionally and update zero-tax disclaimer wording (#34454)
* Hide tax note when tax is included and update zero-tax disclaimer wording

* fix: update taxes_may_be_added key in all non-English locale files

GitOrigin-RevId: 9cd0e0aba6d548221e97d383b0a2e52a2e0a077c
2026-06-10 11:59:06 +00:00
Antoine ClausseandClaude Opus 4.7 9dde7d3d71 [web] Add ESLint rules for locale JSON (#34221)
* Remove double spaces

* Enforce curly apostrophes

* Enforce French typographic spaces in fr.json

Add vitest test enforcing French spacing rules per
https://typographisme.net/post/Les-espaces-typographiques-et-le-web:
  - NNBSP (U+202F) before ? ! ;
  - NBSP (U+00A0) before :
  - NBSP (U+00A0) around guillemets « »

Fix 38 fr.json values that were using NBSP (or no space) before ? ! ;.

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

* Extend French typography test to numbers and percent signs

Add rules per https://typographisme.net/post/Les-espaces-typographiques-et-le-web:
  - NNBSP (U+202F) between digit groups (thousands separator)
  - NBSP (U+00A0) between a number and a following word/unit
  - NBSP (U+00A0) before %

Fix 9 fr.json values where a regular space was used instead of NBSP between
a number and a following word (e.g. "1 résultat", "10 jetons", "7 jours").

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

* Use point médian for inclusive writing in fr.json

Replace parenthetical gender/plural markers like "sûr(e)", "abonné(e)",
"licence(s)" with the point médian "·" (e.g. "sûr·e", "abonné·e",
"licence·s") per modern French écriture inclusive.

Add a vitest rule rejecting "word(suffix)" patterns where suffix is 1-3
letters and there is no space before the opening parenthesis.

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

* Simplify inclusive-writing check to "(e)" substring match

The previous regex (matchAll without the /g flag) would have thrown at
runtime. Drop matchAll entirely and use includes('(e)').

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

* Add point médian to participles in fr.json

Apply inclusive writing (·e) to past participles agreeing with the
addressed user ("affilié·e", "invité·e", "connecté·e", "abonné·e", etc.).

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

* Use inclusive forms in fr.json

* Change "de Overleaf" to "d’Overleaf"

* Fix tests

* Check for consecutive spaces, not just double spaces

* Update comment about guillemets

* Add ESLint rules for locale JSON conventions

Add three rules to @overleaf/eslint-plugin that run against locale JSON
files via @eslint/json:

- no-consecutive-spaces-in-locales
- no-straight-apostrophes-in-locales
- french-typography-in-locales

Wire them up in services/web/eslint.config.mjs against `locales/*.json`
(and `locales/fr.json` for the French-typography rule).

* Add `@eslint/json` so JSON files can be parsed

* Scope JS/TS-specific config to JS/TS files only so that built-in rules aren't applied to JSON files

* Disable `no-irregular-whitespace` in french-typography-in-locales.js

* Make the rules fixable

* Improve regexes: user `\s` instead of custom matchers

* Add sorted-keys-in-locales ESLint rule

Mirrors scripts/translations/sort.js as a fixable ESLint rule:
require top-level keys in locale JSON files to be sorted alphabetically.
The autofix re-serializes the file with sorted keys.

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

* Add no-unused-locale-keys ESLint rule

Mirrors scripts/translations/cleanupUnusedLocales.js as a fixable ESLint
rule applied only to en.json. Shells out to `find` + `cat` once per
process (cached) to grep all candidate source files for key references,
then reports any en.json key that isn't found. The autofix re-serializes
en.json without the unused keys.

Hardcoded ALWAYS_USED set covers keys built at runtime (month names,
third-party-datastore notifications) that the regex scan can't see.

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

* Add locale-variables-match-en ESLint rule

Mirrors scripts/translations/checkVariables.js as an ESLint rule applied
to non-en locale JSON files. Reads en.json (cached) and reports any
member whose `__name__` placeholders differ from the base.

GLOBALS (e.g. __appName__) are allowed as extras; IGNORE_NESTING_FOR
preserves the script's per-key exceptions.

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

* Replace some double linebreak (@overleaf/no-consecutive-spaces-in-locales)

* Add no-orphan-locale-keys ESLint rule

Detect translation keys in non-en locale files that aren't present in
en.json. Mirrors the `--sync-non-en` flag of cleanupUnusedLocales.js.
The autofix re-serializes the locale file without the orphan keys,
sorted alphabetically.

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

* Add tests for the locale JSON ESLint rules

Cover the four single-file rules:
  - no-consecutive-spaces-in-locales
  - no-straight-apostrophes-in-locales
  - sorted-keys-in-locales
  - french-typography-in-locales (including the inclusive-writing
    suggestion for "(e)")

The three cross-file rules (no-unused-locale-keys, no-orphan-locale-keys,
locale-variables-match-en) read from disk and aren't covered here; they
need integration tests via fixtures.

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

* Drop bin/lint_locales — checks are now covered by ESLint rules

The four checks in bin/lint_locales are duplicated by the new
@overleaf/eslint-plugin rules:

  - sort.js --check                  → sorted-keys-in-locales
  - cleanupUnusedLocales.js --check  → no-unused-locale-keys
                                     + no-orphan-locale-keys
  - checkVariables.js                → locale-variables-match-en
  - single-quote grep                → no-straight-apostrophes-in-locales

`yarn lint` runs the ESLint rules against locales/*.json, so the
lint_locales script and Makefile target are redundant.

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

* Remove Locales.test.mjs

* Delete scripts replaced by @overleaf/eslint-plugin rules

Remove the three locale scripts now superseded by ESLint rules:

  - scripts/translations/sort.js                   → sorted-keys-in-locales
  - scripts/translations/cleanupUnusedLocales.js   → no-unused-locale-keys
                                                   + no-orphan-locale-keys
  - scripts/translations/checkVariables.js         → locale-variables-match-en

Also drop the matching Makefile targets (sort_locales,
cleanup_unused_locales), update AGENTS.md / copilot-instructions.md to
point at `yarn lint --fix` instead, and prune the deleted entries from
the esm-check-migration allowlist.

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

* Delete redundant scripts/translations/sort-locale-file.js

Single-file sort utility — superseded by `yarn lint --fix path/to/file.json`
via the sorted-keys-in-locales ESLint rule. No callers in repo.

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

* Update comments and messages

* Add test file pattern to ESLint configuration

* Reorder "Backend specific rules" so `no-extraneous-dependencies` doesn't fail on test files

* Make french-typography fixes idempotent and catch edge cases

Apply Copilot's review feedback on PR #34221:

  - autoFix() now uses `\\s*`/`\\s+` instead of `\\s?`/`\\s` so it
    collapses any run of mixed whitespace into the correct NBSP/NNBSP,
    making the fix idempotent and order-independent.
  - The `:` lint regex now captures optional whitespace and reports
    when it isn't NBSP (catches `"Liste :"` with a regular space).
  - The `%` lint regex now matches the missing-space case (`"10%"`)
    via `\\s*` instead of requiring one char between digit and `%`.

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

* Remove sort-locale-file.js from pre-commit

* Revert no-unused-locale-keys ESLint rule; Restore lint_locales scripts

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
GitOrigin-RevId: 8351fab074e6e7f77920b70237df1cd1c781e053
2026-06-10 08:06:44 +00:00
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
Domagoj Kriskovic 5cf1b43ce7 Add Markdown visual editor support
GitOrigin-RevId: 4ec2ffb276c729a58f82ccb26ed571f4187a4178
2026-06-04 08:06:04 +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
Miguel Serrano f07212337f [web] Replace pro with commons wording on institutional subscript… (#34078)
* [web] Replace `pro` with `commons` wording on institutional subscriptions

Replaces the wording in several places:
- subscription settings
- email tags
- features tooltip
- institution portal

GitOrigin-RevId: 1b9a0e51245ed8a41865300d9e9d555bc05e6c17
2026-05-29 08:06:32 +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 868da835b6 Merge pull request #32434 from overleaf/oa-babelfish
[web] Project Babelfish

GitOrigin-RevId: da8c47c0831eaab3e2c74a9507892ae9571919e8
2026-05-18 08:05:57 +00:00
Olzhas Askar 6c267e68d3 Merge pull request #33707 from overleaf/oa-learn-links
[web] Learn Overleaf links

GitOrigin-RevId: af9f72da008ad8b8c86e4c355268123eb6c40bcd
2026-05-18 08:05:48 +00:00
Jimmy Domagala-Tang 6a6bb625db feat: removing duplicated error messaging when user hits paywall, now leave any limit messaging to the paywall instead of also handling it in the error assist components (#33337)
GitOrigin-RevId: d3a915e75e5ba4f10c109e8e971b00a84177109a
2026-05-05 08:06:37 +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 d3b60bcb46 Merge pull request #31750 from overleaf/oa-update-student-features
[web] Update student collaborators

GitOrigin-RevId: fa4631c4d6e95eaa4823d1d5db125231c6cd0c00
2026-04-24 08:06:58 +00:00
Olzhas AskarandAntoine Clausse b345bf9485 [web] Update captcha notice (#32286)
* feat: remove translations

* feat: remove scss

* fix: remove the last translation

* feat: remove pug

* fix: forgotten conditions

* feat: also remove from react

* Revert changes

* Remove links from `recaptcha_conditions`

* Center short reCAPTCHA notice on CIAM screens

* Re-add the Chinese translation

---------

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: 64e7b8a38c2a4b4f7e60d5c9df6740c35b8763d8
2026-04-14 08:05:15 +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
Antoine ClausseandCopilot d5a65e906f [web] Paywall and other AI text edits (#31993)
* Update Compile timeout copy

* Update Collaborator limit copy

* Update Track changes copy

* Update History copy and "Start free trial" button

* Remove unnecessary children passed to StartFreeTrialButton

* Update Dropbox copy

* Update Github copy

* Update Git copy

* Update Reference managers copy

* Update Symbol palette copy

* Update Onboarding prompt copy

* Update Subscriptions page (on free account) copy

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

* Add split-test assignment in subscription page

* Fix tests

* Update services/web/modules/symbol-palette/frontend/js/components/symbol-palette-overlay.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update services/web/modules/onboarding/app/views/onboarding/try_premium.pug

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update services/web/modules/onboarding/app/views/onboarding/try_premium.pug

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Replace `Github` to `GitHub` in translations

* Update "non Overleaf" to "non-Overleaf"

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: 56ee2735899de18f820b229bc226249322ac0c87
2026-03-06 09:17:11 +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
Alf Eaton 3b027a2b08 Prevent "Remove access" text being cut off in Share model (#30976)
GitOrigin-RevId: ed577d83afd150d64c99bd6577d7543d9297f91a
2026-01-28 09:06:59 +00:00
Rebeka Dekany 722e2a0359 Refund policy changes from 30 to 14 days (#30819)
* Change the refund policy from 30 to 14 days

* Align AI suggestions trial period with 14-day refund policy

* Revert "Align AI suggestions trial period with 14-day refund policy"

This reverts commit d3327c71c05543a751acd66450183bbf0eb95fd7.

GitOrigin-RevId: b77e09b2bb508951b68ae3a00b95146e6898bac5
2026-01-20 09:07:09 +00:00
Antoine Clausse da72a45e86 [web] Requested changes to email verification screens (#30173)
* no grey hyphen when the input is empty

* show email in bold

* Fix tests

* Add test to verify email display in confirmation code input

* Format

GitOrigin-RevId: ade4a670b9dc80b99f64cc3273407a98428521b8
2025-12-09 09:05:46 +00:00
Kristina 198a2fc943 [web] limit trials to one per lifetime (#29682)
* limit trials to one per lifetime
* update warning on checkout

GitOrigin-RevId: 6c9ac771c8b8eaa2bd86bdb9e7f3931783388c0d
2025-11-17 09:05:40 +00:00
Malik Glossop 65419ad6f1 Merge pull request #29520 from overleaf/mag-tool-tip-casing
Update toolbar tooltips

GitOrigin-RevId: 80d3fa906776684275c856d1a74171d5b8a4f65a
2025-11-12 09:05:23 +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
Antoine Clausse 4d1e316bea [web] Conditionally render copies of login/register pages (Pug) depending of a uniaccessphase1 split-test (#29390)
* Conditionally render a CIAM copy of login.pug depending on `ciam` split-test

* Conditionally render a CIAM copy of register.pug depending on `ciam` split-test

* Conditionally render a CIAM copy of institutional_login.pug depending on `ciam` split-test

* Rename the test to `uniaccessphase1`

* Fixup ciam paths (underscores, not hyphens)

* Escape translations in `log_in_with_existing_institution_email`

See https://github.com/overleaf/internal/pull/29390#discussion_r2479318609

GitOrigin-RevId: fff0e154d1e1faad4842a2c49fa5889f9cc189e6
2025-11-03 09:05:53 +00:00
Simon Gardner 41976072e5 Update UX copy for group member management options
GitOrigin-RevId: 33fcc1da1fae77f57ca4833cbaf314f497ef0ab7
2025-11-03 09:05:11 +00:00
Davinder Singh 618f79d4cf removing the sentence and related functions and translation (#29269)
GitOrigin-RevId: 0969d0eb1ec1da0e15f606bb3bdcf86908fa45f7
2025-10-28 09:05:06 +00:00
Borja ce38ba6fc1 Refactor Writefull toolbar (#28911)
GitOrigin-RevId: 1d8a3addc9046dc67c0cca20d5cf4fba35d132d1
2025-10-15 08:07:42 +00:00
Antoine ClausseandRebeka 8c15af1a70 [web] Fix FileTreeModalCreateFile modal style on "too many files" error (#28995)
* Temporarily update `maxEntitiesPerProject` to test `FileTreeModalCreateFile`

* Remove unused CSS

* Move project_has_too_many_files Notification to the modal body

* Turn project_approaching_file_limit message into a Notification

* Update project_has_too_many_files translation with `fileCount.limit`

* Update other project_has_too_many_files with limit parameter

* Add translations for project_has_too_many_files_limit

* Revert "Temporarily update `maxEntitiesPerProject` to test `FileTreeModalCreateFile`"

This reverts commit 704996aa96c9ba592c7e44d165def0b97d30bed1.

* Fix unit tests

* Move the warning notification to the modal's body

---------

Co-authored-by: Rebeka <o.dekany@gmail.com>
GitOrigin-RevId: 0f54db7021e4cd4537a14e4f9e1d8ef54337778c
2025-10-15 08:07:16 +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
Alf Eatonandcopilot-swe-agent[bot] d6f6cbe189 Remove visual paste and history restore feedback surveys (#27891)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
GitOrigin-RevId: ee0a215dfc5ed6aa589b8012d2e930d9c3b0824f
2025-08-27 08:06:23 +00:00
MoxAmber 0a79ac75ff Merge pull request #26312 from overleaf/as-10s-compile-timeout
[web] 10s Compile Timeout: Warning Phase

GitOrigin-RevId: 749baad646fa7ef0d3a8e14fbbb5edec7b227ed3
2025-06-13 08:06:13 +00:00
CloudBuild 9e9ad3c005 auto update translation
GitOrigin-RevId: 52a28c6823536ef916c656128dbcdff1da80635b
2025-06-06 08:06:46 +00:00
CloudBuild 0037b0b3fc auto update translation
GitOrigin-RevId: f0b783bc74dc2212d330305600c8f3d16d27eef3
2025-06-05 08:06:11 +00:00