Commit Graph
2031 Commits
Author SHA1 Message Date
Anthony LC aff6f2b4cc ⬇️(dependency) downgrade typescript to v6.0.3
We are downgrading TypeScript from version 7.0.2
to 6.0.3.
To bump the version of TypeScript, we will need
to update the codebase to be compatible with the
new version.
2026-07-21 14:25:32 +02:00
renovate[bot]andAnthony LC be5071682b ⬆️(dependencies) update js dependencies 2026-07-21 14:25:32 +02:00
Cyril 1258ae2e04 ️(frontend) use semantic <p> elements in document info card
Wrap role and last-update text in DocHeaderInfo with <p>.
2026-07-21 11:42:14 +02:00
5217dd4fca 🐛(frontend) redirect homepage to login when homepage feat is disabled
FRONTEND_HOMEPAGE_FEATURE_ENABLED=false makes the Auth guard send
anonymous visitors on / straight to login instead of /home, but the
/home page itself still rendered the full homepage when reached via a
direct link. Redirect it to login too, so disabling the feature really
disables the page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PhqB4SHsHCuMfprwLEN3rR
Signed-off-by: Maarten Draijer <maarten@madra.nl>
2026-07-21 10:56:07 +02:00
exyoneandAnthony LC 126818fc15 🌐(i18n) rename cn_CN to zh_CN, add eo_PL and zh_TW locales
We have renamed the Chinese locale from `cn_CN`
to `zh_CN` to align with standard locale naming
conventions.
Additionally, we have added support for two new
locales: Esperanto (`eo_PL`) and
Traditional Chinese (`zh_TW`).
2026-07-21 10:19:01 +02:00
Nathan Panchout 5a8f6967ce 💄(frontend) restyle the editor divider block
Slim the divider to a 1px rule with a brand-colored selected state,
matching the mockups.

Closes #2474
2026-07-20 10:52:19 +02:00
Nathan Panchout 708fa837cc 🐛(frontend) remove the stray focus outline on presenter slides
A selected image (or any selected node) leaked its editing outline into
the read-only slide. Suppress the selected-node outline so nothing looks
focused unless the user tabs or clicks.

Closes #2393
2026-07-20 09:55:20 +02:00
Nathan Panchout 327c7ba103 🐛(frontend) keep divider children and trim slide-break spacing
Dividers with children are kept as structural parents so their slide
keeps its indentation; the divider's own rule is hidden. Empty
paragraphs around a divider are dropped so habitual spacing no longer
offsets slides.

