Commit Graph
2123 Commits
Author SHA1 Message Date
Anthony LC 6361913587 💄(frontend) update icons in left panel header
The icon in the left panel header was updated to
match the new design.
2026-06-01 10:22:29 +02:00
Anthony LC 8104fe0be5 ️(frontend) improve focus behavior of the doc title input
Add wrapper to catch focus.
Benefit:
- The tooltip will show exactly in the middle of
  the title input text
- When the user is click on the right side of the
  doc title, the title get the focus and the cursor,
  which is the expected behavior when editing a title.
2026-06-01 10:22:29 +02:00
Anthony LC ce6dc77222 🚚(frontend) move doc toolbox to Floating Bar
We are modifying the doc header, we are moving elements
to a floating bar. In this case, we are moving the
doc toolbox to the floating bar.
We adapted the toolbox with the updated actions.
We update the doc header to use all empty space.
We moved the emoji part from the toolbox directly
to the header.
2026-06-01 10:22:29 +02:00
Anthony LC 882c2ac979 ♻️(frontend) replace visibility Alert
We remove the AlertPublic component and replace it
with a new visibility status in the DocHeaderInfo
component. This change simplifies the user interface
by providing a more direct indication of the
document's visibility status, whether it's public
or internal, without needing an additional alert
component.
2026-06-01 10:22:00 +02:00
Anthony LC e8cc19b74e 🚚(frontend) move Button Share to Floating Bar
We are modifying the doc header, we are moving elements
to a floating bar. In this case, we are moving the
Button Share to the floating bar.
2026-06-01 10:22:00 +02:00
Anthony LC f7f0c4d3e3 🛂(frontend) add guard before importing a doc
We could still have 400 error when importing
".markdown", because the backend only accepts ".md"
for markdown files. We added another guard on
the extensions to prevent this error and make sure
the user send acceptable formats.
2026-05-29 17:42:46 +02:00
Stephan MeijerandAnthony LC b6ab1f188c ♻️(frontend) centralize allowed conversion formats in ContentTypes
Replace ContentTypes enum with a structured object mapping MIME types
to their file extensions, removing the manual switch-case in useImport

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
2026-05-29 17:42:46 +02:00
Sylvain ZimmerandAnthony LC 5bd2d1b9f1 🐛(y-provider) return empty output when converting empty Yjs document
The convert handler returned 500 "No valid blocks were generated" whenever
the reader produced an empty blocks array, which is the normal state of a
freshly-created Yjs document. Treat empty input as a valid case and return
200 with an empty body for every supported output format.

