Commit graph

7345 commits

Author SHA1 Message Date
Antoine Clausse
554be73a36 In collect_paypal_past_due_invoice.js, iterate over each page instead of gathering data from all pages at first (#18414)
* Create `getPaginatedEndpointIterator` to iterate each page

* Create `waitMs` util, it will replace `slowCallback`

* Make `handleAPIError` async

* Make `isAccountUsingPaypal` async

* Make `attemptInvoiceCollection` async

* Make `attemptInvoicesCollection` async

* Use `await` instead of `new Promise`

* Remove unused callbackified `attemptInvoiceCollection`

* Run `attemptInvoiceCollection` for each page instead of gathering all pages in the beginning

* Add test on fetching multiple pages of invoice

GitOrigin-RevId: 2674b18c6ca5732b873fb2bc71b515909006f93d
2024-05-27 10:23:18 +00:00
Rebeka Dekany
a0334898db Merge pull request #18437 from overleaf/rd-bs5-project-dashboard
Enable Bootstrap 5 to load for the project dashboard page

GitOrigin-RevId: 4aa74bd4fde98192b2e5b322bb777a8c8beae237
2024-05-27 10:22:58 +00:00
David
029cd4abe7 Merge pull request #18456 from overleaf/dp-fix-main-lint
Fix lint by using recordEventForUserInBackground

GitOrigin-RevId: 3412c9a997ce0921b25408fc584060e528843b88
2024-05-27 10:22:44 +00:00
David
635aae7b1f Merge pull request #18320 from overleaf/dp-add-secondary-prompt-ui
Add secondary email form V2 (with Captcha this time)

GitOrigin-RevId: b06216a2c9cb5b3b09305a17992eca506a0047f5
2024-05-27 10:22:40 +00:00
Eric Mc Sween
a22319fe46 Merge pull request #18453 from overleaf/em-fix-floating-promise
Fix no-floating-promises lint rule

GitOrigin-RevId: 58f89e0078abf72be65552f9468cb225e5758e3e
2024-05-27 10:22:24 +00:00
Eric Mc Sween
876ee4d967 Merge pull request #18225 from overleaf/em-typescript-eslint
Add typescript-eslint rule: no-floating-promises

GitOrigin-RevId: 8c3decdff537c885f5bfeb5250b7805480bc6602
2024-05-27 10:22:20 +00:00
Antoine Clausse
3300811d3a [web] Simplify removeSessionsFromRedis signature (#18440)
* Simplify `removeSessionsFromRedis` signature

* Update usage of `removeSessionsFromRedis`

* Fix tests around `removeSessionsFromRedis`

* Add comments "remove all sessions except the current session"

GitOrigin-RevId: 03bf99c14faf2c8e403bc4bcc16463a70e031284
2024-05-27 10:21:30 +00:00
Antoine Clausse
78a0bc2b05 [web] Convert RecurlyWrapper functions to async (#18384)
* Rename `RecurlyWrapper` to `promises`, as it will only contain the promises soon

* Update `apiRequest`

* Update `_parseXml`

* Update `_parseXmlAndGetAttribute`

* Update `_parse*Xml`

* Update `updateAccountEmailAddress`

* Update `checkAccountExists`

* Update `createAccount`

* Update `createBillingInfo`

* Update `setAddressAndCompanyBillingInfo`

* Update `createSubscription`

* Update `_createPaypalSubscription`

* Update `_handle422Response`

* Update `_createCreditCardSubscription`

* Update `createSubscription`

* Update `getSubscriptions`

* Update `getSubscription`

* Update `getPaginatedEndpoint`

* Update `getAccount`

* Update `getAccountActiveCoupons`

* Update `getCoupon`

* Update `getBillingInfo`

* Update `getAccountPastDueInvoices`

* Update `attemptInvoiceCollection`

* Update `updateSubscription`

* Update `createFixedAmmountCoupon`

* Update `lookupCoupon`

* Update `redeemCoupon`

* Update `extendTrial`

* Update `listAccountActiveSubscriptions`

* To find which functions to add as callbackified, I used this Regex:
`RecurlyWrapper\.(?!promises)[^.\s]*`

And after adding callbackified functions, we're left with no results with the Regex:
`RecurlyWrapper\.(?!promises|apiUrl|_buildXml|_parseXml|attemptInvoiceCollection|createFixedAmmountCoupon|getAccountActiveCoupons|getBillingInfo|getPaginatedEndpoint|getSubscription|updateAccountEmailAddress)[^.\s]*`

* Update unit tests

* Test `getSubscription` both as "promise" and as "callback"

I'm not sure if we want to generalize this.

* Fix: add missing `await`s (!!)

* Change `apiRequest` to reject errors instead of resolving it in an object

* Fixup for CollectPayPalPastDueInvoice test

* Fix: callbackify `getSubscriptions` (!!)

* Replace `.then(...)` chain by multiple `await`

* Fixup `attemptInvoicesCollection`: prevent reading length of undefined

* Use `return await` when returning promises

Per https://github.com/overleaf/internal/pull/18384#pullrequestreview-2065738771

GitOrigin-RevId: ceda755b24fd29f97a27e60ac5db9bc7e369f932
2024-05-27 10:21:26 +00:00
ilkin-overleaf
7ca9a5b61b Merge pull request #18415 from overleaf/ii-delete-with-body
[web] Replace delete with post requests when having body

GitOrigin-RevId: b580cfa3bd53c21f46de72f3a36b647fda143b04
2024-05-21 08:04:44 +00:00
Rebeka Dekany
1aa5ee7b21 Merge pull request #18404 from overleaf/rd-bs5-dropdown-fix
[web] Fix footer layout on the smallest viewport Bootstrap 5

GitOrigin-RevId: 741540ff5e25fe36021d0a2ef2d433dc63ee3650
2024-05-20 08:04:27 +00:00
Eric Mc Sween
dfd1652c35 Merge pull request #18375 from overleaf/em-promisify-chat-api-handler
Promisify ChatApiHandler

GitOrigin-RevId: 83cedb14b5e2b187fb2cb02fcbf888ada5a599b1
2024-05-20 08:04:22 +00:00
Antoine Clausse
25d8e053be [web] Update revokeAllUserSessions and rename it to removeSessionsFromRedis (#18360)
* Fix `revokeAllUserSessions` call in `_cleanupUser`

The user object should be passed, not the _id

* Change `revokeAllUserSessions` signature, take `req` and `stayLoggedIn` arguments

* Update uses of `revokeAllUserSessions`

* Fix promisified `revokeAllUserSessions` args

* Update tests

* Destroy or Regenerate the session in the end of `revokeAllUserSessions`

Per https://github.com/overleaf/internal/issues/17036#issuecomment-1938398570

* Revert "Destroy or Regenerate the session in the end of `revokeAllUserSessions`"

This reverts commit fe30734dbe45b27d2931d2e43a711d591bb85787.

* Rename `revokeAllUserSessions` to `removeSessionsFromRedis`

* Fixup tests

* Fix: add optional chaining in `req.sessionID` (!!)

GitOrigin-RevId: d41676bf00f463230af495e09c65fb9ee521f49f
2024-05-20 08:04:12 +00:00
Christopher Hoskin
3342d672c2 Merge pull request #18397 from overleaf/em-revert-download-all-link
Revert "Merge pull request #18190 from overleaf/ar-add-download-all-l…

GitOrigin-RevId: 681eb2734636d76558e682dc85083bfcaa6b7d2d
2024-05-17 08:05:10 +00:00
Rebeka Dekany
f652c49713 Merge pull request #18386 from overleaf/rd-footer-pug
[web] Migrate the language dropdown in footer to Bootstrap 5

GitOrigin-RevId: 07a37f59914c543ae8d33312aa313451145cd220
2024-05-17 08:05:02 +00:00
Tim Down
97add91248 Merge pull request #18377 from overleaf/td-metrics-page-fix
Move Bootstrap and jQuery imports into metricsApp

GitOrigin-RevId: 3ec1690ca60928e983211792f6c6b63548dfe62c
2024-05-16 08:05:35 +00:00
Jakob Ackermann
dfe587f297 Merge pull request #18294 from overleaf/jpa-td-invite-details
[web] avoid content reflection via query parameter on register page

GitOrigin-RevId: 43e7ba6069e0d9f3f12e5e9e680b5960b0673782
2024-05-16 08:05:09 +00:00
Andrew Rumble
105d67bd04 Merge pull request #18190 from overleaf/ar-add-download-all-link
[web] Add download all link for output files

GitOrigin-RevId: a275f17b6acf3130250d91462ba01588b93b62f5
2024-05-16 08:05:04 +00:00
Tim Down
0886104862 Merge pull request #18276 from overleaf/td-bs5-load-js
Load correct JS for the active Bootstrap version, second attempt

GitOrigin-RevId: ad8748a941691d745db5cd3e986e9c7b188b3ecb
2024-05-16 08:04:59 +00:00
M Fahru
5c44fb8e9d Merge pull request #18281 from overleaf/mf-decaffeinate-server-admin-controller
[web][admin panel] Decaf cleanup of AdminController

GitOrigin-RevId: fca50565e140435b833c303d2a0dfac7449c3e17
2024-05-15 08:05:24 +00:00
M Fahru
ec1ab82789 Merge pull request #17479 from overleaf/mf-clean-up-plans-styling
[web] Clean up plans page styling

GitOrigin-RevId: fe05e9a1fd6c29c62941c878fe5e676d062c37de
2024-05-15 08:05:20 +00:00
Antoine Clausse
9419cc3b37 [web] Add tests to collect_paypal_past_due_invoice.js + update logging (#18310)
* Fix: Invoices collected array length comparison

Update the code with the correct condition to respect the intent of the previous implementation ("exit with non zero code when no invoicess were processed").
See 5476f39984

However, I'm not sure if erroring when no invoices are collected is actually what we want to do.

* Wrap `collect_paypal_past_due_invoice` script and export the function

* Fixup typo `accoutns`

* Log invoices collection data before throwing

* Add note: `handleAPIError` is silencing the errors

* Create a test on `collect_paypal_past_due_invoice`

* Replace `console.log` by `@overleaf/logger` (bunyan)

Our `console.warn` show up as Errors (in red) in GCP. For example the following is an error in GCP:
```
Errors in attemptInvoiceCollection with id=2693634 OError: Recurly API returned with status code: 400
```
https://github.com/overleaf/internal/blob/5476f39/services/web/scripts/recurly/collect_paypal_past_due_invoice.js#L9

---

Does it correctly set the levels as warnings if we use `@overleaf/logger`

GitOrigin-RevId: 37c8bdf4afd8cef4706700aafb44480ec8966a74
2024-05-15 08:04:46 +00:00
David
6718729087 Merge pull request #18318 from overleaf/dp-revert-secondary-email
Revert "Merge pull request #18139 from overleaf/dp-add-secondary-prompt-ui"

GitOrigin-RevId: d8af37a5c332ac21ddd4c85679553df0bda326f9
2024-05-14 08:04:11 +00:00
David
0630e96d49 Merge pull request #18139 from overleaf/dp-add-secondary-prompt-ui
Add UI for secondary email prompt

GitOrigin-RevId: 887b2c7f0047f19b605f03745f7dda83926ec70b
2024-05-14 08:04:01 +00:00
Brian Gough
41cb0859db Merge pull request #18283 from overleaf/bg-session-secret-use-session-secret-in-web
replace SECURITY_SESSION_SECRET with SESSION_SECRET in web

GitOrigin-RevId: f6ff5f13cf04e1b59fe44a394a0888af55ae140f
2024-05-14 08:03:57 +00:00
Jakob Ackermann
9ea6b2f8b1 Merge pull request #18252 from overleaf/jpa-refactor-for-flaky-test
[web] refactor background job for setting root doc automatically

GitOrigin-RevId: 719c010eb3e5b692908b7a6fea9d8522b9fc01b9
2024-05-09 08:05:23 +00:00
Copybot
9ee7c86b41 Merge pull request #1208 from tgotowik:hotfix-user-create-mail
GitOrigin-RevId: 8e4c159513533598b1ad3eb223a4a7033a2ef736
2024-05-09 08:05:19 +00:00
Jessica Lawshe
c6b88085d5 Merge pull request #18188 from overleaf/jel-react-group-invite
[web] Migrate team invite to React

GitOrigin-RevId: 32e968c3b512020aef9a396808c73a7b4859e6d1
2024-05-09 08:05:03 +00:00
Antoine Clausse
eca84b9370 Reintroduce compile sampling for analysis (#18217)
* Revert "Merge pull request #14143 from overleaf/jlm-unsampled-compiles"

This reverts commit 2457977d61756be52db506d7c84531b22a26abe0, reversing
changes made to 3c452b3943c453707aac90d38e7b5b2ea9df0df4.

* Re-add export of `getPercentile` in SplitTestHandler.js

Was previously removed in aa8c0aadec

GitOrigin-RevId: 42c48829e7246a6bdb9dbb2d075638c1eafdf2f0
2024-05-06 08:04:45 +00:00
Jakob Ackermann
9981be0cc1 Merge pull request #18199 from overleaf/jpa-cleanup-redirects
[web] cleanup redirects in session when reaching project dashboard

GitOrigin-RevId: aff131ebf68dda059d7d6949563e72834decd894
2024-05-06 08:04:10 +00:00
Alf Eaton
9729befe59 Merge pull request #18170 from overleaf/ae-token-access-page
Convert token access page to React

GitOrigin-RevId: d7434f0de395c47a95d00767727fbe9d43f9abca
2024-05-03 08:05:01 +00:00
Jakob Ackermann
4c49841637 Merge pull request #18153 from overleaf/jpa-validate-session-in-store
[web] check for redis connection being out of sync in session store

GitOrigin-RevId: c271e88d4e1fbcb0f7a57f4775e8ef88b70b16a8
2024-05-03 08:04:25 +00:00
Jakob Ackermann
0576e02127 Merge pull request #18152 from overleaf/jpa-stricter-session-validation
[web] stricter session validation

GitOrigin-RevId: 3ef916318fde7f31e3e3fd0f7082dde7a2975a27
2024-05-03 08:04:20 +00:00
Tim Down
a452e1e8cd Merge pull request #18195 from overleaf/revert-18120-td-bs5-load-js
Revert "Load correct JS for the active Bootstrap version"

GitOrigin-RevId: 7f6e846b5461cfbacec874ed55bba577e414f3a6
2024-05-03 08:04:16 +00:00
Tim Down
56150d9dbc Load correct JS for the active Bootstrap version (#18120)
* Load correct JS for the active Bootstrap version

* Tidy up bootstrapVersion declaration

* Add Bootstrap JS to website redesign layout

* FIx error on interstitial subscriptions page

* Remove unnecessary import of jQuery and Bootstrap

* Use global entrypointScripts in bootstrap-js mixin

GitOrigin-RevId: 6b1977354a72dc69008fc0d2e3baec2f28d97f6b
2024-05-03 08:04:07 +00:00
Jessica Lawshe
ae0abd6445 Merge pull request #18159 from overleaf/jel-group-invite-header
[web] Break word on group invite header

GitOrigin-RevId: 790c24e8291f1dbdfa9231e4c9e3d4e531bf2b8f
2024-05-02 08:03:52 +00:00
Rebeka Dekany
62c2937dac Merge pull request #18164 from overleaf/rd-remove-endpoints
[web] Remove publicly accessible endpoints

GitOrigin-RevId: c8e57faf6418274cac36b6e721c97a4ca70a1193
2024-05-01 08:04:46 +00:00
Andrew Rumble
9c3d9ef590 Merge pull request #17935 from overleaf/ar-refactor-compile-async
[web] make CompileManager async

GitOrigin-RevId: 617bde1f429fa9aafc7d4bf4ec628b2a22386b19
2024-04-30 08:04:43 +00:00
Brian Gough
29105911c5 Merge pull request #17732 from overleaf/bg-session-mitigation-initial-protoype
anonymous cookie-based sessions module

GitOrigin-RevId: 75fe2d48fa384ba8d07c0b478a9a5a907a2b3b67
2024-04-26 08:04:54 +00:00
Jakob Ackermann
90a02ebc2f Merge pull request #17949 from overleaf/jpa-set-nx-xx
[web] stricter writes to redis when creating and updating sessions

GitOrigin-RevId: 79723e0d38884bf723c7a2ba32993e4daa2612a0
2024-04-26 08:04:35 +00:00
Antoine Clausse
ede03daafd Rename test to local-ccy-format-v2 to restart with clean data (#18115)
GitOrigin-RevId: 610495f41d69f8cac1a427ef7b8d64886bc5cdba
2024-04-26 08:04:26 +00:00
Antoine Clausse
e32b4f0db1 [web] Handle error cause by currencyDisplay: 'narrowSymbol' in old browsers (#18060)
* Handle error cause by `currencyDisplay: 'narrowSymbol'` in old browsers

RangeError
Value narrowSymbol out of range for Number.prototype.toLocaleString options property currencyDisplay

* Make `formatCurrencyLocalized` bulletproof

GitOrigin-RevId: 26e8abc6f9fb7c06c2d14b9d86af2d84fb9f32e3
2024-04-26 08:04:22 +00:00
David
c2448ff3d2 Merge pull request #17947 from overleaf/dp-secondary-email-confirmation-code
Add endpoints for secondary email confirmation by code

GitOrigin-RevId: c2829672fd9aeca457f76958d4922b9c95086f26
2024-04-26 08:04:00 +00:00
Jessica Lawshe
8d1885cd50 Merge pull request #18073 from overleaf/jel-sso-disabled-email-alert
[web] Send SSO disabled email to non-managed and linked users

GitOrigin-RevId: d5e6739efd432b396dcd7fa3dd37e18d2b9dc933
2024-04-25 08:05:30 +00:00
Jessica Lawshe
0b86bc04ad Merge pull request #18045 from overleaf/jel-user-settings-sso-groups
[web] Use `getUserGroupsSSOEnrollmentStatus` helper

GitOrigin-RevId: 4846d513964a63afb620ee2dbb5b810dd0aa4e60
2024-04-25 08:05:22 +00:00
Jessica Lawshe
7e3dfded2d Merge pull request #17821 from overleaf/jel-subscription-populate
[web] Only populate the required admin data for the subscription

GitOrigin-RevId: 4c2de85ce9f26b337deeff491b40d74756f21702
2024-04-25 08:05:03 +00:00
Jessica Lawshe
94e9456a4b Merge pull request #17793 from overleaf/jel-password-token-when-managed-linked
[web] Check permissions when using password reset token

GitOrigin-RevId: b5339d5ad5322fcae7beaa99fb40a87ffb938b52
2024-04-25 08:04:58 +00:00
David
2a725b3a26 Merge pull request #18077 from overleaf/dp-teardown-share-modal-paywall-split-test
Tear down project-share-modal-paywall split test

GitOrigin-RevId: b85e6cdf2243a76d071607e55a33f9909f704b76
2024-04-25 08:04:21 +00:00
Jimmy Domagala-Tang
2c11ad84e0 Merge pull request #18071 from overleaf/jdt-bib-events
Bibliography events for 3rd party integrations

GitOrigin-RevId: d8d7f4378d75166481d5265d2e8bef72d75968c3
2024-04-24 08:05:11 +00:00
Antoine Clausse
0c4ca15003 [web] Add #main-content to some pug pages (fix skip-to-content links) (#18050)
* Add `#main-content` to some pug pages

This fixes our `skip-to-content` accessibility anchor links. Alternatively or additionally, we can set `suppressSkipToContent = true` in some pages: that will remove the anchor link in the page.

While working on this, I noticed that sometimes we still have a bit of extra nesting or components that should maybe be out of `<main>` or `#main-content`. In a future PR we can maybe update these elements to target the "real core content" of the page.

* Add `suppressSkipToContent` in confirm-email page

GitOrigin-RevId: 6cbf4112f2d1a2d8eff06f142d0c2b4f3a5d9cff
2024-04-24 08:04:43 +00:00
Antoine Clausse
2a5dca0897 [web] Fix thousands separators in plan page for LATAM currencies (#18068)
Use function from https://github.com/overleaf/internal/blob/e486f2fc/services/web/scripts/plan-prices/plans.js#L123-L135

GitOrigin-RevId: e83ea429112c92e07857ee4d3e5fd43c81fcb871
2024-04-24 08:04:39 +00:00