Closes #2398
2026-07-20 09:55:20 +02:00
Nathan Panchout 33d091d88f (frontend) show a generated title slide before the content
Prepend a slide with the document title (emoji stripped) so every
presentation opens on a cover, announced to screen readers like any
other slide (#2466).
2026-07-20 09:55:20 +02:00
Nathan Panchout d87b82ef37 ♻️(frontend) extract reusable presenter slide content component
Pull the BlockNote rendering out of PresenterSlide into
PresenterSlideContent so it can be reused by the title slide and the PDF
export. Add a PresenterSlideData union (title | content) and a shared
PresenterBlock type.
2026-07-20 09:55:20 +02:00
Nathan Panchout 877109be79 ♻️(frontend) drive the presenter from a store and one mount point
Move presenter ownership out of DocToolBox into a top-level
PresenterRoot driven by a zustand store, lazy-load the overlay and paint
a boot cover while the editor boots. Groundwork for the deep-link and
present-from-here features (#2466).
2026-07-20 09:55:20 +02:00
Cyril 8d2dd5b565 (frontend) restore skip to content link after header redesign
Re-add skip link with responsive positioning and document title focus.
2026-07-13 09:41:42 +02:00
Anthony LCandManuel Raynaud 57ad4f4be8 🔖(release) patch 5.4.1
Changed:
- ♻️(backend) reset collaboration connection in cascade for all children

Fixed:
- 💄(frontend) fix some UI/UX in the left panel
- 🐛(frontend) fix tree dnd firefox
2026-07-09 18:22:20 +02:00
Manuel Raynaud 9551ea67d9 🐛(helm) fix nil pointer error with envFrom in the backened_conjob_list
In the backend_cronjob_list.yaml template the usage `.Values` instead of
`$.Values` was causing a nil pointer error
2026-07-09 18:22:19 +02:00
Anthony LC 5a705b045b 💄(frontend) fix some UI/UX in the left panel
- Collapse panel button is now:
  - fully clickable,
  - the title is hidden
  - when the doc title is visible
  - when small mobile the title is hidden
- Add button login when logout whatever the device
- Fix flickering logo
- New icon name to avoid cache
2026-07-09 17:46:12 +02:00
Anthony LC 8f53e4b068 🐛(frontend) fix tree dnd firefox
With Firefox, the DND was not working properly anymore.
From a previous refacto, a item is now a link,
by default a link has a draggable attribute set
to true, it was conflicting with the DND library,
so we need to set it to false.
2026-07-09 17:45:47 +02:00
Manuel Raynaud d35b81a6ed ♻️(backend) reset collaboration connection in cascade for all children
When an access is updated or deleted, or a link_configuration is
changed, the collaration_service is used to reset the connection in the
collaboration server. As accesses and link_configuration are inherited
in a Docs tree, if the user is connected to a child, the connection is
not reset. This commit fix this issue by calling the reset on every
children in the tree.
2026-07-09 14:46:11 +02:00
Manuel Raynaud d1db000c76 🔧(backend) configure logging with propagate set to True
In the settings, the logging has set the propagate property to False.
While writing tests it wasn't possible to assert log was made using the
caplog fixtures because this propagate is set to False. Changing it to
True allow to correctly tests that a log is made using the caplog
fixture.
2026-07-09 14:45:04 +02:00
Stephan MeijerandGitHub 9c9f2134e7 🔊(y-provider) capture convert handler errors in Sentry
The y-provider `/api/convert` handler catches every writer/reader
exception and returns a generic `{"error":"An error occurred"}` 500. The
real JS exception is silently dropped: `logger()` only prints to stdout
when `COLLABORATION_LOGGING=true`, and Sentry's
`setupExpressErrorHandler` only sees unhandled errors — never this one.

Result: Sentry issues `DOCS-4ZY` / `DOCS-4ZZ` / `DOCS-6DK` all fire on
every 500, but none of them carry the underlying JS stack, making
root-cause diagnosis impossible from Python alone.

This patch adds `Sentry.captureException` in the outer catch with
`handler:convert` tag and `contentType` / `accept` / `bodyBytes` extras.
Behavior otherwise unchanged.

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
2026-07-08 13:51:27 +00:00
Anthony LC 0659cc5247 🔖(minor) release 5.4.0
Added:
- (y-provider) preserve callouts, PDFs, page breaks, interlinking
  links and commented text on HTML/markdown export
- (frontend) add a user menu
- (frontend) new header and responsive harmonization
- (backend) add management command to reset a Document

Changed:
- ️(frontend) hide mobile left panel from screen readers when collapsed
- ️(frontend) enable blocknote heading ids for toc anchors
- ️(frontend) focus export modal on format select
- ️(frontend) configurable legal submenu in HelpMenu, remove Crisp
- ♻️(frontend) new create button for docs
- ️(frontend) align search modal field label with placeholder
- 🚚(frontend) move Waffle to bottom left
- ️(frontend) remove redundant aria-label on table of contents links
- ♻️(core) fix typo in settings COLLABORATION_WS_NOT_CONNECTED_READY_ONLY
- ♻️(backend) scope document search by document id instead of path

Fixed:
- 🐛(backend) prevent owner from leaving a soft-deleted document
- 🐛(frontend) fix removed item in the tree
- 🐛(frontend) fix service worker causing reload on tab focus
- 🐛(backend) update restore ability for inherited deletion
- 🔧(dev) make the dev stack domain-agnostic
- 🐛(frontend) stop force index redirect when delete doc
- 🐛(frontend) fix CTA on move modal on mobile

Removed:
- 🔥(backend) remove unused default authentication backend
2026-07-08 10:55:43 +02:00
Anthony LC 5440146fcd ️(frontend) hide import button on a document
We decided to hide the import button on a
document because it is confusing for the user to
have the possibility to import a document when he
is already in a document. The import button is
now only available on the document list page.
We will add back the button soon, but a import
will create a new sub-document instead.
2026-07-08 10:55:42 +02:00
AntoLCandAnthony LC 11f3dcb635 🌐(i18n) update translated strings
Update translated files with new translations
2026-07-08 09:34:59 +02:00
Manuel Raynaud c647cb62f1 ♻️(frontend) change search using document path to its id
The search endpoint does not accept anymore the usage of the path
parameter but it is using the document id directly. We have to reflect
this changes in the frontend application.
2026-07-07 11:21:47 +02:00
Manuel Raynaud 9ef4a15f5e ♻️(backend) scope document search by document id instead of path
The search in a document tree was triggered by the usage of the document
path. The path is something guessable by incrementing it you can
discover public documents. We decided to change this to use the document
id which is not guessable and prevent discovering public documents.
Thanks to @maboukerfa for discovering it.
2026-07-07 11:21:47 +02:00
Anthony LC 6a6154659f 💄(frontend) improve ui/ux before release
Following the recommendations of the design team,
we lightly improved some UI/UX elements to be
more consistent and user-friendly before the
next release.

It includes the following changes:
- add a background to the grid
- add a fadein to the header buttons
- reduce the generic size icon
- add a title to the doc item
2026-07-07 10:57:20 +02:00
Anthony LC c2864378ed 🐛(frontend) fix CTA on move modal on mobile
On some mobile devices, the CTA button on the
move modal was not visible due to a CSS issue.
This commit fixes the issue by adjusting the modal's
layout and ensuring that the CTA buttons are visible.
2026-07-07 10:20:02 +02:00
Anthony LC 6a84430a4f 🔧(dev) make the dev stack domain-agnostic
Keycloak's hostname, its client's redirect/web
origins, and Django's CSRF trusted origins were
hardcoded to localhost, so the dev stack was
only reachable from that exact origin.
It is now possible to run the dev stack depending
what is configured in the env files.
2026-07-06 17:10:55 +02:00
Anthony LC 151d3a8135 🐛(frontend) stop force index redirect when delete doc
Depends the state, after deleted a doc, we were
automatically redirecting to the index page, which is
not always the desired behavior. This change stops
the automatic redirect after deleting a document,
allowing for more flexible navigation based on user
context.
2026-07-06 14:55:03 +02:00
Manuel Raynaud b01e6d58fd ♻️(core) fix typo in settings COLLABORATION_WS_NOT_CONNECTED_READY_ONLY
The settings COLLABORATION_WS_NOT_CONNECTED_READY_ONLY contains a typo.
We don't want to see READY_ONLY but READ_ONLY. This commit fix the typo
and change everywhere in the codebase the settings name.
2026-07-06 08:55:21 +02:00
Anthony LC 86e9ef40f1 (e2e) fix regression tests for export
Some regression tests for export were failing.
This commit fixes the issues by updating the pdf
regression files.
2026-07-03 17:42:20 +02:00
Anthony LC 4bd835ac47 (frontend) add Lottie animation to header floating bar
We want to animate the header floating bar with
a Lottie animation. This commit adds the Lottie
dependency and implements the animation in the
HeaderFloatingBar component.
2026-07-03 17:42:20 +02:00
Anthony LC 6a90714c05 📱(frontend) adapt the left panel with to new responsive
We change the way that the left panel is displayed
in mobile and tablet views. Now, the left panel will
be over the content when mobile, and will be displayed
as a side panel when tablet. We simplify the
overall structure of the left panel, and the way
the responsive behavior is handled.
2026-07-03 17:42:20 +02:00
Anthony LC c82ff199f1 ♻️(frontend) replace header by floating header
We replace the header by a floating header, to have more
space for the content and in fine to have more
harmony between the doc and the doc-grid, in mobile view
or not.
The layout have to be adapted, as well the legacy home
page.
2026-07-03 17:42:19 +02:00
Anthony LC d87615506f ♻️(frontend) make the floating bar more generic and reusable
We want to use the floating bar in multiple places, so
we need to make it more generic and reusable.
This commit refactors the floating bar component
and its related components to achieve this goal.
2026-07-03 17:42:03 +02:00
Manuel RaynaudandGitHub debb253fa5 (backend) add management command to reset a Document
We need a management command to reset a Document to an initial state and
deletes everything related to it. This command can be usefull to reset a
demo for example.
2026-07-03 15:10:04 +00:00
Manuel RaynaudandGitHub 336d530014 🛂(backend) remove unused default authentication backend
The authentication backend
mozilla_django_oidc.contrib.drf.OIDCAuthentication
is present in the default authentication classes for the REST_FRAMEWORK
settings. This backend should not be used by our application and can
lead to the usage of our main api with an access_token instead of the
cookie session.
We need to override the drf SessionAuthentication backend to implement
the authenticate_header method. Without this, a 403 status code is
returned, but it is not valid. It must a be 401
2026-07-03 13:18:51 +00:00
Anthony LC 50b696cba1 (frontend) add a user menu
We are now using the UserMenu component from
the ui-kit. It is a dropdown displaying the user's
name and email, along with a logout button and a
language picker. To fit the design of the user menu,
we adapted the LanguagePicker adn are now using the
ui-kit language picker component.
2026-07-01 17:56:46 +02:00
Manuel RaynaudandGitHub acadbc33e1 🔧(helm) mount custom cacert in yprovider deployment
In the yprovider deployment we now need to mount the cacert containing
the certificates generated by mkcert. Then, we have to declare the
environment variable NODE_EXTRA_CA_CERTS with the path where this cacert
is mounted. With this new config we don't have tls issue anymore.
2026-07-01 17:36:03 +02:00
Dakshesh JainandGitHub 6ec541f5cb 🐛(backend) update restore ability for inherited deletion
Updated the restore ability so that only directly deleted documents can
be restored. This prevents the restore action from being exposed for
child documents whose parent is deleted. This PR addresses #2127.
2026-06-30 10:01:07 +00:00
Amine BOUKERFAandGitHub 36dced1e56 🐛(backend) prevent owner from leaving a soft-deleted document
Owners could leave trashed documents via the leave endpoint, deleting
their `DocumentAccess` and all subtree access. When the last owner
leaves a document it creates an orphan as no owners remains in the doc.

Signed-off-by: BOUKERFA Mohamed El Amine <boukerfa.ma@gmail.com>
2026-06-29 13:04:04 +00:00
Cyril a64b5cb447 ️(frontend) remove redundant aria-label on table of contents links
Removed redundant aria-label to fix double SR announce.
2026-06-29 11:14:28 +02:00
Anthony LC 3fe8bd5cc0 🐛(frontend) fix waffle positioning
The floating waffle menu is positioned only on the bottom
left of the trigger button, so when positioned
on the bottom left, the floating menu is not visible.
This commit fixes the positioning.

We also added a patch to the ui-kit, so when
the patch is released, we can remove this patch
from the codebase.
2026-06-24 16:21:13 +02:00
Anthony LC cb19a6ee71 🚚(frontend) move Waffle to bottom left
We moved the waffle button to the bottom left inside
the left panel.
This change is part of the new header design.
2026-06-24 16:21:13 +02:00
Anthony LC 9605dc7c90 🐛(frontend) fix service worker causing reload on tab focus
During rolling deploys, multiple replicas serve
different builds of service-worker.js
(each build has a random buildId baked in).
This causes a controllerchange loop: the new SW
activates via skipWaiting, the page reloads, then the
next request may hit an older replica,triggering another
update and another reload — surfacing as a reload
every time the tab becomes visible.

We added a sessionStorage guard so a controllerchange
triggers at most one automatic reload per session; subsequent
flaps between versions are silently ignored, while legitimate
updates still cause a single reload automatically.
2026-06-24 15:40:29 +02:00
Anthony LC 4585fd80a1 (frontend) add create sub-documents button
We added a sub button to create sub-documents
from the New button. This sub button is only visible
when the user is in a document, and it allows them to
create a new document that is a child of the current
document.
2026-06-23 14:26:17 +02:00
Anthony LC 25d47966c0 ♻️(frontend) new create button for docs
New create button for docs.
It is now a link button instead of a pure button,
meaning we can navigate to this new created doc
and open it in another tab by doing ctrl + click.
This new button has a dropdown menu that allows
users to import a docx file or a markdown file.
We removed the old import button.
2026-06-23 14:26:16 +02:00
Cyril f6de499ff4 ️(frontend) align search modal field label with placeholder
Remove redundant aria-label on QuickSearch input, align DocSearchModal labels.
2026-06-23 14:02:29 +02:00
Cyril b05d220b7a (frontend) add support with mailto link in help menu
Add configurable support_mailto in theme customization to open
the user's email client from the help menu.
2026-06-23 13:38:28 +02:00
Cyril b9e4df7bd6 🔥(frontend) remove Crisp from the project
Remove Crisp chat SDK, provider, analytics, session management
and all related references across the codebase.
2026-06-23 13:37:50 +02:00
Cyril 31749b3051 ️(frontend) add configurable legal submenu in help menu
Expose legal page URLs in theme customization under help.legal_links.
2026-06-23 13:37:17 +02:00