Signed-off-by: Sylvain Zimmer <sylvain@sylvainzimmer.com>
2026-05-29 17:23:21 +02:00
Manuel Raynaud 4841d9584f 🔧(helm) enable collaboration edition in dev and feature env
We want to enable the collaboration edition check in dev and feature env
2026-05-28 16:04:12 +02:00
Manuel Raynaud 8655750dca 🔧(compose) create y-provider converter service
We wanto to have in the compose stack a dedicated service for the
converter like we did in the helm chart. The change is also made with
the e2e compose file
2026-05-28 09:13:25 +02:00
Manuel Raynaud efd5a3cee3 ️(helm) create a dedicated svc and deployment for yprovider converter
We want to isolate the converter service built in the yprovider server in
order to not mix conversion and collaboration together. We decided to
create a dedicated service and deployment, by default they use the
values defined in yProvider values but all can be overridden in
yProvider.converter.
Also, by default these new service and deployment are not enabled, they
must be explictly enabled and configured. If not it works like now with
only one service and deployment for the yProvider server.
2026-05-28 09:13:25 +02:00
Manuel RaynaudandGitHub a20ba1a78e 🐛(backend) use computed_link_reach in handle_onboarding_document
In the model method User::_handle_onboarding_documents_access we do not
allow using documents with restricted link_reach to be added as
onboarding documents. To check the real link_reach of the document, we
must use instead the computed_link_reach to be sure that a sub document
can also be used and compute its correct link_reach.
2026-05-28 06:50:40 +00:00
Manuel Raynaud fdc99adc78 (backend) add a breadcrumb in the search response
In the search response, we want to display a breadcrumb for every
document returned. For this we added a "parents" property containing a list
documents, all are the parents of the current document (ordered by their
depth). With this we can easily create a breadcrumb.
2026-05-27 17:41:39 +02:00
Manuel Raynaud 31b088c307 ♻️(backend) rename SearchDocumentSerializer in SearchQueryParam
The SearchDocumentSerializer name will be used for a dedicated
serializer for the search endpoint.
2026-05-27 17:41:39 +02:00
Manuel Raynaud d00b3222cf ♻️(backend) allow global search in sub documents
The global search endpoint filtering by title in the database was not
searching for accessible sub documents. We change the how global search
is made: it is now returning accessible sub documents matching the
title query.
2026-05-27 17:41:38 +02:00
Manuel Raynaud b77f7ab6f4 ♻️(backend) rename DocumentViewset::_title_search in _search_title
We rename the private method _title_search in _search_title in the
DocumentViewset for having the search methods prefixed with _search
2026-05-27 17:41:38 +02:00
Anthony LC e85e7d6c65 ️(frontend) fine grained accessibility for right panel
- improve semantics and aria attributes
- gives the focus to the panel when open or switching panels
- gives back the focus to the trigger element when closing the panel
2026-05-27 17:03:28 +02:00
Anthony LC 981aef0f18 📱(frontend) coordinate left/right panel visibility on tablet
On tablet, the place is too tight to have both
panels open at the same time. We have a fine-grained
control of the panel visibility to display panel
depend users interactions and responsive breakpoints.
2026-05-27 17:03:27 +02:00
Anthony LC 43a3620700 📱(frontend) reduce breakpoint mobile view
Most of the application was switching to mobile
view at the medium breakpoint.
Medium breakpoint let enough place to display
most of the application features and it is more
user friendly to switch to mobile view at the
small breakpoint.
We are switching to mobile view at the small breakpoint
to give more place to the application features
and to be more user friendly.
2026-05-27 17:03:27 +02:00
Anthony LC 68b9342401 ♻️(frontend) move table of content to right panel
We move the floating table of content to the
right panel. This allows us to have a more consistent
UI and to make room for the right sidebar.
2026-05-27 17:03:26 +02:00
Anthony LC 2c4317947b (frontend) add comment side panel
Add comment side panel to the right panel.
We will be able to manage the threads of the
document and see the content of the comments in
a side panel.
The advantage of this approach is that we will
be able to:
- see the comments that have been removed because
  of deleted text
