From e556badbda694bf4854572676485356fd741939f Mon Sep 17 00:00:00 2001 From: Wqrld Date: Sat, 30 May 2026 14:02:34 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(frontend)=20open=20WOPI=20editor=20af?= =?UTF-8?q?ter=20file=20creation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves https://github.com/suitenumerique/drive/issues/717 When a file is created using the creation menu and WOPI is enabled, automatically open it in a new tab. Also select the file in the listing independent of WOPI being enabled or not. Preserves the existing redirect behavior for changes in the shared/stars folders. Signed-off-by: Wqrld --- CHANGELOG.md | 1 + src/backend/core/api/serializers.py | 2 ++ .../components/modals/ExplorerCreateFileModal.tsx | 9 +++++++-- .../components/modals/ExplorerCreateFolderModal.tsx | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a09ccb22..74635586c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to - ✨(backend) manage reconciliation requests for user accounts - ✨(backend) add recursive folder export as ZIP archive - ✨(frontend) add folder export action +- ✨(frontend) open WOPI editor after file creation ### Changed diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index dcd52e597..9aafe6f2b 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -601,6 +601,7 @@ class Meta: "description", "hard_delete_at", "extension", + "is_wopi_supported", ] read_only_fields = [ "abilities", @@ -625,6 +626,7 @@ class Meta: "main_workspace", "size", "hard_delete_at", + "is_wopi_supported", ] def get_fields(self): diff --git a/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFileModal.tsx b/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFileModal.tsx index 503d61b41..bad24c07d 100644 --- a/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFileModal.tsx +++ b/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFileModal.tsx @@ -8,6 +8,8 @@ import { useTranslation } from "react-i18next"; import { FormProvider, SubmitHandler, useForm } from "react-hook-form"; import { RhfInput } from "@/features/forms/components/RhfInput"; import { useMutationCreateFileFromTemplate } from "../../hooks/useMutations"; +import { openWopiInNewTab } from "@/features/wopi/openWopi"; +import { itemToPreviewFile } from "../../utils/utils"; import { useRouter } from "next/router"; import { useSetSelectedItems } from "../../stores/selectionStore"; @@ -58,9 +60,12 @@ export const ExplorerCreateFileModal = ( onSuccess: (createdItem) => { form.reset(); props.onClose(); - if (props.redirectAfterCreate && createdItem?.id) { + if (props.redirectAfterCreate) { router.push(`/explorer/items/my-files`); - setSelectedItems([createdItem]); + } + setSelectedItems([createdItem]); + if (createdItem.is_wopi_supported) { + openWopiInNewTab(itemToPreviewFile(createdItem)); } }, } diff --git a/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFolderModal.tsx b/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFolderModal.tsx index 549b05ff7..403473047 100644 --- a/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFolderModal.tsx +++ b/src/frontend/apps/drive/src/features/explorer/components/modals/ExplorerCreateFolderModal.tsx @@ -40,10 +40,10 @@ export const ExplorerCreateFolderModal = ({ onSuccess: (createdItem) => { form.reset(); props.onClose(); - if (props.redirectAfterCreate && createdItem?.id) { + if (props.redirectAfterCreate) { router.push(`/explorer/items/${createdItem.id}`); - setSelectedItems([createdItem]); } + setSelectedItems([createdItem]); }, }, );