Commit Graph
2228 Commits
Author SHA1 Message Date
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
ydndandAnthony LC c8e44dd359 ✏️(docs) fix typos in contributing guide
Correct minor wording and spelling mistakes in the contribution guidelines.

Signed-off-by: ydnd <1843212188@qq.com>
2026-06-24 10:03:15 +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
Cyril ddb864608a ️(frontend) focus export modal on format select
Focus export modal on format select for ARIA dialog compliance
2026-06-23 13:01:41 +02:00
Anthony LC 3304c12b2c 🔒️(js) fix security warning
Moderate:
- @babel/core
- @opentelemetry/core
- dompurify
- form-data
- js-yaml
- markdown-it
- undici
- ws
2026-06-23 12:17:47 +02:00
Anthony LC b8c2406361 📌(dependencies) pin prosemirror deps
We are pinning the prosemirror dependencies to avoid
conflicts with other versions.
2026-06-23 12:17:47 +02:00
renovate[bot]andAnthony LC e4b6132dfd ⬆️(dependencies) update js dependencies 2026-06-23 12:17:47 +02:00
Cyril 09f95681ef ️(frontend) enable blocknote heading ids for toc anchors
Use setIdAttribute and link TOC entries to native block ids.
2026-06-23 11:46:31 +02:00
Cyril 5843d5ab2f ️(frontend) hide mobile left panel from screen readers when collapsed
Hide closed mobile left panel from screen readers with inert
2026-06-23 10:54:07 +02:00
Bolaji AyodejiandAnthony LC 5cedaa3f05 ✏️(docs) Add DPG badge to README
This PR includes the new DPG badge in the README file
and links to LaSuite Doc's profile page on the DPG Registry.
2026-06-23 10:05:38 +02:00
Sylvain ZimmerandAnthony LC 19b9fb483c 🐛(y-provider) fix interlinking markdown test for blocknote 0.51.4
The 0.51.4 markdown serializer no longer emits the optional link title
attribute, so the exported link is `[text](url)` without ` "title"`. The
title is still present in the HTML export. Update the expectation to match.
2026-06-23 09:43:27 +02:00
Sylvain ZimmerandAnthony LC 635f1cf7a4 (y-provider) preserve commented text on HTML/markdown conversion
The "comment" mark must exist in the conversion editor schema, otherwise
y-prosemirror silently drops every commented run of text when reading the
Yjs document, turning any block holding a comment into an empty block.
Register the CommentsExtension on the conversion editor so commented text
round-trips like the other custom blocks.
2026-06-23 09:43:27 +02:00
Sylvain ZimmerandAnthony LC 46fc08a538 (y-provider) preserve custom blocks on HTML/markdown conversion
Wire the docs BlockNote schema (callout, pdf, uploadLoader, interlinking
link, page break) into the conversion editor so /api/convert no longer
drops or mangles these blocks.
2026-06-23 09:42:43 +02:00
Quentin BEY 3382e67a46 📝(readme) add Snyk badge to header
As part of the Snyk opensource program we proudly add
their badge to show their support.
2026-06-22 21:52:15 +02:00
Anthony LC e844929404 ️(frontend) try to improve performance of tree
The tree rerenders crazily, creating performance
issues, especially on big trees. To fix it properly
we will need a big refacto, on the uikit side.
Before doing that, we try to optimize the current
code by memoizing the tree view, and by using the
selected node from the url instead of the one
from the context.
We improve the treeitem link, we can now easily
opening a new tab by doing CTRL+Click.
2026-06-22 17:09:41 +02:00
Anthony LC a63fa17e20 🐛(frontend) fix removed item in the tree
react-arborist's scrollTo calls react-window's scrollToItem, which mutates
the internal scrollOffset state. When navigating to a deep item in a large
tree, this causes all items above the target to be removed from the DOM
(virtualized away), making the tree appear empty above the selected node.
We no-op it to prevent that — the panel's own overflow-y handles scrolling.
2026-06-22 17:09:41 +02:00
Manuel Raynaud a8d67f34c4 🔖(minor) release 5.3.0
Added

- (backend) add limit on distinct reactions per comment #1978
- (frontend) leave a document #2410
- (frontend) add top parent on sub docs search #1952
- (frontend) unauthenticated users can search #2407
- (backend) specific user delete method to delete its relations #2437

Changed

