Commit Graph

17608 Commits

Author SHA1 Message Date
Jakob Ackermann d1223b4c98 [web] tweak Jenkins pipeline following move to faster CI VMs (#29188)
* [web] tweak Jenkins pipeline following move to faster CI VMs

The webpack build time has been reduced by about 30%. Adjust the sleep
statement for delaying the webpack build accordingly.

Push the production docker image layers from the parallel steps already.
Use a shared "scratch" tag to avoid generating cruft per branch/build.

* [web] avoid sharing the cypress/downloads folder in CI

GitOrigin-RevId: 52fdf420ec04fd26e3823ff9fca8c52f7a7764d7
2025-10-30 09:07:43 +00:00
Tim Down 4b565d652b Merge pull request #29400 from overleaf/td-ciam-dir
Move CIAM styles into separate directory

GitOrigin-RevId: 3f6d6af8d25ee5c9e425bb2958075ac514fed2e9
2025-10-30 09:07:28 +00:00
Andrew Rumble b5b05b52d7 Clean up direct usages of db.docHistory
Co-authored-by: Ilkin Ismailov <ilkin.ismailov@overleaf.com>
GitOrigin-RevId: 63bc36f15d85f68770bbbff5a7f64d5bc167c7f0
2025-10-30 09:07:18 +00:00
Andrew Rumble 6603290297 Remove docHistory collection from db helper
Co-authored-by: Ilkin Ismailov <ilkin.ismailov@overleaf.com>
GitOrigin-RevId: 788b794ff75564230df99b1b726da87bab468ef9
2025-10-30 09:07:12 +00:00
Andrew Rumble e21a3878b7 Remove celebrate mock
GitOrigin-RevId: 05dd09d1c4457bf1966d729296fd863ae4dc03aa
2025-10-30 09:07:00 +00:00
Andrew Rumble b7392b3a19 Switch to using Zod instead of Joi
GitOrigin-RevId: d725d5bd573402f48b176733bcea2d8ba4fa7c2d
2025-10-30 09:06:54 +00:00
Andrew Rumble 0c442911c5 Remove Joi and celebrate
GitOrigin-RevId: 12cf2e0266a2e57d674d13a2e6fe8368c980d2a1
2025-10-30 09:06:49 +00:00
MoxAmber e473010d46 Merge pull request #29332 from overleaf/as-sso-prevent-double-linking
[web] Prevent users from attempting to link to the same SSO institution twice

GitOrigin-RevId: 7e708eadc9f9aedc2007cb83f7f48df83561fa84
2025-10-30 09:06:42 +00:00
MoxAmber a29864ef86 Merge pull request #29324 from overleaf/as-sso-ensure-email-confirmed
[web] Ensure email confirmedAt is always set for users created via Commons SSO

GitOrigin-RevId: c00ea58a0f9e2a1e93d7edc3836aa815d8ba16ac
2025-10-30 09:06:36 +00:00
roo hutton 91e64fa345 Merge pull request #29349 from overleaf/rh-compile-timeout-info-tracking
Add missing tracking to compile timeout info for default variant

GitOrigin-RevId: 4dfea0f55a1887b64e9c41d417c4a1cc0510453d
2025-10-30 09:06:22 +00:00
roo hutton 0a5d4db21d Merge pull request #29193 from overleaf/rh-stripe-addon-error
Redirect to plans page if trying to add add-on to non-existing subscription

GitOrigin-RevId: 65e0a88c32beca00d700292b14b2e7aa6e4dad20
2025-10-30 09:06:17 +00:00
Antoine Clausse 5789fca098 [web] Create an initial implementation for the CIAM page layout (#29373)
* Add a Storybook Layout page compiling all the "small pages" layouts

* Add a CIAM page layout to Storybook and create an initial Layout

* Use rem in font mixins

* Add a `--ciam-` prefix to the new CSS variables

* Fix linting

GitOrigin-RevId: 7a89fd1531c87597a918a9170d174cce556d77c4
2025-10-30 09:06:10 +00:00
Borja 7395e2776d Add languages and further functionality to Translate (#29342)
GitOrigin-RevId: 5e575c2aa51490071bfbd7498fd81b4e30ffa77f
2025-10-30 09:06:05 +00:00
David d3bffabbf9 Merge pull request #29292 from overleaf/dp-dashboard-theme-toggle
Add theme toggle to project dashboard

GitOrigin-RevId: 4c76bcc36f77d7fd883798f8ccfcb5d1cf1a54b0
2025-10-30 09:05:56 +00:00
David 5cd89fad75 Merge pull request #27930 from overleaf/mj-dropdown-dark-mode
[web] Add dark mode for dropdowns

GitOrigin-RevId: 8fcce98101fc32fa1abbc0fbcd1615a8bc0898e4
2025-10-30 09:05:51 +00:00
David e77611253e Merge pull request #29215 from overleaf/dp-rail-tab-storage
Store selected rail tab on a per-project basis

GitOrigin-RevId: 4770b047bb02c2b63dcf8bc0808bdd675d38c7a2
2025-10-30 09:05:46 +00:00
Jakob Ackermann d5f0836b32 [web] enable compileFromClsiCache independent of clsi-cache-prompt (#29366)
The split test is active now and .active is only set in the dev-env.

GitOrigin-RevId: ed4a379e2144c2a08497eb0cf42ef16077f7ad27
2025-10-29 09:06:04 +00:00
Kristina 65383bafb4 [web] improve messaging when upgrading from standalone add-on to premium plan + add-on (#29330)
* update userCanStartTrial to consider standalone add-ons
* display correct disabled message on hover
* display error message on preview plan purchase page

GitOrigin-RevId: 57c4e4267c1fd0ea892df8c0f5443ad74847147c
2025-10-29 09:05:59 +00:00
Kristina 082667ef2f [web] display Stripe invoice line items on preview change page (#29280)
GitOrigin-RevId: 267586a33f19f6931e2eb76b33fdf569aa07b4d3
2025-10-29 09:05:54 +00:00
Gernot Schulz 4c21f2818b Merge pull request #29244 from overleaf/gs-jenkins-pr-build-tags
Tag images with branch head instead of merge commit

GitOrigin-RevId: f0324a48a8bd692f781c9bee4e42bf97788eb997
2025-10-29 09:05:48 +00:00
Rebeka Dekany 31bc68f0ef Fix translation from "Change email" to "Change role and department" (#29341)
GitOrigin-RevId: c99415d30f7ff65e54f0823d98607a1a757e6c94
2025-10-29 09:05:39 +00:00
Jakob Ackermann bdb4e44d78 [clsi-cache] add circuit breaker to clsi-cache requests (#29339)
Stage timeouts:
- frontend waits 5s
- web/clsi waits 4s
- clsi-cache waits 3s
This should ensure that the frontend can receive a valid response after
any of the backend requests failed.

The circuit breaker will remain closed for TIMEOUT + jitter of 0-3 times
the TIMEOUT of the respective service. This should avoid the bulk of
traffic to fail and occasionally issue retries without hammering the
instances while down.

Also do not try the next backend when the abort signal has expired.

GitOrigin-RevId: d612125616a9e416beff2f4c6d7f30066b5b9d6d
2025-10-29 09:05:34 +00:00
Mathias Jakobsen f19e982764 Merge pull request #29310 from overleaf/mj-references-url-config
[web] Remove references url from configuration

GitOrigin-RevId: fd671d0ac1ff9a8bb754ee3136dc29401ba2b186
2025-10-28 09:05:57 +00:00
Antoine Clausse ca060ab146 [web] Fix flaky frontend test in UserNotifications -> Affiliation (#29315)
* Temporary: forcibly reproduce the loading state and test failure with a `setTimeout`

* Wait for the loading to be finished in the test

* Revert "Temporary: forcibly reproduce the loading state and test failure with a `setTimeout`"

This reverts commit fb0270cc0cacd49fcff74e186b50b55f822f7729.

* Let the test pass if the loading text is not found

* Replace `getByTest` to `findByText` so it awaits

GitOrigin-RevId: 6cee6e3a86b6a5f24d95c7e3e1fcef4c4efcc094
2025-10-28 09:05:46 +00:00
Simon Gardner e3efc885e4 Migrate UserSessionsManager and associated tests to async/await
GitOrigin-RevId: 8b5f3a296798930aa1168738cd3a4c666c7a3028
2025-10-28 09:05:42 +00:00
roo hutton ffb951d792 Merge pull request #29289 from overleaf/rh-compile-timeout-remove-info
Support compile-timeout-remove-info split test in paywalls

GitOrigin-RevId: d557417ab0bd63fce82f4ffb5d66e8e1c9b0b039
2025-10-28 09:05:27 +00:00
Davinder Singh 00536d8454 removing the sentence and related functions and translation (#29269)
GitOrigin-RevId: 0969d0eb1ec1da0e15f606bb3bdcf86908fa45f7
2025-10-28 09:05:06 +00:00
Mathias Jakobsen ebd8272b56 Merge pull request #29308 from overleaf/ae-sentry-image
Ignore blocked image from googletagmanager error report

GitOrigin-RevId: 0e386ca2c1cd0e59e4e4a686d2eeb40e32efcc80
2025-10-28 09:05:02 +00:00
Mathias Jakobsen ee1c8c8f1f Merge pull request #29287 from overleaf/mj-recompile-button-key-warning
[web] Avoid react key warning for recompile button

GitOrigin-RevId: e7334ece38a1ae177244ba3afbaaec9190c967ee
2025-10-28 09:04:58 +00:00
Mathias Jakobsen be5763170a Merge pull request #28945 from overleaf/mj-tear-down-server-side-referencing
[web] Tear down server side referencing

GitOrigin-RevId: 37feac39cc7bf219a2cbc463191163534434f267
2025-10-28 09:04:53 +00:00
Jakob Ackermann e74da36942 [web] do not show clsi-cache prompts/survey in free projects (#29302)
GitOrigin-RevId: fe60952e14503884570d3e27fb274fbb7c6b6620
2025-10-24 08:05:46 +00:00
Jakob Ackermann 6eeb583d1c [web] add clsi-cache prompts (#29281)
* [web] add clsi-cache prompts

* [web] add new editor variant to segmentation

* [web] add tests for useNewEditorVariant

* [web] adjust start of using clsi-cache in split-test

GitOrigin-RevId: c9c5b1eff2ceefb65ef82516d9074cb971cb4c48
2025-10-24 08:05:42 +00:00
Mathias Jakobsen f1b386ebec [web] Tear down client-side-references feature flag (#29088)
GitOrigin-RevId: 635d6054ed1ed131bbc456bab203408fd4293e6d
2025-10-24 08:05:34 +00:00
Andrew Rumble 7a3b71503f Allow sandboxed-module for model mockery
GitOrigin-RevId: 79dfe75088b760968fdc1b6e5dce4278f44a0dae
2025-10-23 08:06:24 +00:00
Andrew Rumble c5ca824d86 Convert to ESM
GitOrigin-RevId: 572dafeaddea99be28ec1e1116e49aaf203be340
2025-10-23 08:06:20 +00:00
Andrew Rumble 339a7b91ed Convert tests to ESM
GitOrigin-RevId: 20585e01dee90e691476a0d47fd5c63b0412e4a6
2025-10-23 08:06:15 +00:00
Andrew Rumble b0a80a2f3c Update paths
GitOrigin-RevId: a9474c8f36e8b287de4dd8fda29bc082001444ac
2025-10-23 08:06:10 +00:00
Andrew Rumble 817e603a98 Rename files
GitOrigin-RevId: 7e8fde9258e71ab3649d1d83addeb5164d8b4251
2025-10-23 08:06:05 +00:00
Miguel Serrano 0acb4428fa [web] Add Group Audit Logs survey link (#29218)
* [web] Add Group Audit Logs survey link

GitOrigin-RevId: 8b6b2d813793245870fe30ab18785a44e2d6401b
2025-10-23 08:05:57 +00:00
Miguel Serrano 5038405f2e Merge pull request #29219 from overleaf/msm-tear-down-audit-logs-split-test
[web] Tear down group audit logs rollout split test

GitOrigin-RevId: 3874a16b41184db085c37c9556821ad9d6bea698
2025-10-23 08:05:52 +00:00
David b469fc6aea Merge pull request #29253 from overleaf/dp-settings-modal-test-improvements
Improvements to settings modal frontend tests

GitOrigin-RevId: cbf30df51aa4b290580340507ba591e863a4f83b
2025-10-23 08:05:48 +00:00
Jakob Ackermann c560f7ffde [clsi] prepare for clsi-cache survey (#29274)
* [clsi] add stats and timings to compile response from clsi-cache

* [clsi] set downloadedFromCache when previously downloaded for synctex

Assumption: every compile will emit an output.log. When the output.log
is missing, but the output.synctex.gz exists, it must have been
downloaded from the cache.
GitOrigin-RevId: 41ea34880931e3c43dda3bc9eb26c0d02054894d
2025-10-23 08:05:43 +00:00
Antoine Clausse 99903543dd [web] Promisify NotificationsBuilder.js (#28792)
* Replace request by fetch

* Promisify `dropboxDuplicateProjectNames`

* Promisify `dropboxUnlinkedDueToLapsedReconfirmation`

* Promisify `featuresUpgradedByAffiliation`

* Promisify `redundantPersonalSubscription`

* Promisify `projectInvite`

* Promisify `ipMatcherAffiliation`

* Promisify `tpdsFileLimit`

* Promisify `groupInvitation`

* Promisify `personalAndGroupSubscriptions`

* Sanitize URL

* Add default fetch timeout

* Update tests

* Update tests with fetch-utils

* Update external usage

* Import `ObjectId` from `mongodb-legacy`

Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>

* Add `toString()` to userId in `ipMatcherAffiliation` calls

* [v1] Return "200 null" instead of no content in `v2/api/v2/users/:userId/ip_matcher` when there is no data, so it can be read as JSON in the frontend

Can't be 204 because of lint: "Do not specify body content for a response with a non-content status code"

* Temporarily remove `enrolment_ad_html` test to test notifications

* Revert "Temporarily remove `enrolment_ad_html` test to test notifications"

This reverts commit fb8b0c26a3adbbc64053cd3f5f2570ccc97328fb.

* Use `return await`

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>

---------

Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: 17ee861852aa4ac15d3b46b1b28c763fad5333d2
2025-10-23 08:05:30 +00:00
Antoine Clausse 205b4e54be [web] Create super_admin role (#29082)
* Add `delete-project` and `modify-admin` admin capabilities

* Add `isSuperAdmin` check

* Replace frontend checks

* Add requireAdminPermission middleware on disable2FA

* Remove `isSuperAdmin` tag

* Fix tests on admin capabilities

* Replace isSuperAdmin tests by tests in admin-roles

* Replace superadmin tests by admin-capabilities

* Update tests: server-pro admins are superadmins

* Remove "In Server Pro, all Admin users are also Super Admins"

* Update tests after revert "server-pro admins are superadmins"

* Create capability "delete-2fa"

* Add special privileges for admins in Server Pro to preserve the existing behaviour

* Reorder definitions to avoid future eslint error

* Add super_admins admin-role

* Add some sensible capabilityDependencies

* Fix inconsistency: super_admins -> super_admin

* In tests, await controller methods instead of using manual promises

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>

---------

Co-authored-by: Andrew Rumble <andrew.rumble@overleaf.com>
GitOrigin-RevId: ca1fff3ead5b2001cb5d5d25de15970d55fb2c1b
2025-10-23 08:05:25 +00:00
roo hutton 48d9964cb6 Merge pull request #28013 from overleaf/rh-editor-hotjar
Support user limits on split test variants, add Hotjar editor support

GitOrigin-RevId: c5df831436c2b7d7e242cf4d3ff00899aba77886
2025-10-23 08:05:20 +00:00
Mathias Jakobsen 8016daa8f3 [web] Upgrade fuse.js (#29174)
GitOrigin-RevId: b945829ac259827bbcb5877e0bc6c453d9dfd7e8
2025-10-22 08:06:16 +00:00
David 41fefc3a2c Merge pull request #29113 from overleaf/dp-settings-modal-tests
Add frontend tests for new editor settings modal

GitOrigin-RevId: a7142b5b45e9484126d159445f2dddd7d3c86584
2025-10-22 08:05:51 +00:00
Kristina 857466d7cf [web] use the correct Stripe payment confirmation function for upgrades (#29151)
GitOrigin-RevId: d7447d180f1c0320989d7f86bb1d46173e235e46
2025-10-22 08:05:46 +00:00
David 6f1e8cea6d Merge pull request #29152 from overleaf/dp-dashboard-dark-mode
Add data-theme attribute to project list page

GitOrigin-RevId: 3a623e3258d55e01f0911bcc45b78bcdba21745b
2025-10-22 08:05:34 +00:00
David 7baf11da8b Merge pull request #29033 from overleaf/dp-histroy-current-version
Hide restore version option for current history version

GitOrigin-RevId: 1eecaced2d7423bf8e28ab97e27288691ab0b002
2025-10-22 08:05:28 +00:00