Commit Graph
157 Commits
Author SHA1 Message Date
claudeandClaude Sonnet 4.6 94d3764c05 fix: stream HTTP 200 heartbeat before upload body to prevent proxy timeouts
Build and Deploy Verso / deploy (push) Has been cancelled
Uploads from slow connections consistently fail with 502 after ~60-120s
because an upstream proxy (Traefik or cloud load-balancer) has a
"first response byte" deadline that fires before the request body arrives.

Fix: add startStreamingResponse middleware (after auth, before multer)
that immediately writes HTTP 200 + Transfer-Encoding: chunked + '\n'.
With proxy_request_buffering off in Nginx, this reaches the proxy at T≈0,
so no timeout triggers. The upload body continues streaming; multer writes
to disk; the actual JSON result arrives as the final chunk. Periodic
heartbeat '\n' writes every 30s keep response-idle timeouts at bay too.

Client-side: override Uppy's getResponseData/validateStatus to trim
leading whitespace before JSON.parse so the extra '\n' bytes are ignored.
Server-side: sendUploadResponse() helper handles both streaming mode
(res.headersSent → res.end(json)) and normal mode (res.status(N).json()).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 08:59:02 +00:00
claudeandClaude Sonnet 4.6 eada1e9979 file-tree: show python packages button for all quarto projects
Build and Deploy Verso / deploy (push) Successful in 13m42s
The previous approach (pdfFile?.path === 'output.html') caused a
chicken-and-egg problem: the button only appeared after a successful
RevealJS compile, but you need to add packages before the first compile.

Use compiler === 'quarto' from ProjectSettingsContext instead — this is
set from project metadata and available immediately, before any compile.
Quarto supports Jupyter Python cells in all output formats (RevealJS HTML,
PDF via LaTeX, PDF via Typst), so showing the button for any Quarto project
is the correct behaviour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 07:41:21 +00:00
claudeandClaude Sonnet 4.6 a398127522 ui: brand badge colors and hide python packages for non-revealjs
Build and Deploy Verso / deploy (push) Successful in 13m8s
- LaTeX badge: #13c965 (Overleaf brand green, from upstream overleaf/overleaf)
- Typst badge: #239dad (Typst brand blue/teal, from typst.app)
- Python packages toolbar button: only shown when the compiled output is
  output.html, i.e. a Quarto RevealJS presentation.  Uses the same
  pdfFile?.path === 'output.html' check as PresentationPreviewButton.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 06:51:30 +00:00
