Commit Graph

235 Commits

Author SHA1 Message Date
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
a15de4e18c Merge pull request #26793 from overleaf/mf-add-missing-public-key-on-purchase-addon
[web] Add missing publicKey to purchase add-on flow when user need to authenticate their payment via 3ds secure flow

GitOrigin-RevId: cc330cb8dad501479bbb3c5c5b4fc32ef9d36921
2025-07-03 08:06:25 +00:00
Kristina
165d70c574 [web] make SubscriptionController.cancelSubscription return a status (#26734)
* [web] make SubscriptionController.cancelSubscription return a status
* [web] update acceptance test to match cancel subscription behavior

GitOrigin-RevId: 507809dcb7fa645c2a69e38cdf4a9e3f736622e1
2025-07-03 08:06:09 +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
01ad56140c Merge pull request #26397 from overleaf/kh-use-new-price-lookups
[web] use new price lookup keys

GitOrigin-RevId: f4c077d946100862aaea0288d5035a34d6188e83
2025-06-17 08:05:51 +00:00
Jimmy Domagala-Tang
221823e593 feat: log error for support to investigate, and return 200 to recurly to prevent retries (#26317)
GitOrigin-RevId: 6f71fd4451e950a7bdbe1140a86a78bf8a04b039
2025-06-16 08:06:23 +00:00
Tim Down
3bcd8c778d Merge pull request #26274 from overleaf/td-account-enrollment-error-fix
Prevent front-end errors in account enrollment page

GitOrigin-RevId: d05e295f70a8e9cb6d5e0da6800d7eaf4468cb39
2025-06-13 08:07:16 +00:00
Domagoj Kriskovic
cdec3e2644 Add permissions checks for AI assist addon purchase (#26355)
* Add permissions checks for AI assist when trying to buy the addon

* more explicit check for DuplicateAddOnError

* remove useCapabilities()

GitOrigin-RevId: 1979e27410981e2ef020cecc731e228483d3315a
2025-06-13 08:06:52 +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
Kristina
400c037057 [web] support purchasing/removing add-ons for Stripe subscriptions (#26081)
GitOrigin-RevId: 01c2eaccc7c34bc37be43120de83270490e5e6da
2025-06-05 08:05:06 +00:00
M Fahru
cfa7a5f950 Merge pull request #25355 from overleaf/mf-whitelist-staging-url-stripe-test
[web] Bypass country requirement for Stripe if user is on staging or dev environment to ease the testing process

GitOrigin-RevId: 0924a57d3a1b7b530a3822fb8f9056a1dd7119e9
2025-06-04 08:07:35 +00:00
M Fahru
eb757a6114 Merge pull request #25998 from overleaf/mf-update-stripe-email-from-subscription-dashboard
[web] Make user able to sync their email address in subscription dashboard for Stripe subscription

GitOrigin-RevId: 9abdc0e18ebea29b18c2041130946b9e50fa43db
2025-06-04 08:07:27 +00:00
M Fahru
1d467ae218 Merge pull request #25967 from overleaf/mf-sync-email-update-to-stripe-account
[web] Sync Stripe customer email when user update their primary email in account setting

GitOrigin-RevId: a5f4b4e960d2c9d4ba96a2b3036329f4868e1bb8
2025-06-04 08:07:23 +00:00
Kristina
2f8749b7f0 [web] handle 3DS challenges for Stripe (#25918)
* handle 3DS challenges on the subscription dashboard
* add `/user/subscription/sync` endpoint
* upgrade `stripe-js` & rm `react-stripe-js`
* group related unit tests together
* add modules `SubscriptionController` unit tests and convert to async/await
* add `StripeClient` unit tests for 3DS failure

GitOrigin-RevId: 9da4758703f6ef4ec08248b328abddbbdd8e44ad
2025-06-02 08:05:16 +00:00
Jimmy Domagala-Tang
4fa0431262 prevent attempting to set headers after we already sent respone (#25994)
GitOrigin-RevId: be9f63f4c6d86ccd7f55850d71f5f2564eab2f12
2025-05-29 08:06:51 +00:00
Jimmy Domagala-Tang
7ea56d0940 Revert Recurly based subscription upgrades on failed payments (#25824)
* feat: add ability to set restore point for subscriptions

* feat: update recurly client with ability to get past due invoices and fail invoices

* utility to retrieve last valid subscription

* create revert requests and fail invoices, revert subscriptions to previous valid states on failed upgrade payments

* add restore point and call to revert plans on failed payments

* code style for PaymentProviderEntities

* moving subs restore point check to SubscriptionController, and removing unecessary error

* adding ability to stop sub restores without a deploy

* ensure that subs restore point is set before changing plan

* changing reverted flag on subscription to count, and only reverting automatic invoices

* updating tests with restorepoint functions

* rethrow error after voiding restore point, and ensure that recurly failed_payment always gets a 200 response

* only void restore point if the changeRequest fails

GitOrigin-RevId: cf3074c13db22d1cf680b59c4d57817c390db23e
2025-05-29 08:06:11 +00:00
Jimmy Domagala-Tang
abcc493a75 Merge pull request #25505 from overleaf/jdt-redirect-to-wf-based-on-prem-src
Manage on Writefull should provide the right instructions based on premiumSource

GitOrigin-RevId: bc6dcc5962d18220c445315acbb3b4040ff23d5d
2025-05-22 08:08:01 +00:00
Antoine Clausse
aab598e044 [web] De-capitalize english translations (#24123)
* Create decapitalize.sh script

* Remove `text-capitalize` classes, rely on translations instead

* `Account Linking` -> `Account linking`

* `Account Settings` -> `Account settings`

* `Add Affiliation` -> `Add affiliation`

* `Add Email` -> `Add email`

* `Add Files` -> `Add files`

* `Add to Dictionary` -> `Add to dictionary`

* `All Projects` -> `All projects`

* `All Templates` -> `All templates`

* `Archive Projects` -> `Archive projects`

* `Archived Projects` -> `Archived projects`

* `Auto Compile` -> `Auto compile`

* `Back to Subscription` -> `Back to subscription`

* `Blank Project` -> `Blank project`

* `Change Password` -> `Change password`

* `Change Project Owner` -> `Change project owner`

* `Clear Sessions` -> `Clear sessions`

* `Company Name` -> `Company name`

* `Compile Error Handling` -> `Compile error handling`

* `Compile Mode` -> `Compile mode`

* `Compromised Password` -> `Compromised password`

* `Confirm Affiliation` -> `Confirm affiliation`

* `Confirm Email` -> `Confirm email`

* `Connected Users` -> `Connected users`

* `Contact Sales` -> `Contact sales`

* `Contact Support` -> `Contact support`

* `Contact Us` -> `Contact us`

* `Copy Project` -> `Copy project`

* `Delete Account` -> `Delete account`

* `Emails and Affiliations` -> `Emails and affiliations`

* `Git Integration` -> `Git integration`

* `Group Settings` -> `Group settings`

* `Link Accounts` -> `Link accounts`

* `Make Primary` -> `Make primary`

* `Mendeley Integration` -> `Mendeley integration`

* `Papers Integration` -> `Papers integration`

* `Project Synchronisation` -> `Project synchronisation`

* `Sessions Cleared` -> `Sessions cleared`

* `Stop Compilation` -> `Stop compilation`

* `Update Account Info` -> `Update account info`

* `the Sales team` -> `the sales team`

* `your Group settings` -> `your group settings`

* `Zotero Integration` -> `Zotero integration`

* Update decapitalize.sh

* Decapitalize some translations

* `Example Project` -> `Example project`

* `New Project` -> `New project`

* `New Tag` -> `New tag`

* `Trashed Projects` -> `Trashed projects`

* `Upload Project` -> `Upload project`

* `Your Projects` -> `Your projects`

* Revert "Create decapitalize.sh script"

This reverts commit 8c79f367096c206c704c7c01e3572a18f3961d5e.

* Revert changes to stories

* Fix tests

* `Contact us of` -> `Contact us if`

* Make `Contact us` bold in tex files

* `sales team` -> `Sales team`

* `Link accounts and Add email` -> `Link accounts and add email`

* `Make Private` -> `Make private`

* `contact support` -> `contact Support`

* Make `Make primary` tests case sensitive

* Use `add_email` translation string

* Revert changes to non-english locales

* Remove redundant `Account settings` translation

* `New project Name` -> `New project name`

GitOrigin-RevId: 675c46f96ddbf3d259a8d723fed62aa4a7ed40b7
2025-05-22 08:07:46 +00:00
Kristina
bd1a25dbae Merge pull request #25732 from overleaf/kh-stripe-preview-addon-purchase
[web] add support for previewing add-on changes for Stripe

GitOrigin-RevId: 46e7d0b96bf0935a4a3afcaf03d7a6f3c26d2108
2025-05-22 08:07:20 +00:00
Domagoj Kriskovic
220b19a5aa Update AI Assist wording on checkout page if not in rollout (#25689) (#25733)
* Update AI Assist wording on checkout page if not in rollout

* update wording when buyin addon

GitOrigin-RevId: 7133b4fd3efac8e8a7361dcc15d54367f809f16d
2025-05-20 08:05:36 +00:00
Kristina
4a95d91b32 [web] add support for previewing base plan changes for Stripe (#25619)
GitOrigin-RevId: 458eeac52bc5fc010b9749f6fcd48350aa792582
2025-05-20 08:05:31 +00:00
Domagoj Kriskovic
1e78d83443 Revert "Update AI Assist wording on checkout page if not in rollout (#25689)" (#25726)
This reverts commit 20a90b14e97b1a8837e8be697c1a9666ed15a1c3.

GitOrigin-RevId: 26d4ad8f1b3a7dbe884dfbe4f4be5ee632abed1e
2025-05-19 12:26:35 +00:00
Domagoj Kriskovic
1ebc5d37e2 Update AI Assist wording on checkout page if not in rollout (#25689)
* Update AI Assist wording on checkout page if not in rollout

* update wording when buyin addon

GitOrigin-RevId: 20a90b14e97b1a8837e8be697c1a9666ed15a1c3
2025-05-19 12:26:26 +00:00
Jimmy Domagala-Tang
9aa325ff2d Merge pull request #25151 from overleaf/dk-use-user-features
UserFeaturesContext with cross-tab syncing via BroadcastChannel

GitOrigin-RevId: 4262719f5018f5717211851ce28b3255af65461a
2025-05-13 08:07:57 +00:00
ilkin-overleaf
727e88b18b Merge pull request #25318 from overleaf/ii-flexible-licensing-manually-collected-3
[web] Add seats feature for manually collected subscriptions improvements

GitOrigin-RevId: 4fbd93097590d97ad6464d1988471a78bf7cb9e2
2025-05-09 08:05:07 +00:00
ilkin-overleaf
b066631019 Merge pull request #24412 from overleaf/ii-flexible-licensing-manually-collected-2
[web] Add seats feature for manually collected subscriptions

GitOrigin-RevId: f7cc6f8ce17163f10e175a06bb471de6e3a96e3c
2025-04-30 08:05:00 +00:00
Domagoj Kriskovic
a46fef3ec0 Add "referrer" tracking to payment flows for AI assist (#25002)
* Add "referrer" tracking to payment flows for AI assist

* move sendMB call

* fix conflict

GitOrigin-RevId: 0c4480816d5fe525a87223c0b1827093d853d474
2025-04-29 08:05:41 +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
Jimmy Domagala-Tang
7b6fd9a24e Merge pull request #24697 from overleaf/jdt-show-addons-via-wf
Display When Ai Assist Is Granted Via Writefull

GitOrigin-RevId: 91f6e1843e2e1d1f7b3a49d95f31603e838c5545
2025-04-23 08:05:30 +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
Jimmy Domagala-Tang
3978c091db Merge pull request #24523 from overleaf/jdt-prevent-bundle-dbl-buys
Redirect bundle purchases when users already have it

GitOrigin-RevId: d8e3c0256db08c08c2be24f38caef91fb26b90e8
2025-04-10 08:06:28 +00:00
ilkin-overleaf
e5ddc9e1f6 Merge pull request #24430 from overleaf/ii-flexible-group-licensing-tear-down-feature-flag
[web] Tear down flexible group licensing feature flag

GitOrigin-RevId: 181713f1f2371b51cbc4256debea59bbcf3668f3
2025-03-31 08:04:42 +00:00
M Fahru
fdffa41d1c Merge pull request #24417 from overleaf/mf-implement-stripe-hosted-checkout-split-test
[web] Implement stripe hosted checkout with split test

GitOrigin-RevId: 25e5ff2a46135f402cdf479623ab38c858c5640c
2025-03-25 09:05:16 +00:00
Thomas Mees
1e7a4c5582 Implement checks for user eligibility when switching plans (#24276)
* Convert updateSubscription controller to async/await

* Move updateSubscription to subscription module

* Validate if user is eligible to change plan

GitOrigin-RevId: ce538429cd5a3b93acabdc046f1a8b164ac02301
2025-03-14 09:05:19 +00:00
Davinder Singh
baa5b76ddb Merge pull request #24164 from overleaf/ds-group-discount-10-percent-february
Group plans - Reintroduce 10% discount for group plans (Part 1, 2 & 3 Combined)

GitOrigin-RevId: f3a59a65bbd300cc06f70e179e794c32ed7970ce
2025-03-11 09:05:50 +00:00
Davinder Singh
de4785fac4 Merge pull request #24148 from overleaf/revert-24066-ds-group-discount-2
Revert "Group plans - Reintroduce 10% discount for group plans (part 2)"

GitOrigin-RevId: 2d8a8d117222daa997e4d0632a9e7235559a8b8c
2025-03-07 09:06:35 +00:00
Davinder Singh
e992726134 Merge pull request #24066 from overleaf/ds-group-discount-2
Group plans - Reintroduce 10% discount for group plans (part 2)

GitOrigin-RevId: ea5d600d901329944092daf560a015ac8ca10cd3
2025-03-07 09:06:05 +00:00
Jimmy Domagala-Tang
6086211913 Merge pull request #23721 from overleaf/jdt-hide-ai-for-paying-users-if-toggled
Hiding AI should hide assist for paying accounts

GitOrigin-RevId: 6a1ec76d648be2986241ee6e87d74ce69c7c4867
2025-02-28 09:05:32 +00:00
Davinder Singh
793d473aba Plans Group Size - Removing the 50 size (#23851)
* removing the group size 50

* removing the if condition for 20/50 groups

* running make cleanup_unused_locales

* removing instances of sizesForHighDenominationCurrencies and the related if conditions

* removing the price related to group size of 50 in different currencies

* fixing the test

* changing the 50 to 20 under faqs

* changing the remaining 50 to 20

* cleaning of variables

* removing extra variable

GitOrigin-RevId: 68f5d7df1eab29360e9c806ad844f1c900341c19
2025-02-28 09:04:51 +00:00
Antoine Clausse
894dbb537d Remove feature-flag bootstrap-5-subscription (#23114)
GitOrigin-RevId: 4a8dadb7e5ae65c2651b1eeb317bb43daca881c8
2025-02-17 09:05:02 +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
ilkin-overleaf
be22dbc8e1 Merge pull request #23314 from overleaf/ls-update-group-plan-upgrade-mapping
Update group plan upgrade mapping

GitOrigin-RevId: aca3d986477dbcf0561635dfd771413a2ba1ef15
2025-02-05 09:05:41 +00:00
roo hutton
a38e0ffd53 Merge pull request #23339 from overleaf/rh-pause-subscription-id
Fix recurly subscription id in pause-scheduled event

GitOrigin-RevId: 94838bddd53c9b9a051cae8252eca11b01e96c60
2025-02-04 09:05:06 +00:00
roo hutton
83012e0961 Merge pull request #23177 from overleaf/rh-pause-tracking
Add tracking for subscription-pause-scheduled event

GitOrigin-RevId: 802899e53d22f2be49f2d20adb45a4a47d0f6beb
2025-01-31 09:04:53 +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
Antoine Clausse
5ba9a7238d [web] Remove promises exports from Controller modules (#22242)
* Remove promises object from CollaboratorsInviteController.mjs

* Define functions at root

* Remove mentions of undefined `revokeInviteForUser`

* Remove unused `doLogout`

* Remove promises object from UserController.js

* Remove unused `makeChangePreview`

* Remove promises object from SubscriptionController.js (`getRecommendedCurrency` and `getLatamCountryBannerDetails`)

* Remove promises object from CollabratecController.mjs

* Remove promises object from SSOController.mjs

* Remove promises object from ReferencesApiController.mjs

* Remove promises object from MetricsEmailController.mjs

* Remove promises object from InstitutionHubsController.mjs

* Remove promises object from DocumentUpdaterController.mjs

* Remove promises object from SubscriptionAdminController.mjs

* Fixup unit tests

* Add expects that controllers don't error

* Promisify `ensureAffiliationMiddleware`

GitOrigin-RevId: 311c8afa7d5c8e4f051408d305b6b4147a020edc
2025-01-17 09:05:36 +00:00
M Fahru
39fdc71cf5 Merge pull request #22821 from overleaf/kh-cop-on-upgrade-modal
[web] limit COP group plans to 20 seats in upgrade modal

GitOrigin-RevId: b1d2713b978d0269892d8f547eeccc5ab702ea77
2025-01-16 09:06:37 +00:00
Kristina
218c376f37 [web] tear down group-pricing-2025 split test on non-plans pages (#22785)
* [web] rm split test from the change to group modal
* [web] rm split test from cancel flow
* [web] rm split test from checkout flow
* [web] rm unused translations

GitOrigin-RevId: 0188f2631ed18e79fdf55dabedac7cdea4f213d3
2025-01-16 09:05:22 +00:00
M Fahru
c6ed326b28 Merge pull request #22540 from overleaf/mf-remove-plans-page-default-variant-code
[web] Remove dead backend (include pug template) code after `website-redesign-plans` test has been concluded and `new-design` variant is fully activated

GitOrigin-RevId: 143129da71d43b88535f971b13e9e72c98bad798
2025-01-15 09:05:06 +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