Commit graph

7646 commits

Author SHA1 Message Date
Antoine Clausse
1e36db524f [web] Merge authentication error handling (V1LoginController & AuthenticationController) (#19457)
* Promisify `AuthenticationController.doPassportLogin`

* Update tests `AuthenticationController.doPassportLogin`

* Add test on error handling for `AuthenticationController.doPassportLogin`

* Add test on error handling for `V1LoginController.doLogin`

* Extract error handling to `getErrorObject` function

* Simplify code

* Add `Metrics` calls

* Add `password is too long` in AuthenticationController

* Make `info` object consistent with the rest of the codebase

* Move error handling to `AuthenticationManager.handleAuthenticateErrors`

* Move `handleAuthenticateErrors` to other file

I moved this solely because I didn't manage to test it otherwise

* Update tests

* Remove `preDoPassportLogin` hook call

* Remove test on `preDoPassportLogin`

* Use try/catch block instead of `.catch()`

* Revert "Use try/catch block instead of `.catch()`"

This reverts commit 3475afa93ce4af7ad55c91bfc1d7ad3317600ea5.

* Replace `.catch` by `try/catch`

GitOrigin-RevId: 3fba65c30a2c5fc6e5abcd5b83c52801852ed462
2024-07-31 08:05:07 +00:00
Jimmy Domagala-Tang
837fea03b9 Merge pull request #19448 from overleaf/jdt-experiments-max-subscribers
Enforce a maximum participant cap on experiments

GitOrigin-RevId: 1d9263cd34a3d0c831c0ed43867bb4e6430eb06c
2024-07-30 08:05:34 +00:00
Alexandre Bourdin
5bc5b1af2a Merge pull request #19562 from overleaf/ab-modules-dependencies
[web] Modules dependencies

GitOrigin-RevId: d8bbb25a754f2ed58b1b1e924aa760b87d3135c6
2024-07-30 08:04:36 +00:00
Antoine Clausse
5f2718cf29 [web] Make rate-limit on login consistent, prevent "trim/case bypass" (#19555)
* Replace `LoginRateLimiter.processLoginRequest` call by use of `RateLimiterMiddleware`

* Lowercase the email to avoid rate-limit bypass

* Remove unit test "when the users rate limit"

* Use `EmailHelper.parseEmail` to normalize email in `processLoginRequest`

This should address the `trim()` bypass

* Use `.trim().toLowerCase()` instead of `EmailHelper.parseEmail`

We can't use `EmailHelper.parseEmail`, else it breaks the test (and feature): "with username that does not look like an email"

* Add acceptance test for rate limit

* Add comment on rate limits

* Rename `rateLimiter` to `rateLimiterLoginEmail` for clarity

* Make the login rate limits configurable from the settings

GitOrigin-RevId: cf1c3a416745f2b007c85014a5084570d4a049a7
2024-07-30 08:04:26 +00:00
Antoine Clausse
7212c16dde [web] Fix: sendConfirmationEmail promise (!!!) (#19629)
* Fix `sendConfirmationEmail` promise (!!!)

* Fix: No nested promises, and `sendConfirmationEmail`->`sendReconfirmationEmail`

* Add integration test on `/user/emails/send-reconfirmation`

* Update integration test: use the previously generated token

GitOrigin-RevId: f6386abeb06888351eec22fbcb1d3c614ff5c5c5
2024-07-29 08:04:41 +00:00
Antoine Clausse
afd965c04b [web] Remove overleaf-integration overrides for /user/emails/delete & /user/emails/resend_confirmation (#19438)
* Use hooks to call `clearSamlSession`

* Promisify `UserEmailsController.remove`

* Use hook for `userDeleteEmailMiddleware`

* Remove `/user/emails/delete` override

* Remove "removeRoute of `/user/emails/resend-secondary-confirmation`"

That route isn't defined elsewhere

* Promisify `UserEmailsController.resendConfirmation`

* Promisify `UserEmailsController.sendReconfirmation`

* Use hook for `resendConfirmationEmailMiddleware`

* Remove `/user/emails/resend_confirmation` override

* Promisify `tryDeleteUser`

* Proxy `clearSamlSession` through `SAMLHelper`

* Revert "Use hook for `resendConfirmationEmailMiddleware`"

This reverts commit f028d9c8

* Inject `SAMLMiddleware.resendConfirmationEmailMiddleware` in `/user/emails/resend_confirmation`

* Update `middleware` syntax and grammar

* Update tests

* Use Module middleware instead of hook for `userDeleteEmailMiddleware`

* Remove "promises" export of tryDeleteUser

GitOrigin-RevId: 211e194fc1ef82dc452ee4e837dcddd9b23690a0
2024-07-29 08:04:24 +00:00
Jessica Lawshe
606f9eaec7 Merge pull request #19594 from overleaf/jel-light-touch-table-checkmark
[web] Add new green checkmark to plans light touch redesign

GitOrigin-RevId: f6c38e819fdd784ccf39ab09109a33fcd58f23d8
2024-07-26 08:05:02 +00:00
Jessica Lawshe
1f432ca5a9 Merge pull request #19447 from overleaf/jel-light-touch-table-final-bits
[web] Updates for the light touch redesign of the plans table

GitOrigin-RevId: 44ba4fde9b192f3792bf295557fa1018c83a2119
2024-07-26 08:04:53 +00:00
Jessica Lawshe
85ec182859 Merge pull request #19446 from overleaf/jel-light-touch-file-reorg
[web] File reorganization of light touch redesign

GitOrigin-RevId: 6ea13a5d0053bdfd71f9d29d417f73f06a492d49
2024-07-26 08:04:48 +00:00
Jessica Lawshe
72821743fc Merge pull request #19415 from overleaf/jel-highlighted-col
[web] Update highlighted column for plans page light touch redesign

GitOrigin-RevId: 98a0d6c34762bb7f4530da9cd6d954c2ae1aae56
2024-07-26 08:04:44 +00:00
Jimmy Domagala-Tang
918c3e7e33 Merge pull request #19301 from overleaf/jdt-collaborator-ai-usage
Prevent AI usage on projects where collaborators have a blocking policy

GitOrigin-RevId: 93bdd9c5accff51a14f0585249e13ed7f1fa4e53
2024-07-26 08:04:35 +00:00
David
d7357b4d62 Merge pull request #19400 from overleaf/dp-duplicate-file-folder-name
Improvements to handling of file/folder upload conflicts

GitOrigin-RevId: 526edf30dfbaec7ee1e03ffd156365f09be25e86
2024-07-25 08:05:08 +00:00
David
c07d2f3fa2 Merge pull request #19528 from overleaf/dp-equation-preview
Equation Preview

GitOrigin-RevId: 98e71e5d2c1a83d6c9fa685eeee1f4b93a5a3da1
2024-07-25 08:05:04 +00:00
M Fahru
394d07d03e Merge pull request #19509 from overleaf/mf-contact-support-faq
Implement contact support link below FAQ section

GitOrigin-RevId: 5c22c9807522b3ba88169b759520feb165f3f499
2024-07-25 08:04:51 +00:00
Alf Eaton
7e136131c0 Promisify Metadata feature (#19361)
GitOrigin-RevId: 962aa9dbbc41a49c2c3120af9a1254a4db85387b
2024-07-24 08:05:19 +00:00
Alexandre Bourdin
8e79d72cc2 Merge pull request #19465 from overleaf/ab-modules-middlewares
[web] Support injecting middlewares from modules

GitOrigin-RevId: efbf68d885f839b92f2e601553c7ce54b9d4b6d3
2024-07-24 08:05:09 +00:00
Mathias Jakobsen
34422b1428 Merge pull request #19418 from overleaf/mj-write-and-cite-custom-render
[web] Write & Cite autocomplete prototype

GitOrigin-RevId: f51edb9b1ab9cc2ac8f18277cb291ee87650c213
2024-07-24 08:05:04 +00:00
Rebeka Dekany
6cb956b1ff Merge pull request #19472 from overleaf/rd-stylelint-ci
[web] Add Stylelint formatting to the CI

GitOrigin-RevId: f31139f9f6f70aa96214b59db37ad1f79cd1e733
2024-07-23 08:04:09 +00:00
David
277ac91f0e Merge pull request #19390 from overleaf/dp-pdf-tools-teardown
Remove `pdf-controls` feature flag and old controls

GitOrigin-RevId: 807ee0aa6384df354809f4d59b10d00dadef898c
2024-07-22 08:04:22 +00:00
roo hutton
523e340a0d Merge pull request #19398 from overleaf/rh-rm-ieee-notification
[web] Remove IEEE Collabratec notification

GitOrigin-RevId: 14ec3e50ed4913b815620f5215df59b17fc03054
2024-07-18 08:04:41 +00:00
Jimmy Domagala-Tang
168f83277b Merge pull request #19328 from overleaf/jdt-global-metrics
Allow for site wide metrics and counters

GitOrigin-RevId: e788488bdd673aef4ba0e45a9e39832d6203c44c
2024-07-18 08:04:27 +00:00
andrew rumble
f54b257022 Remove special code for handling RequestFailedErrors
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 821826fa56b89176b615e026f11db0b7fcfcbd30
2024-07-17 08:05:05 +00:00
andrew rumble
0e89857a9f Remove unneeded/confusing assignment
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 2aa48249cf216bc8cca7e95153695095923c0b86
2024-07-17 08:05:01 +00:00
andrew rumble
15ea69995a Replace request with fetch-utils in ExpressLocals
GitOrigin-RevId: 85c112a2124aeca128753e40c70869517c7026f6
2024-07-17 08:04:57 +00:00
Jessica Lawshe
0ea17a1c5a Merge pull request #19414 from overleaf/jel-light-touch-col-headers
[web] Update column header styling for light touch redesign of plans table

GitOrigin-RevId: d6b24f1c355256a5dcb2c75255eec610e064fd03
2024-07-16 08:05:15 +00:00
Jessica Lawshe
300e46a28d Merge pull request #19379 from overleaf/jel-light-touch-separate-rows
[web] Separate column header sections into new rows

GitOrigin-RevId: cffe39933f877eaf07a9e772fd76b8e18dd95d3e
2024-07-16 08:05:10 +00:00
Jessica Lawshe
fada0b80eb Merge pull request #19395 from overleaf/jel-light-touch-restructure-mixins
[web] Restructure column header mixins for light touch design

GitOrigin-RevId: b8f6d9084b7a0190a0ba421d1e3ba819358c7fa2
2024-07-16 08:05:05 +00:00
Jessica Lawshe
3084ff921b Merge pull request #19376 from overleaf/jel-light-touch-remove-unused
[web] Remove unused code for light touch plans page redesign

GitOrigin-RevId: 9e160ed59eec5f8a700b88c0591fb0200c2dc403
2024-07-16 08:05:01 +00:00
Jessica Lawshe
ccac1047d6 Merge pull request #19332 from overleaf/jel-light-touch-plans-border
[web] Update border style for light touch redesign of plans page

GitOrigin-RevId: ba3df408ce626f4b2a3eb634de93d8879f3e9611
2024-07-16 08:04:56 +00:00
Jessica Lawshe
68e42efb20 Merge pull request #19331 from overleaf/jel-light-touch-rename-css
[web] Rename CSS variables for light touch redesign

GitOrigin-RevId: 8a56c56e2a743e935d70bd585d8c62a93faba0eb
2024-07-16 08:04:51 +00:00
Liangjun Song
f4a7b1f298 bypass linking sharing admin redirect for internal projects (#19314)
* disable linking sharing admin redirect

* address comments

* remove ignoreSiteAdmin

* load admin domains from settings

* add acceptance test

* more tests

* fix tests and restore admin domain

* use adminDomains as array

GitOrigin-RevId: 5acb62e1b6ada0aaeceab6db6a6635f82e30833f
2024-07-16 08:04:35 +00:00
Alf Eaton
1e1a8c0bb3 Add translated messages for more connection error states (#19392)
GitOrigin-RevId: 981de624f3964ebe3ff1f0c751fcef9158864d5e
2024-07-15 09:32:55 +00:00
ilkin-overleaf
b442a74f54 Merge pull request #19249 from overleaf/ii-invite-token-response
[web] Fix share modal resend status code

GitOrigin-RevId: 303f7b6c49d9522df6317789bb7c3c69d774715f
2024-07-15 09:05:02 +00:00
M Fahru
3304aaddf3 Merge pull request #18962 from overleaf/mf-interstitial-payment-new-plans-page-config
[web] Implement website-redesign-plans split test config on interstitial payment page

GitOrigin-RevId: 6ea51d5f89ac6b633b5ce6dfbb81c258d668ce13
2024-07-15 09:04:53 +00:00
Jimmy Domagala-Tang
ffad592f8d Merge pull request #19317 from overleaf/jdt-fake-foor-test
AI error assistant fake door test

GitOrigin-RevId: 9ba5480a50d9881fa0ce2f3632f94ffe57d7a152
2024-07-15 09:04:48 +00:00
Thomas
ab4a4df931 Merge pull request #19348 from overleaf/tm-link-sharing-changes-events-fixes
Link sharing changes events fixes for collaborator sharing-updates prompt and project open event

GitOrigin-RevId: 45449f0dd27e07de189a9c2620b0aa9a8849dc41
2024-07-15 09:04:44 +00:00
David
0c7a32b4f2 Merge pull request #19346 from overleaf/dp-review-panel-empty-state
Add empty state to review panel

GitOrigin-RevId: 47d7b676e9868942567fc02db234b0827ac86ba3
2024-07-15 09:04:27 +00:00
Mathias Jakobsen
1f0e346bbc Merge pull request #19373 from overleaf/mj-comment-regex-fix
[web] Fix regex in comment matching

GitOrigin-RevId: e341f13a9ccbe2fbc1ec6c6c1d8a7a11c4dd4e37
2024-07-15 09:04:07 +00:00
Alf Eaton
87d1c08e2f Merge pull request #19325 from overleaf/ae-metadata-packages
Include all package names in the project metadata

GitOrigin-RevId: dd30eb254806248484c9c6d9210f38c7c69a0ba1
2024-07-15 09:03:32 +00:00
Eric Mc Sween
f63de6779d Merge pull request #19329 from overleaf/em-migration-progress-logs
Log progress during history migration

GitOrigin-RevId: a3af8722b40af2b0ffe9603b6d6dcea02cee833d
2024-07-15 09:02:31 +00:00
Jimmy Domagala-Tang
e47a790af9 Merge pull request #19292 from overleaf/jdt-mj-imported-at
copying a project should preserve a linked files created timestamp

GitOrigin-RevId: d82506db1fb3f54567e638346179413468419b82
2024-07-15 09:02:08 +00:00
Eric Mc Sween
0be042e331 Merge pull request #19318 from overleaf/mj-revert-check-ranges-support
[web] Check that project has ranges support when reverting

GitOrigin-RevId: 761e435e9d640c08f27dd4ad2cef95934c0cc48b
2024-07-15 09:02:03 +00:00
Miguel Serrano
b5e5d39c3a [web] Tighten check for spelling language (#19297)
* [web] Tighten check for spelling language

* spelling proxy only for `/check` requests

GitOrigin-RevId: c678e93cca9ad39682ec7ce6e49804ea74741acc
2024-07-15 09:01:45 +00:00
Eric Mc Sween
fbdf245517 Merge pull request #19273 from overleaf/em-history-migration-concurrency
Add concurrency option to history ranges support migration script

GitOrigin-RevId: 8707abc9b76116090332b6abb11030adb17ceb4e
2024-07-15 09:00:46 +00:00
Eric Mc Sween
1b84f005cc Merge pull request #19271 from overleaf/em-really-skip-projects-without-history
Refine check for existence of history in migration script

GitOrigin-RevId: 8ad5706525f5043694e516d585a7aef85a1e5566
2024-07-05 08:04:39 +00:00
Eric Mc Sween
01ce2721c0 Merge pull request #19255 from overleaf/em-increase-timeout-docstore-has-ranges
Handle docstore timeouts during history migration

GitOrigin-RevId: 9b00aa039fc9646c24e69bfca51dd8e784434fc6
2024-07-05 08:04:26 +00:00
Eric Mc Sween
194d778c28 Merge pull request #19242 from overleaf/em-api-error-handlers
Handle more errors in the global API error handler

GitOrigin-RevId: add31e2de067e8534f2eb3932623c2413c4ce6d8
2024-07-04 08:05:31 +00:00
Eric Mc Sween
898f6c81c8 Merge pull request #19250 from overleaf/em-skip-no-history
Skip projects without history when migrating

GitOrigin-RevId: d38539fbc1b6e406b833f849276c3829ad722d91
2024-07-04 08:05:26 +00:00
Jakob Ackermann
9406b2bd31 Merge pull request #19245 from overleaf/jpa-fix-invite
[web] use project invite token from request path

GitOrigin-RevId: d2670c3f10f8c9a15420fab7506f9ebdf4108c6c
2024-07-04 08:05:04 +00:00
ilkin-overleaf
f9245b8c08 Merge pull request #19071 from overleaf/ii-invite-token-remove-token-field
[web] Remove the token field from `projectInvites` collection

GitOrigin-RevId: fe8395e1d1a0ba2daad600b7e3be657f40151a8e
2024-07-04 08:05:00 +00:00
Jakob Ackermann
88457a6655 Merge pull request #19220 from overleaf/jpa-precompile-pug
[web] precompile pug templates in CI

GitOrigin-RevId: 6ec2b85a357fa3d5c35d8e7eb1a2e81ac5f3b447
2024-07-04 08:04:51 +00:00
Eric Mc Sween
a95c0bbfc3 Merge pull request #19151 from overleaf/em-history-ranges-quick-migration
Add quick history ranges support migration

GitOrigin-RevId: 8446beb6bcd7384c32fc1b216e4b72d8f5d91500
2024-07-03 08:04:44 +00:00
Jimmy Domagala-Tang
f77894c427 Merge pull request #19238 from overleaf/jdt-use-ai-project-fix
feat: matching rename to checkPermissions within projectController
GitOrigin-RevId: ea05800c145858237fb0b236f9a19837c6c4a9a2
2024-07-03 08:04:36 +00:00
Jimmy Domagala-Tang
007cc42477 Merge pull request #19152 from overleaf/jdt-project-permissions
Allow checking permissions for all users on a project and rename checkPermissions -> AssertPermissions

GitOrigin-RevId: 511356cf2fe68367e284347e68e59f6116bd0f80
2024-07-03 08:04:19 +00:00
Jimmy Domagala-Tang
c0f39267a9 Merge pull request #19150 from overleaf/jdt-ai-promo
feat: add labs ai experiment promo
GitOrigin-RevId: 9bf039635b487339caa277b501a8cd99c7c7613f
2024-07-03 08:04:15 +00:00
Thomas
566466185b Merge pull request #19206 from overleaf/tm-link-sharing-changes-events
Implement link sharing warning events by reusing the StartFreeTrial paywall button component from the original modal

GitOrigin-RevId: 9c16407ad8a7b5afc9b5b13be1491ef903ae74a3
2024-07-02 08:04:25 +00:00
Thomas
6a65644778 Merge pull request #19185 from overleaf/tm-validate-can-invite-editor-2
Update inviteToProject to check if editor slots are available

GitOrigin-RevId: bb67ae6329130573ba43e9524a3084bf5551ebde
2024-07-01 08:04:21 +00:00
Thomas
a047388b08 Add serverside checks for changing the user access level after link sharing changes (#19168)
* Add getEditInviteCount to count only edit collaborators

* Add getInvitedEditCollaboratorCount to count joined editors

* Add canAddXEditCollaborators to determine if owner can add more editors

* Update setCollaboratorInfo to check if editor slots are available

GitOrigin-RevId: a88707f102dfbde39322f5a7bbc79d47b6e810d5
2024-07-01 08:04:16 +00:00
Thomas
2ce71b0b4d Async/awaitify LimitationsManager for link sharing changes (#19110)
* Move functions to top level

* Async/awaitify LimitationsManager methods

* Promisify LimitationsManagerTests

GitOrigin-RevId: ece7d2ea5160aa95924840044e2f225e1f2848e7
2024-07-01 08:04:12 +00:00
Jimmy Domagala-Tang
d7863bec37 Merge pull request #19108 from overleaf/jdt-ai-rm-alpha-reqs
Remove Alpha bypass for AI Error Correction

GitOrigin-RevId: d6b93bc2071dbeeb3d67d48197e61abf4d920944
2024-06-28 08:04:57 +00:00
Domagoj Kriskovic
c3c97d9fb9 [web] return file type in revertFile (#18995)
* [web] return file type in revertFile

* fix revertFile unit test

* fix formatting

GitOrigin-RevId: e4ac0500ff6c72c7f7fa23a5f61b09ed31a28da0
2024-06-28 08:04:45 +00:00
Antoine Clausse
01188589f8 Add some JSDoc types to @overleaf/logger (#19153)
* Add some JSDoc types to `@overleaf/logger`

* Update `logger.error` calls

* Fixup `logger.err` JSDoc

* Update `logger.err` calls

* Fix `args` type

* Remove "Error message" description

* Replace `arguments` by actual arguments of the method

* Fix: "ESLint: Unnecessary '.apply()'.(no-useless-call)"

* Add JSDoc params to `debug` `info` `warn`

* Remove extra `args` param in JSDoc so developers aren't invited to use it

Not sure if this is the best thing to do because it creates a warning in the IDE: "Parameter args is not described in JSDoc"

* Add comment about serialization of `err` `req` `res`

* Allow strings as first param in `debug` `info` `warn`

* Fix syntax for optional parameters in JSDoc

* Add 2 signatures, to avoid "string, string" params

* Fix `@signature` names copy-pastes

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* Revert the double `@param attributes`. It doesn't work

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 086dee8bbf30d577c5e1f844a9df5e518c46aca7
2024-06-28 08:04:25 +00:00
Antoine Clausse
1dbbe5af9d [web] Promisify TemplatesController (#18849)
* Promisify TemplatesController

* Update TemplatesControllerTests

* Fix `templateVersionId` in `getV1Template` (!!)

GitOrigin-RevId: bdaa59ed3cff81d919a8b3d19d5be555a2790f55
2024-06-28 08:04:17 +00:00
Jessica Lawshe
07d1f26731 Merge pull request #19084 from overleaf/jel-light-touch-rename-css
[web] Rename CSS variables for light touch redesign

GitOrigin-RevId: c84eb75a45af8270895795ceffef944696037881
2024-06-27 08:04:52 +00:00
Jessica Lawshe
fbc9a557c7 Merge pull request #18959 from overleaf/jel-faq-tabs
[web] New tab and accordion more reusable

GitOrigin-RevId: ed8340bc4b6312c4270edf1edf53c74a067aaccf
2024-06-27 08:04:44 +00:00
Jimmy Domagala-Tang
c04fea0fd3 Merge pull request #19162 from overleaf/jpa-flaky-admin-test
[web] refresh system message cache after creating/deleting message

GitOrigin-RevId: f7155e94a8bf08b527e7ae69d9d6a41e54c01282
2024-06-27 08:04:39 +00:00
Thomas
94be372b24 Add new interstitial 'Join project' consent page for existing link sharing editors when opening a project (#19066)
* Add helpers for checking and removing user readwrite token membership

* Add sharing-updates page and handlers

* Redirect read write token members to sharing-updates on project load

GitOrigin-RevId: d552a2cd74a9843c6103923b03f137131a48877a
2024-06-26 11:12:42 +00:00
Thomas
260fdf1307 Add read write token join interstitial variation for link sharing changes (#19060)
* Add read write join interstitial variation for link sharing changes

GitOrigin-RevId: 41661f43f4ab0f18f6ada5bec0b6af2407f65f07
2024-06-26 11:12:37 +00:00
Thomas
70bf7b2aab Merge pull request #19109 from overleaf/tm-project-joined-add-project-id
Add projectId to project-joined event

GitOrigin-RevId: 222e0acc8764592344e384d1a6a5a2327d4161f5
2024-06-26 11:12:33 +00:00
Jimmy Domagala-Tang
b0344ec550 Merge pull request #19132 from overleaf/jdt-ai-policy-migration
feat: add migration for adding new policy to all existing groupPolicies
GitOrigin-RevId: ea3188b6059c2e96afd0058a191d18b26d68adbd
2024-06-26 08:04:48 +00:00
Tim Down
956aad7e43 Merge pull request #18764 from overleaf/td-bs5-dashboard-feature-flag
Create new feature flag for BS5 project dashboard page

GitOrigin-RevId: a523bd7df94c411805ac2f5234135bc7a56d25bb
2024-06-25 11:12:35 +00:00
Tim Down
8897e439ae Merge pull request #18928 from overleaf/td-bs5-nav-admin-missing-href
Bootstrap 5: add missing href to nav admin link

GitOrigin-RevId: 5339fa2ef465a6319d87cba6201e682dea1a98a6
2024-06-25 11:12:31 +00:00
Mathias Jakobsen
e48e4293a6 Merge pull request #19090 from overleaf/mj-web-metadata
[web] Ignore commented content when parsing metadata

GitOrigin-RevId: 78f9b0d6549e60fca4ba8929beb677341d885655
2024-06-25 11:12:02 +00:00
roo hutton
64d9792fe3 Merge pull request #18861 from overleaf/rh-editor-limit-exceeded
[web]: Handle exceeded editor limit in share modal

GitOrigin-RevId: 23a15805ca98327ae4a7fc731bbca3982c90bad5
2024-06-25 08:04:46 +00:00
Jimmy Domagala-Tang
04432478e1 Merge pull request #19053 from overleaf/ab-split-tests-first-time-assignments
[web] Return isFirstTimeAssignment flag with split test assignments

GitOrigin-RevId: 70954470fbd9430749d83d8d1e08a3969d4a09e6
2024-06-25 08:04:37 +00:00
Alf Eaton
bee698c01d Updates to the AI error assistant (#19065)
* Only show the AI error assistant to users with write permission on the project
* Fix line number in searchDocLines
* Abort the request after 60 seconds
* Move comment
* Jump to file + line when suggestion line number is clicked
* Set tool_choice: 'required'
* Fix handling of suggestLineChange
* Tidy up getDocLines
* Avoid showing Suggest Fix button in gutter marker for typesetting warnings
* Log request errors
* Fix prefixed function name
* Update tool description
* Tweak the prompt in an attempt to improve the line number
* Reject if the total message content is too large
* Change the structure of the suggested change
* Reduce line highlight
* Fix change highlighting on deletion

GitOrigin-RevId: afde096e547050b8518195ef51b68983bc3b0be3
2024-06-24 12:05:51 +00:00
Miguel Serrano
1697087425 Merge pull request #18970 from overleaf/msm-clean-features-templates
[web] Cleanup `features.templates`

GitOrigin-RevId: 7c9f7bc827700e4255a5ba8a46de70318afdaae4
2024-06-24 12:05:43 +00:00
Mathias Jakobsen
23a7e19e8e Merge pull request #18991 from overleaf/mj-table-generator-promotion-teardown
[web] Tear down table generator promotion

GitOrigin-RevId: 361215bdd792042ae68762fa20ae60286db5bab3
2024-06-24 12:05:18 +00:00
Jimmy Domagala-Tang
790f90e97d Merge pull request #19036 from overleaf/jdt-labs-alpha-only
feat: only allow alpha users on labs page currently
GitOrigin-RevId: 5136d77789fa27a0bd9fe6f17c8937998bc74259
2024-06-24 12:04:51 +00:00
David
a8cb423078 Merge pull request #19030 from overleaf/dp-presentation-mode-flag
Add separate feature flag for presentation mode

GitOrigin-RevId: a996fa313c101dd822ad83109ba77fa95f99f644
2024-06-24 12:04:34 +00:00
Antoine Clausse
2c7df10b9a [web] Refactor ProjectController.loadEditor p-props promises (#18823)
* Move unawaited promises out of `p-props`: `User.updateOne`

* Move unawaited promises out of `p-props`: `sessionMaintenance`

* Move unawaited promises out of `p-props`: `reactivateProjectIfRequired`

* Move unawaited promises out of `p-props`: `markAsOpened`

* Move unawaited promises out of `p-props`: `flushProjectToTpdsIfNeeded`

This was actually awaited, but is it necessary?

* Use `getUserValues`: `user`

* Use `getUserValues`: `learnedWords`

* Use `getUserValues`: `projectTags`

* Use `getUserValues`: `userHasInstitutionLicence`

* Use `getUserValues`: `subscription`

* Use `getUserValues`: `isTokenMember`

* Use `getUserValues`: `isInvitedMember`

* Update `splitTestAssignments` syntax

* Remove `mapValues` in `pProps`

* Await unused promises again: `flushProjectToTpdsIfNeeded` and `reactivateProjectIfRequired`

* Remove error page file committed by mistake 🤦

GitOrigin-RevId: 6529445c364a6af660bc8ab6dfc836a4ddf7a040
2024-06-24 12:04:18 +00:00
Jimmy Domagala-Tang
271700893a Merge pull request #18784 from overleaf/bg-allow-combined-group-policies
allow combined group policies

GitOrigin-RevId: b23fb0454f794e9094e8e15e732b4322a48ac1ee
2024-06-24 12:04:13 +00:00
Jimmy Domagala-Tang
e5aa917f54 Merge pull request #18682 from overleaf/jdt-ai-labs
Re-Release Labs Page for AI Error-Correction

GitOrigin-RevId: 2eef85dd3b5f86bedcf3339559a5fbbae2d4da87
2024-06-24 12:04:08 +00:00
Jakob Ackermann
ac7916fb29 Merge pull request #19023 from overleaf/jpa-issue-19016
[web] lock down legacy endpoint for creating projects from zip

GitOrigin-RevId: 0c6b29d34c601d316b184d50d93e8e17f59bfcfb
2024-06-24 12:04:00 +00:00
ilkin-overleaf
7b47acc486 Merge pull request #18763 from overleaf/ii-bs5-projects-notifications
[web] BS5 notifications in projects and welcome pages

GitOrigin-RevId: 25780bb64660ef41c41c007f94f70df273cac716
2024-06-24 12:03:15 +00:00
ilkin-overleaf
34311ce0dc Merge pull request #18789 from overleaf/ii-invite-token-lookup-by-hmac-token
[web] Lookup project invitations by HMAC token

GitOrigin-RevId: b631445e18f83ddb5e7708388a57a0fac0f73bd2
2024-06-24 12:03:10 +00:00
Eric Mc Sween
8d35177b52 Merge pull request #18985 from overleaf/em-migrate-bulk
Bulk history ranges migration

GitOrigin-RevId: 0d1846b412cfcddead63a7bc15bd06a82fbb47f3
2024-06-20 08:05:05 +00:00
Brian Gough
d43292cfe6 Merge pull request #18146 from overleaf/ab-one-time-assignments
[web] Handle one-time assignments for split tests

GitOrigin-RevId: 2d7ec2a878055fdc96475db2129aad308abb2fff
2024-06-20 08:04:34 +00:00
Miguel Serrano
f181dfe74f Merge pull request #18549 from overleaf/msm-system-messages-redirect
[web] return redirect on admin actions

GitOrigin-RevId: d6273c01d90230c786cc9d0808f866524e57bc19
2024-06-20 08:04:20 +00:00
Eric Mc Sween
e73fdfba63 Merge pull request #18906 from overleaf/em-migrate-existing-histories-2
History ranges migration script - second attempt

GitOrigin-RevId: 60a2c04e2a72e76a58e9e179fefc4186a96fde32
2024-06-19 08:05:02 +00:00
David
c16c806002 Merge pull request #18697 from overleaf/dp-ai-rate-limit
Add a rate limiter for the AI Error Assistant

GitOrigin-RevId: d23abc4b3477d13b1bfd4d69db168458ac8c2e51
2024-06-19 08:04:34 +00:00
Jakob Ackermann
aa480a2663 Merge pull request #18898 from overleaf/jpa-no-window
[web] migrate from window attributes to getMeta

GitOrigin-RevId: 3dcf1ab6b01155e5e4abeb3e78d0fa9053e055bc
2024-06-19 08:04:21 +00:00
Antoine Clausse
aa7839876a [web] Promisify MetricsEmailController and InstitutionHubsController (attempt 2) (#18805)
* Reapply "[web] Promisify MetricsEmailController and InstitutionHubsController …"

This reverts commit ea14df1395f1dc2fa7d41fc7837849f9686425b5.

* Fix changes to node-fetch: `statusCode` -> `status` (!!)

* Update test

* Handle no-content without throwing (!)

Avoid error `Unexpected end of JSON input` when doing `response.json()` on an empty response when status is 204

Related: https://github.com/node-fetch/node-fetch/issues/165

* Also return `204` when no data in departments_data and roles_data

* Revert "Handle no-content without throwing (!)", and return null instead

This reverts commits 3baa779f7a9e64804e54a276faf865ab9252f336 and 51507a3d763d7006c8b01414a7c79bd3f3b6948b.

* Update tests: `assert_nil`

* Fixup: Update tests: assert null

* Use `fetchJSON` in Institution.fetchV1Data

* Proxy errors from server without throwing 500

GitOrigin-RevId: 9c13e293f3fed3abd2accddd1a9060ed02b96ba2
2024-06-19 08:04:02 +00:00
Jessica Lawshe
a343ec1578 Merge pull request #18932 from overleaf/jel-rename-css-light-touch
[web] Rename CSS classes for light touch redesign

GitOrigin-RevId: 2e415dcffd04f8783f5b7145827031fdbfc83baf
2024-06-18 08:05:07 +00:00
Jessica Lawshe
1db5593c5a Merge pull request #18931 from overleaf/jel-new-files-for-light-touch
[web] New files for plans light touch redesign

GitOrigin-RevId: beb517543c8341bbd8124fab87b532f62c5a0c11
2024-06-18 08:05:02 +00:00
Jessica Lawshe
a7adfc12da Merge pull request #18907 from overleaf/jel-faq-css
[web] CSS updates to new plans FAQ

GitOrigin-RevId: b00d8b22f62d9a3774eb673501c0b2074dd15d81
2024-06-18 08:04:57 +00:00
Jessica Lawshe
092e49d6ec Merge pull request #18905 from overleaf/jel-plans-faq
[web] Add new plans FAQ to light touch redesign variant

GitOrigin-RevId: a4140a09c94e0374792acb789b4f36ad104841f2
2024-06-18 08:04:53 +00:00
Jessica Lawshe
6e084f389a Merge pull request #18885 from overleaf/jel-plans-page-quotes
[web] Handle hiding/showing quote rows on new plans page variants

GitOrigin-RevId: dd88cce9acdc2ca07d5df1afa7278028820e673d
2024-06-18 08:04:48 +00:00
Domagoj Kriskovic
7e8e2b0585 Send origin metadata through docupdater and project-history when restoring files (#18721)
* add RestoreFileOrigin in overleaf-editor-core

* support source to be an object

* use sourceOrOrigin as param

* rename to originOrSource so the priority is more clear

* get timestamp from version

* fix test

* include version and min_count in getUpdatesFromHistory

* extractOriginOrSource util function

* fix RestoreManagerTests

GitOrigin-RevId: 0ace05a6ade2794c753a9d0bffb4f858ecc6899a
2024-06-18 08:04:34 +00:00
Alf Eaton
b9a8a7f7ec Move AI provider usage to the backend (#18562)
GitOrigin-RevId: 4f66c6576571c4fbb7381d8d0e34f2e468d6f34f
2024-06-18 08:04:09 +00:00
Jakob Ackermann
e36de5a62d Merge pull request #18856 from overleaf/jpa-server-ce-shutdown
[server-ce] improve shutdown procedure

GitOrigin-RevId: 5a99868d17f597c366e42625cd39f05146dcb682
2024-06-18 08:04:04 +00:00
ilkin-overleaf
b34be6bea4 Merge pull request #18653 from overleaf/ii-invite-token-create-hmac
[web] Add HMAC tokens for project invitations

GitOrigin-RevId: 02fa01e24790c9a87f57ff9346f5346658d4dd46
2024-06-17 08:04:17 +00:00
andrew rumble
81b0eb7eb5 Remove obsolete comment
GitOrigin-RevId: 73da65c200d19ed4b389423e3d9f983c90ea1885
2024-06-17 08:04:09 +00:00
M Fahru
d80046c757 Delete unused code: planFeatures.js, this config should have been deleted on the first plans page redesign.
This config is superseded by `plansFeatures.js` that is imported by `plansConfig.js` which is directly used in the pug template.

GitOrigin-RevId: ae0a0e1ff7c8a64022ab378d17943fe4a7ed3b35
2024-06-14 08:05:03 +00:00
Davinder Singh
05c0cbfd6d Merge pull request #18883 from overleaf/jel-eyebrow-text
[web] Add mixin for eyebrow headline

GitOrigin-RevId: 992acd11e6c22c35499329bb53917a2b1ac79ac5
2024-06-14 08:04:55 +00:00
Davinder Singh
9ff03e9245 Merge pull request #18877 from overleaf/jel-sales-ad
[web] Remove 2 sales ad variants and increase probability of FOMO variant

GitOrigin-RevId: 6045dd4255313ae53f255afa528695583171d55b
2024-06-14 08:04:46 +00:00
Jessica Lawshe
87bc0b2aa9 Merge pull request #18857 from overleaf/jel-plans-page-css
[web] Add quotes to new plans page variants

GitOrigin-RevId: 794692730a7a6846bf4e43021c34798e9a2605da
2024-06-13 08:04:45 +00:00
Jessica Lawshe
cd9dc12059 Merge pull request #18683 from overleaf/jel-new-styles-quote
[web] New quote style for plans page and CMS pages using `Element | Quote`

GitOrigin-RevId: c4a089727f023d5d28a036c6babbdc773d7fc06a
2024-06-13 08:04:36 +00:00
Brian Gough
38ac00ba13 Merge pull request #18775 from overleaf/bg-cookie-session-metrics-middleware
add middleware to record session cookie metrics in web

GitOrigin-RevId: f4404455e219d2071d6f0b39e657e9219b7d1c70
2024-06-13 08:04:16 +00:00
M Fahru
d35e11eaef Merge pull request #18720 from overleaf/jel-begin-light-touch-plans
[web] Begin light touch redesign of plans page

GitOrigin-RevId: dda5ab1c0817371400f30f2e4d230f5c3a5728f4
2024-06-12 08:05:19 +00:00
Alf Eaton
af78b914df Merge pull request #18729 from overleaf/ae-ng-non-bindable
Remove unused Angular attributes from Pug templates

GitOrigin-RevId: ab3ed4105ea02994924c6dd190dad65fff106c11
2024-06-12 08:04:27 +00:00
Alf Eaton
7cb0e8c4ea Remove a few remaining references to the ide-page split test (#18735)
GitOrigin-RevId: 4f1c6332f8bf49ed1c3fcee153590d0acf72b26f
2024-06-12 08:04:18 +00:00
Jimmy Domagala-Tang
d3c270369d Merge pull request #18593 from overleaf/jdt-mailchimp-tagging
allow adding and removing tags from users in mailchimp

GitOrigin-RevId: 15e491d3346877e86d55fb6eccb45813daa41e88
2024-06-11 08:05:30 +00:00
andrew rumble
3311066363 Add new fields to mongoose subscription schema
GitOrigin-RevId: 6b28d7464482a8d5729709f99893b333c3d7f9c2
2024-06-11 08:04:55 +00:00
Liangjun Song
0680a91a70 [web] fix incorrect event group-subscription-left (#18757)
GitOrigin-RevId: aa342dc6575eca032834c2b132d4d0144a4faa27
2024-06-11 08:04:35 +00:00
Mathias Jakobsen
c29c151c9f Merge pull request #18803 from overleaf/revert-18801-mj-revert-big-deploy
[web+chat] Redo deploy

GitOrigin-RevId: a056bf20d49a39e71e03db740f57e8506dfc6b71
2024-06-11 08:03:59 +00:00
Mathias Jakobsen
a26e3d3376 Merge pull request #18801 from overleaf/mj-revert-big-deploy
[web+chat] Revert big deploy

GitOrigin-RevId: f4d068cbea7e5f5d59a3d698e2def2f94c9b6322
2024-06-10 08:04:33 +00:00
Mathias Jakobsen
d470093174 Merge pull request #18737 from overleaf/mj-chat-revert-existing-file
[web] Revert existing file by deleting it first

GitOrigin-RevId: ec9ed5c709c2631ff08dbc2e0f3633d303f12836
2024-06-10 08:04:29 +00:00
Mathias Jakobsen
110b83aea0 Merge pull request #18710 from overleaf/mj-web-chat-send-thread-data
[chat+web] Inform frontend when duplicating threads

GitOrigin-RevId: 285afee8f5a016a8e7ac58e9538cc3ec8362681d
2024-06-10 08:04:25 +00:00
Mathias Jakobsen
0f869f9059 Merge pull request #18654 from overleaf/mj-web-duplicate-threads
[web] Ensure single doc pointing to comment when reverting

GitOrigin-RevId: e86e566e1b21eed18bb08b285befcab0e740ec45
2024-06-10 08:04:20 +00:00
Jessica Lawshe
d7b64ef92e Merge pull request #18718 from overleaf/jel-isSplitTestActive-plans-page
[web] New plans page variants only loadable if test is active

GitOrigin-RevId: 2b29dc8a3ecef6dd8f34dd25e59bf48a9724061b
2024-06-06 08:05:05 +00:00
Jessica Lawshe
3948b6ddb3 Merge pull request #18717 from overleaf/jel-isSplitTestActive
[web] Add helper for checking if test is active

GitOrigin-RevId: 1e8987517915e3947812086863da11fad252daf1
2024-06-06 08:05:01 +00:00
Jessica Lawshe
8fe46feffb Merge pull request #18713 from overleaf/jel-group-plan-modal-defaults
[web] Move group modal defaults for plans page to function

GitOrigin-RevId: 0ebce884f9e984b50318742765b7a768f259a8db
2024-06-06 08:04:56 +00:00
Jessica Lawshe
d28e58a2fc Merge pull request #18686 from overleaf/jel-plans-page-currency
[web] Move `currency` check to `_getRecommendedCurrency`

GitOrigin-RevId: afadd492a2e1db9c91fac027eb3c9783194ff169
2024-06-06 08:04:52 +00:00
ilkin-overleaf
dd7970c11d Merge pull request #18644 from overleaf/ii-delete-with-body-teardown-old-routes
[web] Tear down deprecated routes

GitOrigin-RevId: b86e1d9283a30d36f77148eeb782a7f37987854a
2024-06-06 08:04:31 +00:00
Antoine Clausse
e452f1df5b [web] Promisify LdapController (#18500)
* Promisify LdapController

* Update tests LdapControllerTests.js

* Promisify `AuthenticationController.finishLogin`

* Simplify null checks in LdapController

* Fix: don't use spread operator in module.exports

* Make `AuthenticationController.promises.finishLogin` a promise that resolves

* Fixup: `finishLogin` does not call `next` then the promise finishes, it calls it only on errors

* Use `Modules.promises.hooks.fire`

* Revert `processPassportLogin` callback style

* Update error handling: Use `OError.tag` instead of `logger.err`

* Fix unit tests: Rely on callbacks rather than promises

* Fix: Actually call `passport.authenticate` (!!)

* Update test: fixup `passport.authenticate` mocks

This would have caught the bugs that the previous commit is solving

* Remove `.then(() => next())` in `processPassportLogin`

Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>

---------

Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>
GitOrigin-RevId: a7eab5f5289956aeb8f2418408958daef3511ab7
2024-06-06 08:04:23 +00:00
Alf Eaton
c24ace801b Remove Angular (#17534)
GitOrigin-RevId: 7a0d45e17d9905fa75569e2d19ca59caa4a41565
2024-06-06 08:04:09 +00:00
Jessica Lawshe
22be3928e3 Merge pull request #18614 from overleaf/mf-create-plans-redesign-split-test-config
[web] Create split test configuration for `website-redesign-plans` split test

GitOrigin-RevId: dea88256830897d1ab1f1de64eb21413c823e6ff
2024-06-04 08:04:59 +00:00
Tim Down
c0d920f305 Merge pull request #18660 from overleaf/td-rd-bs5-contact-us-modal
Bootstrap 5 contact us modal

GitOrigin-RevId: a4607fab50152109fbe83bc29246b7b4a82539a1
2024-06-04 08:04:46 +00:00
Andrew Rumble
d1a58e6b77 Merge pull request #18538 from overleaf/ar-add-download-all-link-in-web
[web] add download all link for output files

GitOrigin-RevId: 3d574d75d53e577cb0f8fd3caa4f757d9e1b7889
2024-06-03 08:04:07 +00:00
Tim Down
1b247347e7 Merge pull request #18590 from overleaf/td-ieee-editor-remove-blue
Disable IEEE stylesheet in IEEE editor based on feature flag

GitOrigin-RevId: 09b203e3220a868d5f0a0e413bdc4d3ff7a1792e
2024-05-31 08:04:41 +00:00
Jessica Lawshe
3a59883e7a Merge pull request #18297 from overleaf/jel-remove-angular-group-invite
[web] Remove Angular version of group invite

GitOrigin-RevId: bd31cd2ed3c105c9042ae9c42894cfe960459a46
2024-05-31 08:04:27 +00:00
Jakob Ackermann
5a1cff55bc Merge pull request #18543 from overleaf/jpa-server-pro-test-templates
[server-pro] tests: add tests for templates feature

GitOrigin-RevId: b36482af924e306207cbdedc1a8d1d548272ee77
2024-05-30 08:05:30 +00:00
David
55e54ce875 Merge pull request #18435 from overleaf/dp-ae-pdf-viewer-controls
Update PDF viewer controls

GitOrigin-RevId: 4e15b7cbd34e878d0175be635369b8d620188203
2024-05-30 08:05:06 +00:00
Tim Down
134232a1a6 Merge pull request #18577 from overleaf/td-bs5-nav-dropdown-item-missing-href
Add missing href on Bootstrap 5 nav dropdown items

GitOrigin-RevId: 211a6dbd559ad74a9e49edbace61a51c2cc2f2da
2024-05-30 08:04:48 +00:00
Antoine Clausse
36f0a3e01a [web] Promisify ProjectController (#18477)
* Create `promiseAuto` util to replace `async.auto`

* Promisify `BrandVariationsHandler.getBrandVariationById`

* Promisify `updateProjectSettings`

* Promisify `updateProjectAdminSettings`

* Promisify `newProject`

* Promisify `deleteProject`

* Promisify `loadEditor`

* Fix brandVariation loading in promise auto

* Promisify `_refreshFeatures`

* Promisify `_injectProjectUsers`

* Fix `no-inner-declarations`

* Promisify `cloneProject`

* Promisify `userProjectsJson`

* Promisify `projectEntitiesJson`

* Promisify `restoreProject`

* Promisify `renameProject`

* Additional warning fix

* Update unit tests

* Fixup `updateProjectSettings`: call jobs inside the Promise.all

* Use `expressify(...)` instead of manually call `next(err)`

https://github.com/overleaf/internal/pull/18477#discussion_r1613611987
https://github.com/overleaf/internal/pull/18477#discussion_r1613621146
https://github.com/overleaf/internal/pull/18477#discussion_r1613634000
...

* Replace Promise.all by sequencial awaits

https://github.com/overleaf/internal/pull/18477#discussion_r1613852746
https://github.com/overleaf/internal/pull/18477#discussion_r1613611987

* Remove manual throws of 500. Let the generic error handler catch them.

https://github.com/overleaf/internal/pull/18477#discussion_r1613623446
https://github.com/overleaf/internal/pull/18477#discussion_r1613628955

* Promisify `untrashProject`

https://github.com/overleaf/internal/pull/18477#discussion_r1613627783

* Promisify `expireDeletedProjectsAfterDuration`

* Promisify `archiveProject`

* Promisify `unarchiveProject`

* Promisify `trashProject`

* Promisify `expireDeletedProject`

* Use async `setTimeout` from `timers/promise`

https://github.com/overleaf/internal/pull/18477#discussion_r1613843085

* Remove unused `_injectProjectUsers`

https://github.com/overleaf/internal/pull/18477#discussion_r1613855766

* Add missing exec in queries (?)

Not sure if that makes a real difference but it's more consistent with the rest of the code

* Catch floating promises

https://github.com/overleaf/internal/pull/18477#discussion_r1613868876

* Replace custom `promiseAuto` by `p-props` from NPM

https://github.com/overleaf/internal/pull/18477#discussion_r1613393294

* Downgrade `p-props` to v4. Later versions require ESM

* Simplify code around `splitTestAssignments`

GitOrigin-RevId: 84d37f7aa9227b5b9acf9eeb5db1b78afc01b6ee
2024-05-30 08:04:36 +00:00
Domagoj Kriskovic
218a4538c1 [web] support for reverting binary files (#18033)
* [web] revert binary file

* use addEntityWithName if file was deleted

* todo comments

* only show Revert file in ui even if deleted

* use _revertBinaryFile function

* emit new ids when reverting

* format:fix

* await emitToRoom calls

* use EditorController.upsertFile

* remove _revertBinaryFile function

* binary file check

* mock importFile method in tests

* move findElementByPath stub

* debug ci error

* resolve with empty object as file

* fix tests

* remove await before expect()

* format:fix

* test when binary file exists and when it does not

* use "file-revert" for source

* [web] revert existing file without ranges support (#18107)

* [web] revert existing file without ranges support

* ignore document_updated_externally if file-revert

* fix test

GitOrigin-RevId: a5e0c83a7635bc7d934dec9debe916bdd4beb51e
2024-05-30 08:04:20 +00:00
Tim Down
3b2e60ece7 Merge pull request #18558 from overleaf/td-bs5-query-string-override
Add a mechanism to hide incomplete Bootstrap 5 pages by default

GitOrigin-RevId: 07cc998bf3a0bed9df2f43d1c04c62d167c9b893
2024-05-30 08:04:15 +00:00
Andrew Rumble
22e0e51796 Merge pull request #18464 from overleaf/ar-pass-analytics-id-to-google-analytics
Add analytics ID to google analytics when configuring

GitOrigin-RevId: e2372f68217583a90df427a853e62513f1535006
2024-05-30 08:04:07 +00:00
M Fahru
c722dcbc8d Merge pull request #18419 from overleaf/mf-plans-page-permanent-url
[web] Create permanent URL for all plans and switch state in the plans page

GitOrigin-RevId: 5fa0af0e33868f8fa4f6a74627bedb4c22705cb0
2024-05-29 08:05:11 +00:00
Mathias Jakobsen
d95910fc71 [web] Enable history ranges support behind feature flag (#18429)
GitOrigin-RevId: 2f3b2352d2c157248da350eaf7b1784a605ebf20
2024-05-29 08:04:33 +00:00
Mathias Jakobsen
f14fdc7b7c Merge pull request #17958 from overleaf/mj-web-revert-file
[web] Initial version of file reverting

GitOrigin-RevId: ef500b2c3ddf21b0acb6650c2526edd10ab2cc18
2024-05-29 08:04:16 +00:00
Tim Down
edaba14ed1 Merge pull request #18420 from overleaf/td-bs5-nav
Bootstrap 5: Navigation

GitOrigin-RevId: d22683d78c8b3bc3f41bbd276c36f47d480e24ff
2024-05-29 08:04:05 +00:00
ilkin-overleaf
abd57e03cf Merge pull request #17831 from overleaf/msm-filter-saml-error-log
[web] Filter saml error logs by path

GitOrigin-RevId: 4ca9e156657afc893f38fed7ec6b00cbb7a608ef
2024-05-28 08:04:10 +00:00
Eric Mc Sween
3a1560894a Merge pull request #18516 from overleaf/em-web-resolved-comment-ids
Reintroduce resolved comment ids in getDocument()

GitOrigin-RevId: 591589efc643c815c40df440d1297158901f7a79
2024-05-28 08:04:01 +00:00
Eric Mc Sween
ea8f8d0651 Merge pull request #18506 from overleaf/em-revert-web-resolved-comment-ids
Revert #18398 - return resolved commentIds with getDocument()

GitOrigin-RevId: c5d2dd91d02d88029eb2702d73ac37cb8dbca32c
2024-05-27 10:24:25 +00:00
Eric Mc Sween
92945f504d Merge pull request #18496 from overleaf/rd-pug-warning-attributes
[web] Fix: "You should not have pug tags with multiple attributes" warning

GitOrigin-RevId: 0adfdf6a130c60966eae3c845011975af7eecc44
2024-05-27 10:24:21 +00:00
Eric Mc Sween
83e1452991 Merge pull request #18398 from overleaf/em-web-resolved-comment-ids
Return resolved comment ids with getDocument()

GitOrigin-RevId: 30234f72d52b90b313821290b6c63aa6cc6cb243
2024-05-27 10:24:13 +00:00
Alexandre Bourdin
a0c8cf663a Merge pull request #18000 from overleaf/ab-dev-enable-toolbar-default
[web] Enable the dev-toolbar by default in the dev environment

GitOrigin-RevId: 170e59e9b82268e621fe99ffcc82b7d68467e1b3
2024-05-27 10:23:56 +00:00
Jimmy Domagala-Tang
81903bb79d Merge pull request #18175 from overleaf/jdt-new-bib-file-prompt
[Web] Add opportunistic prompts for third party references

GitOrigin-RevId: d794df16781d0db707423f23ab12f40a13604907
2024-05-27 10:23:41 +00:00
Brian Gough
344b4d0fa0 Merge pull request #18088 from overleaf/ab-session-secret-rotation
[web/realtime/history-v1] Support session secret rotation

GitOrigin-RevId: 3c2fa27b1b3e0a8e0c9d1af2e616ce873d54aedf
2024-05-27 10:23:33 +00:00
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