claudeandClaude Opus 4.8 405c1d27c9 Bundle Python requirements into a dedicated editor; hide requirements.vrf
Add a 'Python packages' button to the file-tree toolbar that opens a modal to
edit the project's requirements.vrf (one package per line, pip syntax), backed
by GET/POST /project/:id/python-requirements (read via ProjectEntityHandler,
write via EditorController.upsertDocWithPath, write-gated). The .vrf file is now
hidden from the file tree, so it is managed only through this editor rather than
appearing as a loose file. Adds python_packages / python_packages_help i18n.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 14:26:03 +00:00
Tom WellsandCopybot ea94771624 Add SplitTestBadge to file tree for .bib files (#33460)
GitOrigin-RevId: 7ae109844d5d0b984eeec25ea22572b304375c47
2026-05-12 08:05:19 +00:00
Malik GlossopandCopybot 99f1551e4b Merge pull request #32754 from overleaf/mg-native-context-shortcut
Allow Shift+right-click to use native browser context menu

GitOrigin-RevId: 0455283e47511e6e770d389c5cc6994018766f74
2026-04-21 08:06:19 +00:00
Alf EatonandCopybot 616f99fece Focus file upload modal on open (#32188)
GitOrigin-RevId: 89ad65e4ad5af59d46f04ca4e057f88120e8293f
2026-03-20 09:06:13 +00:00
Davinder SinghandCopybot 7daaba5af7 Merge pull request #31957 from overleaf/ds-removing-useIsNewEditorEnabled-5
[Part 5] Removing the usage of `useIsNewEditorEnabled` for editor tear down

GitOrigin-RevId: 086183b196a44b393dc0c0f60f7bfbc5738901fc
2026-03-06 09:17:25 +00:00
Davinder SinghandCopybot 281dc16a6d removing the usage of useIsNewEditorEnabled from first set of files (#31800)
GitOrigin-RevId: 821885295f4dab046d9abf552d7fbd7a21d86fb5
2026-03-06 09:14:55 +00:00
Davinder SinghandCopybot f27c99ea4b Tearing down of old Editor (File tree) (#31784)
* merging ide-redesign/components/file-tree into features/file-tree

* moving ide-redesign/contexts/settings-modal-context   to features/settings/contexts

* use-collapsible-file-tree.tsx → features/file-tree/hooks

* use-focus-on-setting.tsx → features/settings/hooks

* use-project-notification-preferences.ts → features/settings/hooks

* use-rail-overflow.tsx→ features/ide-react/hooks

* deleting use-switch-enable-new-editor-state.ts

* use-toolbar-menu-editor-commands.tsx → features/source-editor/hooks

* npm run extract-translations

* modifying the test to target correct buttons and removing a test for old component

* adding a test back and modifying it

* changing the test

GitOrigin-RevId: baa1e9a992c88b84313eea82161354d4958cf1ef
2026-03-06 09:14:01 +00:00
Alf EatonandCopybot a841dbfd2c Add "Set as main document" to file tree menu (#30399)
GitOrigin-RevId: e05a7d0b103226bdc34e559d0d48c12183abdf5a
2025-12-18 09:06:19 +00:00
Alf EatonandCopybot b811da0695 [workbench] Improve asynchronous tool use (#30184)
GitOrigin-RevId: d1bd33469b557c29968049af99b9c3c85731151d
2025-12-10 09:06:43 +00:00
DavidandCopybot c903c70d0a Merge pull request #30180 from overleaf/dp-dark-context-menu
Add dark version of file tree context menu

GitOrigin-RevId: de37cd6b78e32ace295a9c77fbba86d4ba217b80
2025-12-10 09:05:30 +00:00
DavidandCopybot 76024341f8 Merge pull request #30058 from overleaf/dp-offscreen-context-menu
Add override for upwards dropdowns in file tree context menu

GitOrigin-RevId: 34f69f884eb0b942cb0462ab071c5dcaad8fad16
2025-12-04 09:06:33 +00:00
Anna Claire FieldsandCopybot 38ca13c26f Merge pull request #29997 from overleaf/acf-remove-trailing-dots-on-fetch
remove trailing dots on paste

GitOrigin-RevId: 486158afbec9822fd089a46d147994451d9fec65
2025-12-03 09:06:28 +00:00
8c15af1a70 [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
19b38340ac Consistent usage of the modal header close button (#28681)
* Convert OLModal to named exports only

* Make closeButton the default for OLModalHeader

* Set `closeButton={false}` for modal that is not dismissible

* Fix duplicated imports

* Remove another unnecessary `closeButton` prop

* Fix import

---------

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: ddd7be6e59a966ac634683d2494d6e9d2c3732e6
2025-09-30 08:05:24 +00:00
3b5ea89a1c 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 DekanyandCopybot aebff54a6b 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
Alf EatonandCopybot 19866f48a8 Only call openDoc if the creation was successful (#28153)
GitOrigin-RevId: a545e9ee9b5cfa5d81401e06a92e900ff6d06bae
2025-09-05 08:05:52 +00:00
Domagoj KriskovicandCopybot dff92f1e6b Skip opening root document if delete originated from a file-restore (#27992)
* Skip opening root document if delete originated from a file-restore

* handle project-restore origin

* Refactor isFileRestore logic

GitOrigin-RevId: f2a34189140deb4e614d93e8d197b8a6a90c8f65
2025-08-27 08:05:25 +00:00
Rebeka DekanyandCopybot 74533fc401 Replace placeholders with labels (#26811)
* Replace placeholders for labels

* Remove redundant aria-label and update labels with `.visually-hidden`

* Change "Invite more members" to a label

* Fix helper text for group members and fix responsiveness

* Change error message to an error notification

* Use label and helper text instead of a placeholder

* Remove redundant label and use the placeholder text instead for the admin user searchbar

* Extract translations

GitOrigin-RevId: a504fda9779da82920b57c7b8aad38a8b027d09a
2025-08-26 08:05:02 +00:00
DavidandCopybot 38d4ac9842 Merge pull request #27806 from overleaf/dp-file-tree-modals-typescript
Convert FileTree modal components to typescript

GitOrigin-RevId: 8dde8dc0d27aa545a300f4be939eb83e6963ad5d
2025-08-14 08:05:34 +00:00
Mathias JakobsenandCopybot 03fdbbf369 Merge pull request #27840 from overleaf/mj-file-tree-ts
[web] Convert most remaining file tree components and functions to Typescript

GitOrigin-RevId: 1aabe371af489def891ffc420c7f28b4efc309ef
2025-08-14 08:05:04 +00:00
Rebeka DekanyandCopybot d751b88e6b Bootstrap files and folders cleanup (#27692)
* Remove icons folder

* Create folders for badge, button, and dropdown components

* Remove Bootstrap 5 from test

* Rename `getBootstrap5Breakpoint` to `getBootstrapBreakpoint`

* Cleanup and update BS 5 comments

* Move components to the shared folder

* Rename `tooltips-bs5` to `tooltip`

* Remove `-bs5` suffix

* Fix path

* Delete BS3 version file

* Rename `_form_marketing-bootstrap-5` to `_form_marketing`

* Delete BS3 version file

* Rename `_contact_general_modal-marketing-bootstrap-5` to `_contact_general_modal-marketing`

* Delete BS3 version file

* Rename `_contact_modal-marketing-bootstrap-5` to `_contact_modal-marketing`

* Delete BS3 version file

* Rename `thin-footer-bootstrap-5` to `thin-footer`

* Delete BS3 version file

* Rename `language-picker-bootstrap-5` to `language-picker`

* Rename `fat-footer-react-bootstrap-5` to `fat-footer-react`

* Delete BS3 version file

* Rename `navbar-marketing-bootstrap-5` to `navbar-marketing`

* Rename `navbar-marketing-react-bootstrap-5` to `navbar-marketing-react`

* Delete BS3 version file

* Rename `layout-website-redesign-cms-bootstrap-5` to `layout-website-redesign-cms`

* Source format

* Fix path

GitOrigin-RevId: cf0f5db7c84cf545c69213dcc271d9ff17fe5db7
2025-08-11 08:06:16 +00:00
DavidandCopybot df03b5c8b4 Merge pull request #27389 from overleaf/dp-folder-click
Open folder on click of folder item

GitOrigin-RevId: 4af71533951ef183eec9dec4b4940470695f2f1d
2025-08-08 08:06:26 +00:00
DavidandCopybot a169f90b76 Merge pull request #27678 from overleaf/dp-open-new-file
Immediately open doc after creation

GitOrigin-RevId: a202a9ed4e03668a04594e7fe352d5c52d5d5572
2025-08-08 08:06:16 +00:00
082121d3da [web] reject upload requests without a file path (#27156)
* [web] reject upload requests without a file path

* [web] update copy on error message and link to contact form

Co-authored-by: Kamal Arkinstall <kamal.arkinstall@overleaf.com>

* [web] update copy: move dot to the end

---------

Co-authored-by: Kamal Arkinstall <kamal.arkinstall@overleaf.com>
GitOrigin-RevId: ba1ee81a91b046540caeb2f3f3da0e305611b35f
2025-07-22 08:07:03 +00:00
Tim DownandCopybot 905cc5d45f Move project context out of scope value store (#26615)
* Refactor project context to not use scope store

* Fix Cypress tests for project context changes

* Fix frontend React Testing Library tests for project context changes

* Remove redundant code

* Fix some project types in tests

* Remove unused import and fix a type

* Throw an error if updating the project in the project context before joining the project

* Fix some review panel tests

* Remove unused imports

GitOrigin-RevId: 2f0c928b651f387aa980c29aef7d1ba0649790a7
2025-07-10 08:06:31 +00:00
Domagoj KriskovicandCopybot d57d0ca738 Unselect files before deleting (#26810)
GitOrigin-RevId: 6bf22bc4983c96b7e2b45067aa0970c7fea293e2
2025-07-08 08:05:42 +00:00
Rebeka DekanyandCopybot 1950585514 Improve selectors to reduce flaky E2E tests (#26413)
* Use the leadingIcon prop instead of spacing

* Remove duplicated ID

* Make the alt text to be empty since image is decorative

* Make switcher input visually hidden

The switcher's input previously used 'pointer-events: none', which prevented proper interaction in the test. It replaces that hack.

* Add accessibilityLabel to the info icon that is actually a clickable link

* Use more specific selectors

* It should display

* Use more specific selectors

* Use more specific selectors

GitOrigin-RevId: a555d96cf972d06dd5432f44a23b02355cedcd94
2025-06-27 07:34:51 +00:00
Tim DownandCopybot ab140f578d Merge pull request #26244 from overleaf/td-limit-browser-translate-ide
Prevent browser translation of stuff that shouldn't be translated in IDE page

GitOrigin-RevId: 96a75b51c3c8efc4cbcec7eb17d9e331a03e2c96
2025-06-24 08:05:32 +00:00
Antoine ClausseandCopybot 3ba002460e [web] Remove instances of $scope and _ide (#26297)
* Remove `$scope` from `getMockIde`

* Replace `...getMockIde()` by `_id: projectId`

* Simplify stories decorator scope.tsx: less reliance on `window`

* Update helper editor-providers.jsx: pass data instead directly instead of using `window`

* Remove `cleanUpContext`

* Remove unused prop `clsiServerId`

* Update types to reflect unused properties

* Remove comment

* Add `ol-chatEnabled` in Storybook

* Revert moving `getMeta` outside of the component

This causes issues in Storybook

GitOrigin-RevId: dc2558ce814c2d738fb39450c57c104f4419efb8
2025-06-18 08:06:42 +00:00
DavidandCopybot 061f10a059 Merge pull request #25752 from overleaf/dp-delete-multiple-files
Add bulk delete button to file tree toolbar

GitOrigin-RevId: c857d8f5027eddb29b1ca324efe1a0e94ef4c28b
2025-05-22 08:06:42 +00:00
Tim DownandCopybot 5c4cb50628 Merge pull request #24988 from overleaf/td-bs5-upgrade-and-rename
Apply minor upgrades to Bootstrap 5 and react-bootstrap

GitOrigin-RevId: eb013f38515ebd4b9572d139f00841aca344e3c6
2025-05-16 08:05:28 +00:00
DavidandCopybot 8e31c30ec7 Merge pull request #25398 from overleaf/dp-file-tree-proptypes
Remove PropTypes from file-tree components

GitOrigin-RevId: 7ecbf9778da59b852be8678c5dff61e13d927b9c
2025-05-13 08:08:02 +00:00
Tim DownandCopybot 7abafb01ea Merge pull request #23940 from overleaf/td-react-18
Upgrade to React 18

GitOrigin-RevId: 9b81936e6eea2bccd97fe5c2c5841f0b946371b8
2025-05-02 08:05:29 +00:00
Rebeka DekanyandCopybot 2731ffaf10 Make editor popover toolbar keyboard focusable (#25169)
* Remove redundant class conflicting with focus styling

* Make the toolbar in the popover focusable via keyboard

* Focus to the first context menu item via keyboard only

GitOrigin-RevId: 7d3e2af4ba96654b5b2312b3999483c2a439b406
2025-04-30 08:05:25 +00:00
Tim DownandCopybot 28468e134c Merge pull request #24660 from overleaf/td-bs5-remove-react-bootstrap-0
Remove react-bootstrap 0.33.1

GitOrigin-RevId: c320a6b18c576afdc0fd49559915d3d2f3a7a1ef
2025-04-10 08:04:50 +00:00
DavidandCopybot dcabf55882 Merge pull request #24137 from overleaf/mj-ide-permissions-utils
[web] Add switcher for editor redesign

GitOrigin-RevId: 806a1f567027df53f879b564a50aaae9166c8480
2025-03-18 09:05:40 +00:00
Rebeka DekanyandCopybot 69bc8a135b Bootstrap 3 cleanup from the IDE page - #2 (#24175)
* Remove skipLoadingStyleSheet

* Remove unused bootstrap-5 assignment from the Account settings page since it's archived

* Remove bsVersionIcon

* Remove bsVersion, bootstrapVersion and isBootstrap5 from elements on the IDE page

* Remove BS3Dropdown from the context menu

* Cleanup Bootstrap 3 related comment and type

GitOrigin-RevId: a67244eb78943ee84cc5f89bae164c0361e8fc13
2025-03-11 09:05:00 +00:00
Alf EatonandCopybot 2147f1d53d Remove Bootstrap 3 code from IDE page components (#23061)
GitOrigin-RevId: b41aff10672bf96e892de0be396a69eb25e2443b
2025-03-07 09:05:45 +00:00
DavidandCopybot f219744fdd Merge pull request #23344 from overleaf/dp-file-tree-toolbar
Update file tree toolbar in new editor

GitOrigin-RevId: 11ca678b50e0c525ae60b806dfbc08773b661b7b
2025-02-07 09:06:30 +00:00
Jimmy Domagala-TangandCopybot 7f7c2408c8 Merge pull request #23281 from overleaf/jdt-opp-prompts-teardown
Opportunistic prompts teardown

GitOrigin-RevId: ccca9b043dce9abc5719371c3adcdf41ec6510c3
2025-02-04 09:05:25 +00:00
DavidandCopybot 8acbafcb05 Merge pull request #22979 from overleaf/dp-file-tree-in-editor
Add file tree to editor

GitOrigin-RevId: 493ecf88d632bed92c6b2b5ae2e5c0b7eef968cc
2025-01-28 09:04:35 +00:00
DavidandCopybot 037cc3b7a4 Merge pull request #22930 from overleaf/dp-filetree
Convert filetree components to typescript

GitOrigin-RevId: f06abb9705013d3da1a87c8f4bef4a82c4fab5d2
2025-01-22 09:05:01 +00:00
Alf EatonandCopybot f069adaf15 Add full project search UI (#22671)
GitOrigin-RevId: f40c85f40f4c16b4b3c26a197924cd9ac9b3db1f
2025-01-16 09:05:45 +00:00
Antoine ClausseandCopybot 629435e87a Replace className="secondary" by variant="secondary" (#21672)
GitOrigin-RevId: a45532c2b4e927c3cc3a771eaf185ced4650f94c
2024-11-15 09:05:29 +00:00
Jimmy Domagala-TangandCopybot 745695650c Merge pull request #21470 from overleaf/jdt-file-upload-limit-notif
[Web] Update 180 file upload limit notification style

GitOrigin-RevId: 860567d8e1218c0d2a89d019c116b59be15132e7
2024-11-05 09:05:41 +00:00
Rebeka DekanyandCopybot ac74ba9e8c Merge pull request #20501 from overleaf/rd-filetree-toolbar
Migrate the file tree toolbar to Bootstrap 5

GitOrigin-RevId: 00ebe585206bf163bf9a00aa56b52d43effd5605
2024-09-26 08:05:47 +00:00