Commit Graph

4510 Commits

Author SHA1 Message Date
Domagoj Kriskovic
a446c3f588 Add notifications web module (#28983)
* Add notifications web module

* implement getThreadMessage in chat

* Save comment mention notification

* check if recipient is a real user

* move commentMentionDelay

* use module-hooks types

* remove router

* updated collection name

GitOrigin-RevId: cf8240c88aac7d7e4de4bf51cfe2608b6b7e7918
2025-10-20 08:05:20 +00:00
Jessica Lawshe
e9ee7214bd Merge pull request #28744 from overleaf/jel-domain-capture-joined
[web] Success message after user is created via domain capture and group is managed

GitOrigin-RevId: 0615cf0e06af5f3851f2c6de30d870a3adace286
2025-10-17 08:06:20 +00:00
Jessica Lawshe
4d26c95781 Merge pull request #28710 from overleaf/jel-no-sso-notifications-when-domain-capture
[web] Do not show notification to link to Commons SSO when domain is also for group with domain capture

GitOrigin-RevId: 6779e2db02d5d9cc4e7a60789a620403a4e4aa11
2025-10-17 08:06:15 +00:00
Jakob Ackermann
1cd4b7b761 [web] fix clearing of clsi persistence during migration to new key (#29172)
GitOrigin-RevId: 1d9e6eb87f8f27792fdc866e7dcc29b47e1b2547
2025-10-17 08:06:06 +00:00
Jakob Ackermann
f0dc6b3274 [web] shard compile server persistence by compileBackendClass (#29156)
* [web] shard compile server persistence by compileBackendClass

* [web] make prettier happy

GitOrigin-RevId: d7cf8bde07e7110053d9d7531c007111af5cc46b
2025-10-17 08:06:02 +00:00
Antoine Clausse
a6438f03d6 Merge pull request #28981 from overleaf/ac-some-web-esm-migration-6
[web] Convert some Features/User files to ES modules

GitOrigin-RevId: c0d487082fa4822c68130e1e98c043297d4bedeb
2025-10-17 08:05:53 +00:00
MoxAmber
8f54468566 Merge pull request #29034 from overleaf/as-groups-enterprise-banner
[web] Persist whether user has dismissed Groups and Enterprise banner on server-side

GitOrigin-RevId: a95060cc0fa772652299802ec467be61b09f5a1f
2025-10-17 08:05:48 +00:00
MoxAmber
bafb7ec56d Merge pull request #28895 from overleaf/as-promisify-clsiformatchecker
Promisify ClsiFormatChecker and tests

GitOrigin-RevId: 89196708b97ff936660cc50a0b31f549d9723c4b
2025-10-17 08:05:40 +00:00
Brian Gough
89898b0e9a move migrations to shared location (#28306)
* fix: correct typedef for Document in helpers.mjs

* add move-migrations codemod

* update migration paths to use shared migrations directory

* move migrations to shared location

* fix: update Dockerfile and docker-compose.ci.yml to include migrations directory

* feat: add migrations tool to workspaces in package.json

* [monorepo] Fix order of docker ignore rules

* [web] remove unused docker ignore file

* [monorepo] replace old references to migrations folder

* [server-ce] copy migrations from new place

* [migrations] Inline web scripts

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [migrations] move three web scripts over

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [migrations] add missing collection

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [migrations] remove lodash dependency

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [migrations] avoid mongodb-legacy dependency

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [monorepo] run migrations from tools/migrations

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [migrations] simplify migration for adding gitBridge feature to users

* [monorepo] run migrations from tests in all the services

* [migrations] add Jenkins pipeline for linting/formatting

* [monorepo] fixup running web migrations everywhere

* [monorepo] trigger Jenkins builds on changes to mongo migrations

* [migrations] add Jenkins pipeline for linting/formatting

* [monorepo] build scripts: update devDependencies before deps scanning

* [monorepo] build scripts: formerly depend on tools/migrations

* [monorepo] run eslint on .mjs files

* [migrations] enable more eslint rules and fix all the errors

* [rake] fix migrations:list task

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 14cf69cc1b9405bbc75adbb9a000e555500e0614
2025-10-16 08:07:37 +00:00
Jakob Ackermann
3a0a9799dc [web] switch dark compiles to n4 (#29133)
* [clsi-perf] run compiles on any backend with prefix clsi_compile

* [clsi-lb] add n4 backend

* [terraform] clsi: add n4 instances

* [web] switch dark compiles to n4

* [terraform] clsi: remove c4d instances

* [terraform] clsi: scale up n4 instances

GitOrigin-RevId: 8f2d98ef6c3c503366c92c4f148a8dd7394cebd2
2025-10-16 08:07:21 +00:00
Davinder Singh
d56de64811 Add user language segmentation to the home-page-view event (#28910)
* adding server side events language accept information for the events and domain in event segmentation

* only sending the first language

* adding fixes for tests

* adding domain for plans-page-view and paywall-plans-page-view

* adding domain for gallery-page-view

* adding it for payment-page-view

* rename variable

* removing language from login-page-view

* adding a fallback value

* removing domain from test

* removing extra comment

* adding test host

* removing extra console added by mistake

* format:fix

GitOrigin-RevId: d1a1a30e4635abdc2b93f88de14a1d8937f974c8
2025-10-16 08:07:08 +00:00
Andrew Rumble
9c557a0e78 Convert to ESM
GitOrigin-RevId: bc407a128b024792a65b62c2eaeacefa48ecfe8d
2025-10-16 08:06:56 +00:00
Andrew Rumble
fb2d86ebd4 Rename files
GitOrigin-RevId: 73ecf16aa08d0677661249f09d7be15214d15982
2025-10-16 08:06:51 +00:00
Antoine Clausse
dd11adfdc3 [web] Fix FileTreeModalCreateFile modal style on "too many files" error (#28995)
* Temporarily update `maxEntitiesPerProject` to test `FileTreeModalCreateFile`

* Remove unused CSS

* Move project_has_too_many_files Notification to the modal body

* Turn project_approaching_file_limit message into a Notification

* Update project_has_too_many_files translation with `fileCount.limit`

* Update other project_has_too_many_files with limit parameter

* Add translations for project_has_too_many_files_limit

* Revert "Temporarily update `maxEntitiesPerProject` to test `FileTreeModalCreateFile`"

This reverts commit 704996aa96c9ba592c7e44d165def0b97d30bed1.

* Fix unit tests

* Move the warning notification to the modal's body

---------

Co-authored-by: Rebeka <o.dekany@gmail.com>
GitOrigin-RevId: 0f54db7021e4cd4537a14e4f9e1d8ef54337778c
2025-10-15 08:07:16 +00:00
Olzhas Askar
03ea7edcfd Merge pull request #29043 from overleaf/oa-odc-to-cio
[web] Send onboarding data to Customer IO

GitOrigin-RevId: b45d1b66d36c3bba36e9c777fb66699c6bb56d33
2025-10-15 08:06:53 +00:00
Mathias Jakobsen
a671c2e61b Merge pull request #28978 from overleaf/mj-visual-editor-broken-image
[web] Add image loading fallback screen to visual editor

GitOrigin-RevId: 205c6355011802672e57123bb2a61cb708242e31
2025-10-15 08:06:32 +00:00
Liangjun Song
c9175327fb Merge pull request #29036 from overleaf/ls-enable-individual-to-group-upgrade-in-production
Enable individual to group plan upgrade

GitOrigin-RevId: 3413c012bee320e4a4a61f829aaeff55e6116702
2025-10-15 08:06:23 +00:00
David
0c06885592 Merge pull request #28760 from overleaf/dp-hackathon-knip
Add Knip and remove a bunch of unused code

GitOrigin-RevId: 42ab99fc65973c883d2361e0027e7181767e714e
2025-10-15 08:05:57 +00:00
Jakob Ackermann
338e2e81c7 [monorepo] refactor retries in Jenkins to step level (#29008)
* [monorepo] refactor retries in Jenkins to step level

Change the junit reports to use step specific file names. The [hash]
template option was neat in getting unique file names, but results in
duplicate test reports on retry.

* [patches] add support for .cjs config files for mocha-multi-reporters

GitOrigin-RevId: 3a749441470b5ba633e71319589606cfbe860952
2025-10-13 08:06:37 +00:00
roo hutton
75887b9326 Merge pull request #28799 from overleaf/rh-promisify-email-confirmation
Promisify UserEmailsConfirmationHandler

GitOrigin-RevId: 844d478818a374a498ff24cdabb87659b5bc75aa
2025-10-13 08:05:46 +00:00
Maria Florencia Besteiro Gonzalez
2bd9ffbd6d Merge pull request #28850 from overleaf/mfb-promisify-user-membership-view-model
Promisify UserMembershipViewModel.js

GitOrigin-RevId: d06b44ca7df65886f420332a1f9fc3d5f9c989af
2025-10-10 08:06:15 +00:00
Liangjun Song
b875d71fd2 Merge pull request #28898 from overleaf/ls-send-email-for-tax-exempt-certificate
Send email if tax exempt certificate is required

GitOrigin-RevId: 685fec7dbb129eab19095470e681d09423558e4c
2025-10-10 08:05:22 +00:00
Andrew Rumble
e0992fe6e5 Make test admin users engineers
GitOrigin-RevId: 627b5b05eefdfa675937764b7c798e99ab6ef37e
2025-10-09 08:07:48 +00:00
ilkin-overleaf
a809f679fd Merge pull request #28865 from overleaf/ii-domain-capture-join-success-message-edit
[web] Domain capture join group message edit

GitOrigin-RevId: 8949dff2e1d95dd978ee5e04165ad4cefe51b088
2025-10-09 08:07:26 +00:00
ilkin-overleaf
4e565f37b7 Merge pull request #28808 from overleaf/ii-await-user-handler
[web] Promisify UserHandler

GitOrigin-RevId: 2daa6f74ec566851d208bf1b3d12d89ecf183383
2025-10-09 08:07:17 +00:00
Jakob Ackermann
3a27b707a1 [web] convert GeoIpLookup to async/await (#28802)
GitOrigin-RevId: 38ad8af970a0674a514bf5ed0dacb8becd7c1f72
2025-10-09 08:06:00 +00:00
Mathias Jakobsen
e96754a03b Merge pull request #28893 from overleaf/mj-linter-brace-check
[web] Allow braces in documentclass options

GitOrigin-RevId: 9675d3fc760a3b7d402c5a9df57a0cf183a1e648
2025-10-09 08:05:31 +00:00
Antoine Clausse
a2d9c8f813 Merge pull request #28584 from overleaf/ac-some-web-esm-migration-5
[web] Convert some Features files to ES modules (part 5)

GitOrigin-RevId: 0cad67f9afe0095e2b066bf2f4d3717c00540dab
2025-10-08 08:06:15 +00:00
David
8903cfa74d Merge pull request #28800 from overleaf/dp-promisify-user-getter
Promisify UserGetter and UserGetterTests

GitOrigin-RevId: 4a2613e632e6306751d19cb7160ee1f6c5c9e2f4
2025-10-08 08:05:41 +00:00
David
525229d5c3 Merge pull request #28811 from overleaf/dp-promisify-learned-words-manager
Promisify LearnedWordsManager and LearnedWordsManagerTests

GitOrigin-RevId: f4e30eca0292409bcefe82b17facd1129fdc85ae
2025-10-08 08:05:31 +00:00
Simon Gardner
3ed9daa926 Prevent Group subscription admins from deleting their own group subscription when invited to join
GitOrigin-RevId: a467a690cf4ee8b1a1081496205559a7f183a1f9
2025-10-07 08:06:00 +00:00
Simon Gardner
3162078ebb Improve UX for entering multi-digit quantities in Buy More Licenses feature
GitOrigin-RevId: c51e2146dbb53144e6951a16f7162ba2d10c5c4e
2025-10-07 08:05:55 +00:00
roo hutton
1b6c6cd150 Merge pull request #28578 from overleaf/rh-account-settings-links
Improve consistency of account settings link text

GitOrigin-RevId: d30c37fe32c425a571af6d580ebfe37403ebd142
2025-10-06 08:05:24 +00:00
Jakob Ackermann
9e3e4407a1 [web] add junit integration for Jenkins (#28788)
* [web] add junit integration for Jenkins

* [web] integrate junit test report for writefull into Jenkins

* [web] put all the junit test results into namespaces

GitOrigin-RevId: ba1ff07b5ea7bcfa97bb4d6bf7fa9e5291ab7b0f
2025-10-02 08:06:25 +00:00
Domagoj Kriskovic
7a46cb5c03 Support for deleting and editing chat messages (#28204)
* Initial server-side delete of chat message plus dropdown

* Update chat pane after deleting message

* Chat message dropdown styling

* Add confirmation dialog for deleting a message

* Refactor chat message grouping to allow deletion of individual messages

* Delete other user's deleted message from chat pane

* Implement message editing

* Styling

* Make the dropdown appear overlap with the button slightly so that the menu stays visible when the user moves their cursor into the menu when the menu is positioned above the button

* Submit edit with Enter key

* Add edited indicator to edited chat messages

* Add animation to chat message deletion

* Tidying, edit chat message textarea improvements

* Add types to message-list-utils

* update dependencies

* edit/delete for ide-redesign

* fix type errors in tests

* filter deleted messages from group

* promisify ChatController

* fix tests and translations

* add new tests

* chat-context tests

* fix message-list-appender tests

* add new tests for message-list-utils

* Update services/web/test/frontend/features/chat/context/chat-context.test.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* preserve original content when canceling edits

* update delete message translation

* hide dropdown only if not already shown

* remove delete animation

* fix lint error

* fix chat.yaml

* hide under feature flag

---------

Co-authored-by: Tim Down <158919+timdown@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: 12521886a1a59ccd564851df19e5d46c70d328f5
2025-10-02 08:05:58 +00:00
Eric Mc Sween
a7136f321e Merge pull request #28656 from overleaf/em-restore-optimize-file-download
File restore: optimize file download from history

GitOrigin-RevId: c32afe7d2ede2372e95490f62e79266f5f6d58da
2025-09-29 08:06:56 +00:00
Eric Mc Sween
c150f2fdad Merge pull request #28655 from overleaf/em-restore-avoid-doc-download
File restore: avoid downloading docs unnecessarily

GitOrigin-RevId: bf5faab7510b118041aaf848f9acb3eb864b5cc4
2025-09-29 08:06:51 +00:00
Antoine Clausse
8669c7c964 [web] Prevent errors from silently resolving and simplify promises in tests (#28621)
GitOrigin-RevId: e6ba7d25436c1350f8eef74df34dce03f93af909
2025-09-29 08:05:36 +00:00
Rebeka Dekany
aedff1039e Update loading spinner status (#28177)
* Update test for the loading spinner component

* Create a story for the loading spinner component

* Move role and use CSS for spacing instead

* Add a classname prop

* Reuse LoadingSpinner

* Use OLSpinner instead of Spinner

* Use data-testid since status role was moved

* Wait for journals to load

* Use `isLoading` prop instead and fix the button's height

* Use `isLoading` prop instead

* Use LoadingSpinner instead and remove spacing

* Update test for the loading spinner component

* Use `isLoading` prop instead

* Add aria-describedby to layout button for processing state

* Replace `spinner` to `ol-spinner`

* Scope status

* Remove redundant `div.loading`

---------

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: 8f43b991f8f458b2abd5a4661913ac9b972d892a
2025-09-26 08:05:46 +00:00
Rebeka Dekany
b61c7f9259 Improvement to OLButton loading labels (#28659)
* Create eslint rule for requiring loadingLabel prop when isLoading is specified on OLButton

* Add `loadingLabel` props for OLButton components with `isLoading`

* Clarify loading label and button loading state

GitOrigin-RevId: 89279d5b4c346f9c3b67a59d0db822a2ff04314a
2025-09-26 08:05:41 +00:00
Olzhas Askar
a36aca056f Merge pull request #28673 from overleaf/oa-signup-date
[web] Expose signup date for Customer.IO

GitOrigin-RevId: 950b396e154e495071b104ea86e2441052df4bfb
2025-09-26 08:05:31 +00:00
Eric Mc Sween
0015f2cc6c Merge pull request #28672 from overleaf/em-reapply-restore-optimization
Reapply file restore optimization

GitOrigin-RevId: c4479141d890e3e0af746f406a0186bf21f3d918
2025-09-25 08:05:25 +00:00
Brian Gough
75cbf3826c Merge pull request #28628 from overleaf/bg-cache-history-size-on-project
Implement project size checks on file uploads

GitOrigin-RevId: 4dffe237e6992b859f07964cffa82ff1c13e91c9
2025-09-24 08:07:37 +00:00
Jessica Lawshe
922020ecfb Merge pull request #28618 from overleaf/jel-commons-enable-while-migrating-to-group
[web] Support Commons migration to a group with domain capture

GitOrigin-RevId: 9262a44fc09d6d19a9c17895ef90bcef877e4a42
2025-09-24 08:07:29 +00:00
ilkin-overleaf
dfd6c8b007 Merge pull request #28522 from overleaf/ii-domain-capture-create-user-notification
[web] Success message when linking to group with domain capture

GitOrigin-RevId: 2abf29b486da5043c9f207b8f1f741a3c3ee54ab
2025-09-24 08:06:29 +00:00
Domagoj Kriskovic
f2502a5143 Revert "File restore optimization - using snapshot timestamp and file paths (#28546)"
This reverts commit 376a53e1f927cb56544e6782b47d80345655038c.

GitOrigin-RevId: 8e4ab1d4042fec8df1b62ab1c5418d873dc6f5eb
2025-09-24 08:06:06 +00:00
Domagoj Kriskovic
fa163bd02c File restore optimization - using snapshot timestamp and file paths (#28546)
* Use snapshot timestamp, remove request for paths at version

* Add timestamp to core Snapshot object

* Avoid mutating function argument

* Explain assumption about editable files

* snapshot.toRaw() in getContentAtVersion

* fix project-history acceptance test

* fix history_v1 test

* fix web tests

* Include the snapshot timestamp in stored chunks

---------

Co-authored-by: Eric Mc Sween <5454374+emcsween@users.noreply.github.com>
GitOrigin-RevId: 376a53e1f927cb56544e6782b47d80345655038c
2025-09-24 08:06:02 +00:00
Antoine Clausse
6b663a8509 Merge pull request #28544 from overleaf/ac-some-web-esm-migration-4
[web] Convert some Features files to ES modules (part 4)

GitOrigin-RevId: cf11a7584e39c4d4de08e2f924240e488a4066c4
2025-09-24 08:05:58 +00:00
Olzhas Askar
db7bd82158 Merge pull request #28596 from overleaf/oa-possessive-s
[web] Unescaping possessive s and ampersand for Email subjects

GitOrigin-RevId: 8ba0fd509c8b6bd2a3eec13adf10f13b0bdb6aca
2025-09-23 08:07:54 +00:00
Olzhas Askar
d33caaee53 Merge pull request #28540 from overleaf/oa-punctuation
[web] Notification punctuation

GitOrigin-RevId: ba20f0049a5f72f3ba03917d9fe76b220adffcf0
2025-09-23 08:07:49 +00:00