- see the resolved comments
- see the unresolved comments
2026-05-27 17:03:26 +02:00
Anthony LC 896444aa13 (frontend) add right panel
Add a right panel, it will in a first time be used
to display the comment side panel, but it will be
used in the future for other features as well.
2026-05-27 16:49:21 +02:00
Cyril 980d57fe60 ️(frontend) add aria-hidden to decorative avatar SVGs in share modal
Hide decorative user avatar SVGs from assistive technologies in share modal.
2026-05-27 09:59:15 +02:00
Anthony LCandManuel Raynaud 7ad9550f54 (backend) add unresolve action to ThreadViewSet
We have now the possibility to unresolve a thread
from the frontend.
We need to add the unresolve action to the
ThreadViewSet.
2026-05-26 12:21:47 +02:00
Anthony LCandManuel Raynaud 7956540b73 👔(backend) add resolved thread to queryset
We need to include resolved threads in the queryset
of the ThreadViewSet, otherwise they won't be
included in the list of threads and we will not be
able to list resolved threads in the side panel.
2026-05-26 10:28:09 +02:00
Amine BOUKERFAandGitHub 3264e29941 🔒(backend) prevent admins from rewriting other users comments
Admins/owners could overwrite another user's comment text and silently
take ownership of it.
Split write permissions: destroy stays broad (author + admin/owner) for
moderation.
    
Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-05-26 10:26:31 +02:00
Amine BOUKERFAandGitHub 8d42f814b7 (backend) validate user-provided document id is a valid UUID
Reject client-supplied IDs that are not valid UUIDs
when creating a document

Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-05-26 07:57:36 +00:00
Manuel RaynaudandGitHub 24d58a1aa5 🔧(backend) allow configuring settings OIDC_OP_USER_ENDPOINT_FORMAT
The djang-lasuite package manages the settings
OIDC_OP_USER_ENDPOINT_FORMAT allowing to enforce the format use by the
user endpoint. By default it is set to `AUTO`.
2026-05-21 14:24:31 +00:00
Manuel RaynaudandGitHub fc68b71656 🐛(compose) set lasuite network as external
The docker network lasuite is created in the makefile using the command
`docker network create lasuite-network`. When a network is created with
this command it can not be used by docker compose if this one is not set
as external. We must use `external: true` in the compose file to fix
this issue.`
2026-05-21 08:38:49 +00:00
Anthony LC 0bfc697476 🐛(frontend) remove comments from print
When we print a document, we want to hide
the comments and selection highlights. This is
done by adding some CSS rules to the print styles.
2026-05-19 22:04:44 +02:00
Anthony LC 48ba77b6d1 🔥(frontend) remove patch following upgrade of Cunningham
A patch about tabindex was added to the codebase
to fix an accessibility issue. However, after
upgrading Cunningham, the issue seems to have been
resolved and the patch is no longer necessary.
Therefore, we are removing the patch to keep
our code clean and maintainable.
2026-05-19 21:36:26 +02:00
Anthony LC 41f76ebde8 ⬆️(dependencies) upgrade Blocknote to 0.51.1
Upgrade Blocknote to 0.51.1 to get the latest
features and bug fixes.
2026-05-19 21:36:26 +02:00
Anthony LC 9cde092250 ⬇️(frontend) downgrade major release @hocuspocus
@hocuspocus made a major release, we need to do
a substantial refactor to be compatible with it.
This PR downgrades to the previous major release,
which is still compatible with our codebase,
until we have time to do the necessary refactor.
2026-05-19 17:01:44 +02:00
renovate[bot]andAnthony LC 18e9c3accb ⬆️(dependencies) update js dependencies 2026-05-19 17:01:44 +02:00
c9cf3b6550 (buildpack) add PaaS deployment support, tested with Scalingo
Replaces #1020

- fixes
https://github.com/suitenumerique/docs/pull/1020#discussion_r2314089799
by creating a `deploy/` directory, making room for a deploy/docker
directory later
- fixes
https://github.com/suitenumerique/docs/pull/1020#issuecomment-3886237213
by adding documentation in docs/installation
- in general, follow the same changes as we did in
https://github.com/suitenumerique/meet/pull/957

Tested successfuly on Scalingo

Co-authored-by: Sylvain Zimmer <sylvain@sylvainzimmer.com>
2026-05-19 10:08:20 +00:00
Maximilian BoschandGitHub 0f14981d5b 🐛(backend) fix inclusion of modules with uv_build
Same fix as https://github.com/suitenumerique/meet/pull/1199 for meet.

Signed-off-by: Maximilian Bosch <maximilian@mbosch.me>
2026-05-18 07:56:58 +00:00
Manuel Raynaud 59499a83f9 🔧(ci) keep node version 22
the node version was updated to version 24, we want to keep version 22.
2026-05-13 08:57:51 +02:00
Manuel Raynaud 5880493f01 🔧(ci) use uv in crowding jobs
We miss to migrate to uv in crowding jobs
2026-05-13 08:57:51 +02:00
renovate[bot]andManuel Raynaud 06eb49dd43 ⬆️(dependencies) Pin dependencies
use commit hash instead of tag.
2026-05-13 08:57:50 +02:00
Manuel Raynaud abd03d1ac0 🐛(docs) run migration 0027 without superuser role
The migration 00227 must be run with a postgres superuser, most af
managed postgresql database can not be run using this kind of user.
Ti fix this, we use postgresql unnacent function instead of accessing C
function.
2026-05-13 08:18:01 +02:00
Manuel Raynaud b3ac8b1e8c 🔧(postgres) create a user without superuser role
In development environment we wanto tu use the application with a
postgres user not having superuser role. The migration 0027 needs
superuser role to be executed, so we want to be able to test migrations
and other scenarios with a normal user. In order to create this user,
the compose service must be deleted first and then recreated with
DB_USER and DB_PASSWORD environment variable values different with
POSTGRES_USER and POSTGRES_PASSWORD
2026-05-13 08:18:00 +02:00
Mohamed El Amine BOUKERFAandManuel Raynaud 562ed0da3e (backend) delete accesses and invitations on move when scope changes
When a document is moved outside its current permission scope (root
document, cross-tree move, or promotion to root), its direct accesses
and pending invitations are now deleted server-side within the same
atomic transaction as the move itself. This ensures consistency: if
the move fails, deletions are rolled back.

Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-05-12 15:56:59 +02:00
Mohamed El Amine BOUKERFAandManuel Raynaud 0a7aa58182 🔥(frontend) remove manual access deletion logic from move doc hook
Access and invitation cleanup on document move is now handled
atomically by the backend. The frontend no longer needs to fetch
and delete accesses/invitations after a successful move.

Signed-off-by: Mohamed El Amine BOUKERFA <boukerfa.ma@gmail.com>
2026-05-12 15:56:58 +02:00
Manuel Raynaud 1a82b379a9 🔧(ci) enable trivy step
We want to enable again the trivy step. This step can be enabled using
an action variable.
2026-05-12 14:48:01 +02:00
Manuel Raynaud c72336a785 ♻️(ci) use arm64 runner to build images for arm64 architecture
We have trouble build docker images for arm64 architecture when we use
QEMU emulation. We want to try building them using an arm64 native
runner.
2026-05-12 14:48:01 +02:00
Manuel RaynaudandGitHub 325284cc78 🔧(ci) ignore uv.lock in spell-mistakes job
In the spell-mistakes job we wanto to ignore the uv.lock file, the
content of this file can't be modified.
2026-05-12 12:47:15 +00:00
Anthony LC c52569448b (e2e) fix some flakiness
Strong flakiness started to appear.
This commit aims to fix some of them by improving
the stability of the tests and removing some
redundant checks.
2026-05-12 10:43:27 +02:00
renovate[bot]andGitHub 0501551abb ⬆️(dependencies) update next to v16.2.6 [SECURITY] 2026-05-11 21:33:48 +00:00
Gustavo TrottandGitHub cd75a17f45 🐛(backend) support creating subdoc from file
The children/ endpoint was missing file upload support that the root
documents endpoint already had. Added file-to-YJS conversion handling to
subdocument creation.
2026-05-11 18:02:03 +02:00
Manuel Raynaud db467407cf 🔖(minor) release 5.1.0
Added

- ️(frontend) add skeleton on content loading #2254
- ️(frontend) close websocket connection when user change tab #2264

Changed

- 🏗️(core) migrate from pip to uv

Fixed

- 🩺(project) reload app if front and back unsync #2276
- 🐛(frontend) fix patch and comments #2273
- 🐛(frontend) interlinking are exported correctly in print mode #2269
- 💬(frontend) add missing link in onboarding description #2233
- 🐛(frontend) sanitize pasted and dropped content in document title #2210
- 🐛(frontend) Emoji menu doesn't display above comment box #2229
- 🐛(frontend) Block menu doesn't stay open on 1st line #2229
- 🐛(frontend) The "+" on the first line of a new doc doesn't work #2229
- 🐛(backend) manage race condition between GET and PATCH content #2271
- 🐛(backend) replace document creation table locks with retry strategy #2274

Security

- 🔒️(frontend) sanitize color during collaboration #2270
v5.1.0
2026-05-11 15:57:02 +02:00