- 👷(CI) remove test-e2e-other-browser job #2404
- ️(frontend) use heading element for pinned documents section title #2380
- ️(frontend) use anchor links for table of contents entries #2390
- ️(frontend) improve presenter mode screen reader and keyboard support #2383
- ️(frontend) link export modal name to its heading #2422

Fixed

- 🐛(frontend) overlap of block menu dropdown #2406
- ️(backend) fix N+1 queries when serializing thread comments #2415
v5.3.0-preprod v5.3.0
2026-06-19 15:57:23 +02:00
github-actions[bot]andManuel Raynaud 1fa3aaa8ae 🌐(i18n) update translated strings
update translated strings
2026-06-19 15:57:22 +02:00
renovate[bot]andGitHub 87fbcbaceb ⬆️(dependencies) update PyJWT to v2.13.0 [SECURITY] 2026-06-19 12:28:35 +00:00
Manuel Raynaud 82013a84b6 ♻️(backend) change how a user is deleted in the admin
In the admin there were 2 ways to delete a user : by the actions select
box and the button on its change view. Both are leading to a failure. To
fix it, both way are removed and we implemented a custom action calling
the user.delete method with all the specific workflow we implemented.
2026-06-19 11:53:32 +02:00
Manuel Raynaud ed0dce66c5 (backend) specific user delete method to delete its relations
Deleting a user is not possible when it has created docs because the
on_delete on the Document class id RESTRICT and we don't want to change
it. We decided to have a specific workflow for correctly delete a user.
The document where the user is the sole owner must be deleted, the other
only the owner access must be deleted. For the remaining Documents where
the user is the creator, we set it to `null`, then the user can be
delete, remaining relations are deleted in cascade.
2026-06-19 11:53:32 +02:00
Manuel Raynaud b417a57418 ♻️(backend) use user_id instead of user relation in sharing module
In the sharing module, the user model was used instead of working with
the user id. Only the user id is used in this module, forcing in the
module calling this functions to load the user model for nothing and
doing a N+1 query.
2026-06-19 11:53:30 +02:00
Mohamed El Amine BOUKERFAandManuel Raynaud 51364e3d3c (frontend) add UI support for reaction limit on comments
Prevent users from adding more reactions once the per-message
limit has been exceeded. It Disables reaction buttons
when limit is reached

Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-06-15 08:56:45 +02:00
Mohamed El Amine BOUKERFAandManuel Raynaud 867583a52a (backend) add limit on distinct reactions per comment
Implement a configurable limit (default: 15) on the number of distinct
emoji reactions per comment.

  - Backend validation ensures the limit cannot be exceeded via API

Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-06-15 08:56:45 +02:00
Cyril 0f984d6832 ️(frontend) link export modal name to its heading
Link aria-describedby to modal description, not title
2026-06-12 11:03:00 +02:00
Anthony LC 4c3b17a541 (frontend) leave a document feature
When we were visiting a public document, it was part of
our list of documents, and we couldn't leave it.
Now, we can leave a public document, and it will
be removed from our list of documents.
We coupled it with remove access to a document if
you had access to it, and you can also leave a
document without having to pass through the share
modal, which is a better user experience.
2026-06-11 16:49:09 +02:00
Amine BOUKERFAandGitHub 5aa1402aa3 ️(backend) prefetch thread comments tree to fix N+1 queries
Retrieving a thread serialized its nested comments, reactions and
reaction users without prefetching, issuing one query per comment for
its author and reactions and one query per reaction for its users.
    
Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-06-11 13:25:12 +00:00
Anthony LC 6ce853312f ️(frontend) accessibility improvements on search components
Improve accessibility of search components by adding
appropriate ARIA attributes and enhancing screen reader
compatibility.
2026-06-10 16:51:02 +02:00
Anthony LC 7edbd4efcb 💄(frontend) update search ui to fit the design mockup
The search ui has been updated to fit
the design mockup.
It includes:
- the search feature
- the move doc modal
- the interlinking search part
2026-06-10 16:44:49 +02:00
Anthony LC 359fb42605 (frontend) add top parent on sub docs search
In the search modal, under the sub docs,
we now display the top parent of the doc, to give
more context to the user about the doc they are
looking for.
We refactorize the filters to get more flexibility
and avoid too much props drilling.
2026-06-10 16:44:49 +02:00
Manuel RaynaudandAnthony LC da6e65b204 ♻️(backend) return only the top parent in the search endpoint
In the search endpoint, we were returning all the parents for a document
mathing the search. We want instead to return only the top parent the
user has access to.
2026-06-10 16:44:48 +02:00