feat: #INTEG-1924 Intégration de Nextcloud dans la bibliothèque multimédia - #577
Open
theovgl wants to merge 13 commits into
Open
feat: #INTEG-1924 Intégration de Nextcloud dans la bibliothèque multimédia#577theovgl wants to merge 13 commits into
theovgl wants to merge 13 commits into
Conversation
Axios serializes the paths array as repeated `path[]=` query keys, but
the nextcloud backend only reads bare `path=` keys via
request.params().getAll("path"), so it rejected every call with a 400.
Build the query string manually instead.
…iles The nextcloud backend has no dedicated thumbnail/preview endpoint, only a generic file download route. Reuse the existing useThumbnail hook (same pattern as the workspace FileCard) with that download URL as the image source, for image files only, mirroring the legacy behaviour.
…onent by Tree component
…service config and workflow right
…a type Nextcloud tab ignored the MediaLibrary type (image/video/audio), always listing every file. Mirror the same role-based filtering already used by the workspace tab.
theovgl
force-pushed
the
feat-INTEG-1924-port-react-nextcloud-filetree
branch
from
August 26, 2026 14:55
74a361b to
8aeccbf
Compare
theovgl
force-pushed
the
feat-INTEG-1924-port-react-nextcloud-filetree
branch
from
August 26, 2026 15:44
8aeccbf to
dd4db65
Compare
theovgl
marked this pull request as ready for review
August 27, 2026 12:48
| if (!a) return -1; | ||
| if (!b) return 1; | ||
| return a.localeCompare(b); | ||
| } |
Collaborator
There was a problem hiding this comment.
Si c'est une proxy de comparaison pour gérer les undefined, il manque un cas :
function compare(a?: string, b?: string) {
if (a === b) return 0;
if (a === undefined) return -1;
if (b === undefined) return 1;
return a.localeCompare(b);
}Y'a des triples égalités sur undefined, sinon tu matche aussi les "" et ''. Si c'est voulu tu peux remettre.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Ajoute un onglet Nextcloud à la Media Library : arborescence de dossiers, recherche, tri, sélection multiple, aperçus/miniatures et copie vers le workspace, via une connexion OAuth2 par utilisateur.
INTEG-1924 - Nextcloud - Intégration - Bibliothèque Multimédia Édifce
Contexte
Dans le cadre de certains projets, les utilisateurs peuvent avoir des fichiers stockés sur un Nextcloud externe. Ces changements garantissent une intégration complète avec l'ENT en permettant aux utilisateurs de réutiliser leurs documents dans les modules react (éditeur, blog, etc.) sans passer par un import manuel.
Changements
@edifice.io/client: nouveauNextcloudService(list, copy vers workspace, statut OAuth2, URL de fichier/miniature) + interfacesNextcloudDocument/NextcloudDocumentResponse.@edifice.io/react: hookuseNextcloudSearchpour charger et mettre en cache l'arborescence Nextcloud par dossier.Nextcloud(arborescence viaTree, recherche, tri nom/date, sélection multiple, filtrage par rôle) etNextcloudFileCard(miniatures images).MediaLibrarycomme nouvel onglet interne (innertabs/Nextcloud.tsx), activé selon la config folder-service et le droit de workflow.Comment tester
pnpm --filter @edifice.io/react testetpnpm --filter @edifice.io/client testpnpm docspuis ouvrir la storyNextcloud/MediaLibrarydans Storybook (appels Nextcloud mockés).Which Package changed?
Please check the name of the package you changed
Has the documentation changed?
Type of change
Please check options that are relevant.
Checklist: