Commit Graph

69 Commits

Author SHA1 Message Date
roo hutton
8cb07fdb08 Merge pull request #27141 from overleaf/rh-stripe-schedule-pause
Support subscription pausing in Stripe

GitOrigin-RevId: 5550b2af2db99fd456d591c9bb4ba64d34dc7615
2025-07-24 08:05:29 +00:00
Liangjun Song
9f78291e94 Merge pull request #26934 from overleaf/ls-support-individual-to-group-plan-upgrade
Support individual to group plan upgrade in Stripe

GitOrigin-RevId: 24cbe7bd6de86a4d9410e1abc49b6457e0871f40
2025-07-16 08:05:20 +00:00
Domagoj Kriskovic
a9e47f043a Move AI related functions from PaymentProviderEntities to AiHelper (#26956)
* Move AI related functions from PaymentProviderEntities to AiHelper

* added @ts-check

GitOrigin-RevId: 8c8eec334b40a7f8f8533f6d5194f428112f68f9
2025-07-10 08:07:51 +00:00
Kristina
d6b99c00ee Merge pull request #26494 from overleaf/kh-fix-trial-transitions
[web] fix upgrades/downgrades while on trial

GitOrigin-RevId: 4076befc5dbbee32b0cf2a4ff99db96a0cf3ad8b
2025-06-18 08:06:55 +00:00
Kristina
6520d917e3 Merge pull request #26014 from overleaf/kh-remaining-references-to-recurly-fields
[web] update remaining references to `recurlyStatus` and `recurlySubscription_id`

GitOrigin-RevId: f5e905eba598cfcd146803c6ccc36a2304021544
2025-06-09 08:05:17 +00:00
Jakob Ackermann
4d4c02f885 [web] fetch users subscriptions once from project dashboard (#25652)
* [web] fetch users subscriptions once from project dashboard

* [web] fix types

GitOrigin-RevId: 18de18f8d4237d97087ef92eaa5052f253a92813
2025-05-19 08:05:04 +00:00
Kristina
a99f16ed15 [web] prevent downgrade to personal upsell for stripe subscriptions (#25392)
GitOrigin-RevId: a954f42e1159e4bcc8fd06f5f6df9a53c67f9f90
2025-05-13 08:06:05 +00:00
Kristina
a926fd7dc5 Merge pull request #25082 from overleaf/kh-prevent-pausing-and-group-plans
[web] prevent pausing or upgrading to group for Stripe subscriptions

GitOrigin-RevId: 4d194339282d8bc165ffa1b89e8e1cf298c2d343
2025-04-29 08:05:09 +00:00
Kristina
ebc9139a36 Merge pull request #24922 from overleaf/kh-add-customer-portal-links
[web] add stripe customer portal link

GitOrigin-RevId: 6baaf51d4dd89ef779229ad17603529db06cf396
2025-04-24 08:05:44 +00:00
M Fahru
80e07aab5d Merge pull request #24833 from overleaf/kh-add-stripe-get-subscription
[web] fetch Stripe subscription

GitOrigin-RevId: bffc31224aece584f4f1e3294bb1285d17f99195
2025-04-18 08:05:44 +00:00
Kristina Hjertberg
67c950fc4c [web] mv PaymentService to modules
GitOrigin-RevId: 73d739f53d96ff9e9d51a535907dbdc878aa6624
2025-04-17 08:05:58 +00:00
Kristina
36fcc401cc Merge pull request #24680 from overleaf/kh-rename-recurly-namespace
[web] rename recurly namespace

GitOrigin-RevId: b7cfd26923d47bd7f3de4140be24d2d1ef20f6c8
2025-04-11 08:05:20 +00:00
Kristina
84dd590650 Merge pull request #24396 from overleaf/kh-rm-unused-recurly-subscription-property
[web] rm dead code in `SubscriptionViewModelBuilder`

GitOrigin-RevId: 64006e3f51f61c40e2d4e01fd04961546319ffdd
2025-04-11 08:05:16 +00:00
Kristina
1ee30f8683 Merge pull request #24519 from overleaf/kh-add-payment-service-low-delta
[web] add `PaymentService` to `buildUsersSubscriptionViewModel`

GitOrigin-RevId: 543531226bad38d34b225dae28cf00a5e02e5558
2025-04-10 08:05:06 +00:00
ilkin-overleaf
f166e9263c Merge pull request #23117 from overleaf/ii-flexible-group-licensing-subscription-page
[web] Subscription page for flexible licensing

GitOrigin-RevId: 8f2fab1fc01e27063d716a86add66b1b9a72cbe6
2025-02-05 09:05:54 +00:00
roo hutton
c1b8bfd73c Merge pull request #21905 from overleaf/rh-pause-sub
Add support for pausing subscription

GitOrigin-RevId: f939ea4e7f3c2b1fa16dcb8aff1b2460d091d4e2
2025-01-23 09:06:04 +00:00
M Fahru
8f21f58ad5 Merge pull request #22340 from overleaf/mf-clean-up-currency-format-test
[web] Clean up localized currency format test (`local-ccy-format-v2`)

GitOrigin-RevId: 30d671479522b87ee9205994508b745d2b0ae4c3
2025-01-14 09:05:49 +00:00
Eric Mc Sween
9b5bc6bce8 Merge pull request #22165 from overleaf/em-hide-upgrade-button
Hide upgrade button for AI add-on + Group/Commons users

GitOrigin-RevId: 58cd522a1fa08f477fd6509f6d12a728309718d8
2024-11-28 09:06:11 +00:00
Eric Mc Sween
ecf09faecb Merge pull request #22024 from overleaf/em-standalone-ai-add-on-is-not-premium
Do not hide upgrade buttons when on standalone AI add-on

GitOrigin-RevId: ec5cf42c051745d5ca1dff57f7cd27a89c21a6a9
2024-11-26 09:04:57 +00:00
Jimmy Domagala-Tang
f8892cbc2e Merge pull request #20968 from overleaf/jdt-subscription-page-addons
feat: add all add-ons to price calculation in subs view model
GitOrigin-RevId: d03374192d735278c6459fc6341a72d0b0c7c3aa
2024-11-05 09:05:49 +00:00
Jimmy Domagala-Tang
4ac33b7ed5 Merge pull request #20571 from overleaf/jdt-ai-addon-personal-upgrade
Enable purchasing an AI add-on for users on a monthly collaborator plan

GitOrigin-RevId: 988547bf6f01f7c1477191dd202df4448e376e5f
2024-10-14 11:09:04 +00:00
Eric Mc Sween
fcbb922326 Merge pull request #20520 from overleaf/em-ts-import
Use new import JSDoc syntax for Typescript annotations

GitOrigin-RevId: 782456d637fc8f2de6163b5d70fabf06c1d74964
2024-09-23 08:04:47 +00:00
Antoine Clausse
7ed5000e29 [web] Use localized number formatting for currencies (#17622)
* Add a unit test on `SubscriptionFormatters.formatPrice`

* Add JSDoc to `formatPrice`

Also: Name the functions before exporting:
This fixes my IDE (WebStorm) navigation

* Make `'USD'` the default param instead of reassigning

* Create `formatCurrency` function

* Use `formatCurrency` in SubscriptionFormatters

* Use an `isNoCentsCurrency` logic for `CLP` `JPY` `KRW` `VND`

And remove custom `CLP` logic and locale

* Add `locale` param to `formatPrice`

* Generate `groups.json` and `localizedPlanPricing.json`

```
bin/exec web node ./scripts/recurly/recurly_prices.js --download -o prices.json
bin/exec web node ./scripts/plan-prices/plans.js -f ../../prices.json -o dir
```

* Update scripts/plan-prices/plans.js to generate numbers instead of localized amounts

* Generate `groups.json` and `localizedPlanPricing.json`

```
bin/exec web node ./scripts/recurly/recurly_prices.js --download -o prices.json
bin/exec web node ./scripts/plan-prices/plans.js -f ../../prices.json -o dir
```

* Remove generation of `plans.json`

As /services/web/frontend/js/main/plans.js was removed in https://github.com/overleaf/internal/pull/12593

* Sort currencies in alphabetical order in scripts/plan-prices/plans.js

* Generate `groups.json` and `localizedPlanPricing.json`

```
bin/exec web node ./scripts/recurly/recurly_prices.js --download -o prices.json
bin/exec web node ./scripts/plan-prices/plans.js -f ../../prices.json -o dir
```

* Use `formatCurrency` in price-summary.tsx

* Use `formatCurrency` in Subscription Pug files

* Fix unit tests SubscriptionHelperTests.js

* Remove unused `currencySymbol`

* Change to `formatCurrency` in other React components

* Add `CurrencyCode` JSDoc types

* Duplicate `formatCurrency` into services/web/app/src/util

* Wrap tests in a top-level describe block

* Use `narrowSymbol`

* Fix tests with `narrowSymbol` expects

* Revert deletion of old `formatPrice` in SubscriptionFormatters.js

* Rename `formatCurrency` -> `formatCurrencyLocalized`

* Revert deletion of `CurrencySymbol`

* Add split-test in SubscriptionController.js

* Add split-test in SubscriptionViewModelBuilder.js

* Add split-test in plans

* Add split-test in subscription-dashboard-context.tsx

* Add split-test in 4 more components

* Update tests

* Show currency and payment methods in interstitial page

* Fix `–` being printed. Use `–` instead

* Fix test with NOK

* Storybook: Fix missing `SplitTestProvider`

* Storybook: Revert "Remove unused `currencySymbol`"

This reverts commit e55387d4753f97bbf8e39e0fdc3ad17312122aaa.

* Replace `getSplitTestVariant` by `useSplitTestContext`

* Use parameterize currencyFormat in `generateInitialLocalizedGroupPrice`

* Fixup import paths of `formatCurrencyLocalized`

* Replace `% 1 === 0` by `Number.isInteger`

* Add comment explaining that any combinations of languages/currencies could happen

* Fixup after rebase: import `useSplitTestContext`

* Revert "Remove SplitTestProvider from subscription root"

This reverts commit be9f378fda715b86589ab0759737581c72321d87.

* Revert "Remove split test provider from some tests"

This reverts commit 985522932b550cfd38fa6a4f4c3d2ebaee6ff7df.

GitOrigin-RevId: 59a83cbbe0f7cc7e45f189c654e23fcf9bfa37af
2024-04-19 08:03:54 +00:00
Jessica Lawshe
f156859882 Merge pull request #17822 from overleaf/jel-dash-usersBestSubscription
[web] Limit data sent to dash for best subscription when group

GitOrigin-RevId: d52101bec69cbb7931e9702e085b4aeb65d9d603
2024-04-12 08:06:09 +00:00
Jessica Lawshe
9a6aef3a02 Merge pull request #17817 from overleaf/jel-group-subscription-page
[web] Only send necesssary group subscription data to frontened

GitOrigin-RevId: bf49245e573bb9a1ec4bafc85cc6d0b7fd5f3e6f
2024-04-12 08:06:04 +00:00
Alexandre Bourdin
f320d54722 Merge pull request #16532 from overleaf/ab-enable-typechecking-backend-modules
[web] Enable type checking on some backend modules with types

GitOrigin-RevId: 74728bf65de34ee3c2f4601a5add8bbb948ce765
2024-01-17 09:03:23 +00:00
Miguel Serrano
95bf78d485 Merge pull request #16346 from overleaf/msm-remove-underscore
Remove `underscore` in monorepo

GitOrigin-RevId: fd3b92e3e8a940a7a086669232102320c34a89e2
2024-01-09 09:03:58 +00:00
Eric Mc Sween
554cd6a4d9 Merge pull request #15172 from overleaf/em-promise-utils
Move util/promises from web into a shared library

GitOrigin-RevId: fe1980dc57b9dc8ce86fa1fad6a8a817e9505b3d
2023-10-20 08:04:05 +00:00
Tyna William
3074b102c1 Merge pull request #13321 from overleaf/tw-remove-v1-calls
Cleanup v1 subscription calls

GitOrigin-RevId: 27c1792353957a75a553b2b12dbf357be5c7e111
2023-07-17 10:24:19 +00:00
Alexandre Bourdin
86c7ed7893 [web] Migrate managed publishers to React dash (#11749)
* Migrate managed publishers to React dash

* Decaf cleanup + async/await PublishersGetter

* Continue migration of managed publishers to react dash

* Fix linting

* Add tests

* Decaf cleanup PublishersGetterTests

* Update PublishersGetter tests

* Rename component files to kebab-case

GitOrigin-RevId: cb1fe14d120457c965a9d23a8ddb2c2c92e1d5da
2023-02-23 09:04:03 +00:00
Davinder Singh
ead567c3d2 Merge pull request #11694 from overleaf/ab-managed-institutions-react
[web] Migrate managed institutions to React dash

GitOrigin-RevId: 535dfafe42d88189bb20e7bb3beac233221ee6ba
2023-02-15 09:04:55 +00:00
Jessica Lawshe
e23a0b7c88 Merge pull request #11509 from overleaf/jel-react-personal-subscription-dash-pt-4
[web] Continue migration of personal subscription dash to React

GitOrigin-RevId: f2d913099d727725f04697003516c90616faf014
2023-02-08 09:06:21 +00:00
Jessica Lawshe
d2d8b88258 Merge pull request #11515 from overleaf/ab-group-membership-dash-react
[web] Managed groups in React subscription dash

GitOrigin-RevId: 4811d8dd2b42fa9ad83b5c4f12582e7bc04bad40
2023-02-01 09:05:27 +00:00
Thomas
8348e7b4cd Merge pull request #11445 from overleaf/revert-11432-revert-11154-tm-lg-subscription-recurly-cache-name
Re-instate change property name for recurly status cache to recurlyStatus

GitOrigin-RevId: 3b3415d818629676ee44dbc558a6b87469fd1af0
2023-01-27 09:03:58 +00:00
Thomas
c934b85566 Merge pull request #11432 from overleaf/revert-11154-tm-lg-subscription-recurly-cache-name
Revert "Change property name for recurly status cache to recurlyStatus"

GitOrigin-RevId: 6870e421516fd705343f3e8651d8637f791063df
2023-01-25 09:06:03 +00:00
Thomas
80ca9d7eaf Change property name for recurly status cache to recurlyStatus (#11154)
* Change property name for recurly status cache to recurlyStatus

Co-authored-by: Lucie Germain <lucie.germain@overleaf.com>
GitOrigin-RevId: a1ff69d531519cd15b82ef72974e9702f43409ac
2023-01-25 09:05:48 +00:00
Eric Mc Sween
93b49d0428 Merge pull request #10008 from overleaf/em-get-best-subscription-custom-accounts
Don't try to update custom accounts from Recurly

GitOrigin-RevId: d67088e6616773d30c5972d5b583959c3dc0e508
2022-10-21 08:04:00 +00:00
Eric Mc Sween
cd9f2d4278 Merge pull request #10005 from overleaf/em-revert-get-best-subscription
Revert "pass requester data when fetching best subscription"

GitOrigin-RevId: 7d66ef9d1c136cd729b648266117f42dd38e06b6
2022-10-18 08:03:49 +00:00
Timothée Alby
a98030a59a Merge pull request #9798 from overleaf/ta-em-gs-best-subscription-fix
Fix Best Subscription Check

GitOrigin-RevId: a7ea5063d4287a421b96222763a59c15652c8d6f
2022-10-18 08:03:01 +00:00
Alexandre Bourdin
1ecac5c1b0 Merge pull request #9245 from overleaf/integration-project-dashboard-react-migration
[Integration branch] Project Dashboard React Migration

GitOrigin-RevId: 3c3db39109a8137c57995f5f7c0ff8c800f04c4e
2022-09-14 08:04:03 +00:00
Thomas
e2991c03bf Merge pull request #9148 from overleaf/tm-fix-custom-subscription-view
Remove Recurly property from personalSubscription object

GitOrigin-RevId: b1d86b8379471fcdeef15da9252d2c377ec673d6
2022-08-09 08:02:47 +00:00
June Kelly
84a10c1f5c Upgrade async package to 3.2.2 (#8447)
* Revert "Revert "Bump async to 3.2.2 (#7618)""

This reverts commit 75153a555211d654744c2e61e27fe21085826c22.

* [web] fix usage of async.queue.drain in script

* [clsi] fix usage of async.queue.drain

* [spelling] fix usage of async.queue.drain

* [redis-wrapper] fix usage of async.queue.drain

* [web] Test that LockManager queue is cleared

This protects against a regression found when upgrading the
async package. Here we test that the `queue.drain` callback
is really getting called, and the lock is being removed from
the LOCK_QUEUES map.

* [redis-wrapper] Upgrade async to 3.2.2

GitOrigin-RevId: df921e6d7f1d505bd467f22e58600ba1aff48869
2022-06-22 08:03:35 +00:00
Thomas
178b245881 Merge pull request #8436 from overleaf/tm-update-wording-subscription-dashboard
Update wording on subscription dashboard

GitOrigin-RevId: 4739677fcf46e5de4db3e3fe2411f6ed9898aa2c
2022-06-21 08:03:08 +00:00
Alexandre Bourdin
9e2295d487 [web] Display the current plan in the project list dashboard (#8293)
* Display the current plan in the project list dashboard

* Add unit tests for SubscriptionViewModelBuilder#getBestSubscription

* Handle free trial for group subscriptions

* Reuse the info-badge icon for the plan labels

* Do not display subscription status when projects are selected

* Custom tooltip for group subscriptions with team name

GitOrigin-RevId: 40982f70cf9fb7c92058e417b73c84af1648c33e
2022-06-17 08:03:40 +00:00
Jakob Ackermann
6d0a9bfd9a Merge pull request #8434 from overleaf/revert-7618-dependabot-npm_and_yarn-async-3.2.2
Revert "Bump async to 3.2.2"

GitOrigin-RevId: a5deaea558011fa5a2e1aebe07856e8b0c87c4fc
2022-06-16 08:03:10 +00:00
dependabot[bot]
90555940af Bump async to 3.2.2 (#7618)
[all] Upgrade async package to 3.2.2

- [web] Fix usages of async library
- [project-history] Fix usage of async library
- [third-party-references] Fix usage of async library
- [track-changes] Fix usage of async library

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: June Kelly <june.kelly@overleaf.com>
GitOrigin-RevId: 90cf132f13da53b2bd6690ee3cdf4d6c8563ecd2
2022-06-16 08:02:49 +00:00
Thomas
9a8f850702 Merge pull request #8261 from overleaf/tm-show-correct-price-in-change-plans-list
Show correct prices in change plans list on subscription dashboard

GitOrigin-RevId: 194b516bae92564d33f50e1c0035d21b2ba246a9
2022-06-06 08:03:49 +00:00
Thomas
721bc6a218 Add error message on subscription dashboard if v1 is down (instead of returning a 500 error page) (#7947)
* Add error message on subscription dashboard if v1 is down

GitOrigin-RevId: 8c8b5ac4d44cfd2c42101efe1d55a5993ca21eea
2022-05-20 08:04:43 +00:00
Tim Alby
9655473875 disambiguate between displayPrice and recurlyPrice
GitOrigin-RevId: 38f4c51b9834c417824c0093096767f50e998cb8
2022-01-21 09:03:16 +00:00
Alf Eaton
01042eb030 [web] Upgrade Prettier to match version in monorepo root (#6231)
GitOrigin-RevId: 02f97af1b9704782eee77a0b7dfc477ada23e34d
2022-01-11 09:03:23 +00:00