From 8ecde5c698e5d3b47b17672ba2c392bb0eae9fac Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Wed, 19 Nov 2025 10:46:58 +0100 Subject: [PATCH 001/100] Add too large chip --- src/locales/de.ts | 1 + src/locales/en.ts | 1 + src/locales/es.ts | 1 + src/locales/uk.ts | 1 + src/modules/feature/folder/file-table/FileStatus.vue | 12 +++++++++++- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/locales/de.ts b/src/locales/de.ts index ad128d1f45..99a0d67c6a 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -45,6 +45,7 @@ export default { "common.file": "Datei", "common.file.exceedsCollaboraEditableFileSize": "Dokumente größer als {sizeInMb} können online nicht bearbeitet werden.", + "common.file.exceedsCollaboraEditableFileSize.short": "Online Bearbeitung nicht möglich", "common.files": "Dateien", "common.instructions.orderBy.arrowKeys": "Die Elemente dieser Liste können per Pfeiltaste verschoben werden.", "common.labels.admin": "Admin(s)", diff --git a/src/locales/en.ts b/src/locales/en.ts index b9e6d8209c..b05e1b9d4a 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -43,6 +43,7 @@ export default { "common.file.virusDetected.short": "Virus suspected", "common.file": "file", "common.file.exceedsCollaboraEditableFileSize": "Documents larger than {sizeInMb} cannot be edited online.", + "common.file.exceedsCollaboraEditableFileSize.short": "Online editing not possible", "common.files": "files", "common.instructions.orderBy.arrowKeys": "The items in this list can be moved using the arrow keys.", "common.labels.admin": "", diff --git a/src/locales/es.ts b/src/locales/es.ts index 5146a88b1b..bfda36e03d 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -45,6 +45,7 @@ export default { "common.file": "Archivo", "common.file.exceedsCollaboraEditableFileSize": "Los documentos que superen los {sizeInMb} no se pueden editar en línea.", + "common.file.exceedsCollaboraEditableFileSize.short": "Edición en línea no posible", "common.files": "Archivos", "common.instructions.orderBy.arrowKeys": "Los elementos de esta lista se pueden mover con las teclas de flecha.", "common.labels.admin": "Admin(s)", diff --git a/src/locales/uk.ts b/src/locales/uk.ts index 6827467be5..78841213f7 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -45,6 +45,7 @@ export default { "common.file": "Файл", "common.file.exceedsCollaboraEditableFileSize": "Документи розміром більше {sizeInMb} не можуть бути оброблені онлайн.", + "common.file.exceedsCollaboraEditableFileSize.short": "Онлайн редагування неможливе", "common.instructions.orderBy.arrowKeys": "Елементи цього списку можна переміщати за допомогою клавіш зі стрілками.", "common.files": "Файли", "common.labels.admin": "адміністратор(и)", diff --git a/src/modules/feature/folder/file-table/FileStatus.vue b/src/modules/feature/folder/file-table/FileStatus.vue index 598ba9b981..2d750da701 100644 --- a/src/modules/feature/folder/file-table/FileStatus.vue +++ b/src/modules/feature/folder/file-table/FileStatus.vue @@ -3,6 +3,15 @@ {{ t("common.labels.status") }} {{ t("common.file.awaitingScan.short") }} + + {{ t("common.labels.status") }} + {{ t("common.file.exceedsCollaboraEditableFileSize.short") }} + isScanStatusPendingFn(props.fileRecor const isScanStatusWontCheck = computed(() => isScanStatusWontCheckFn(props.fileRecord.previewStatus)); const isScanStatusError = computed(() => isScanStatusErrorFn(props.fileRecord.previewStatus)); const isScanStatusBlocked = computed(() => isScanStatusBlockedFn(props.fileRecord.securityCheckStatus)); +const exceedsCollaboraEditableFileSize = computed(() => props.fileRecord.exceedsCollaboraEditableFileSize); From fbec8646260d0ccccd7a152a8099b4ada22bbf00 Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Wed, 19 Nov 2025 10:47:16 +0100 Subject: [PATCH 002/100] Add crossed pencil icon --- src/components/icons/material/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/icons/material/index.ts b/src/components/icons/material/index.ts index 6cff6d3128..2bd173f0f5 100644 --- a/src/components/icons/material/index.ts +++ b/src/components/icons/material/index.ts @@ -118,6 +118,7 @@ import { mdiOpenInNew, mdiPalette, mdiPause, + mdiPencilOffOutline, mdiPencilOutline, mdiPencilPlusOutline, mdiPhone, @@ -279,6 +280,7 @@ export { mdiOpenInNew, mdiPalette, mdiPause, + mdiPencilOffOutline, mdiPencilOutline, mdiPencilPlusOutline, mdiPhone, From 16db24f58ee8dd8de9a256c3d95fd849b19696e8 Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Wed, 19 Nov 2025 10:48:29 +0100 Subject: [PATCH 003/100] Add initial interaction handler --- .../folder/file-table/FileInteractionHandler.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/feature/folder/file-table/FileInteractionHandler.vue b/src/modules/feature/folder/file-table/FileInteractionHandler.vue index ec969925ff..e65b994995 100644 --- a/src/modules/feature/folder/file-table/FileInteractionHandler.vue +++ b/src/modules/feature/folder/file-table/FileInteractionHandler.vue @@ -21,6 +21,7 @@ import { isPreviewPossible, isVideoMimeType, } from "@/utils/fileHelper"; +import { useEnvConfig } from "@data-env"; import { LightBoxContentType, useLightBox } from "@ui-light-box"; import { computed, PropType } from "vue"; import { useI18n } from "vue-i18n"; @@ -40,7 +41,8 @@ const isInteractive = computed( (isPreviewPossible(fileRecordItem.previewStatus) || isAudioMimeType(fileRecordItem.mimeType) || isVideoMimeType(fileRecordItem.mimeType) || - isPdfMimeType(fileRecordItem.mimeType)) + isPdfMimeType(fileRecordItem.mimeType) || + (isCollaboraEnabled.value && fileRecordItem.isCollaboraEditable)) ); const handleClick = () => { @@ -48,6 +50,7 @@ const handleClick = () => { const isAudio = isAudioMimeType(fileRecordItem.mimeType); const isVideo = isVideoMimeType(fileRecordItem.mimeType); const isPdf = isPdfMimeType(fileRecordItem.mimeType); + const isCollabora = fileRecordItem.isCollaboraEditable; if (isPdf) { window.open(fileRecordItem.url, "_blank"); @@ -57,9 +60,14 @@ const handleClick = () => { openAudioPlayerInLightbox(); } else if (isVideo) { openVideoInLightbox(); + } else if (isCollabora) { + // eslint-disable-next-line no-console + console.log("Open in Collabora"); } }; +const isCollaboraEnabled = computed(() => useEnvConfig().value.FEATURE_COLUMN_BOARD_COLLABORA_ENABLED); + const openImageInLightbox = () => { const previewUrl = convertDownloadToPreviewUrl(fileRecordItem.url); From e18fc87e013f14b2265ce340bdcb193e33fd60d2 Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Wed, 19 Nov 2025 12:16:12 +0100 Subject: [PATCH 004/100] Move edit mode mapper --- .../mapper => util/board}/collabora-editor-mode.mapper.ts | 0 .../mapper => util/board}/collabora-editor-mode.mapper.unit.ts | 0 src/modules/util/board/index.ts | 2 ++ 3 files changed, 2 insertions(+) rename src/modules/{feature/board-file-element/mapper => util/board}/collabora-editor-mode.mapper.ts (100%) rename src/modules/{feature/board-file-element/mapper => util/board}/collabora-editor-mode.mapper.unit.ts (100%) diff --git a/src/modules/feature/board-file-element/mapper/collabora-editor-mode.mapper.ts b/src/modules/util/board/collabora-editor-mode.mapper.ts similarity index 100% rename from src/modules/feature/board-file-element/mapper/collabora-editor-mode.mapper.ts rename to src/modules/util/board/collabora-editor-mode.mapper.ts diff --git a/src/modules/feature/board-file-element/mapper/collabora-editor-mode.mapper.unit.ts b/src/modules/util/board/collabora-editor-mode.mapper.unit.ts similarity index 100% rename from src/modules/feature/board-file-element/mapper/collabora-editor-mode.mapper.unit.ts rename to src/modules/util/board/collabora-editor-mode.mapper.unit.ts diff --git a/src/modules/util/board/index.ts b/src/modules/util/board/index.ts index 80486b8159..378c792853 100644 --- a/src/modules/util/board/index.ts +++ b/src/modules/util/board/index.ts @@ -1,4 +1,5 @@ import { BOARD_IS_LIST_LAYOUT } from "./board-injection-tokens"; +import { mapEditBoardPermissionToEditorMode } from "./collabora-editor-mode.mapper"; import { useDragAndDrop } from "./dragAndDrop.composable"; import { type EditModePermissions, @@ -17,6 +18,7 @@ export { BOARD_IS_LIST_LAYOUT, EditModePermissions, extractDataAttribute, + mapEditBoardPermissionToEditorMode, useCourseBoardEditMode, useDragAndDrop, useElementFocus, From 82f6282596a78e9503ca3f6b016b7ba8f68ffd90 Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Wed, 19 Nov 2025 12:16:23 +0100 Subject: [PATCH 005/100] Cleanup --- src/modules/feature/board-file-element/mapper/index.ts | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/modules/feature/board-file-element/mapper/index.ts diff --git a/src/modules/feature/board-file-element/mapper/index.ts b/src/modules/feature/board-file-element/mapper/index.ts deleted file mode 100644 index d6cfa88701..0000000000 --- a/src/modules/feature/board-file-element/mapper/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./collabora-editor-mode.mapper"; From f736868b9d3296efead88a02f171ebf396477333 Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Wed, 19 Nov 2025 12:16:43 +0100 Subject: [PATCH 006/100] Adjust import --- src/modules/feature/board-file-element/FileContentElement.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/feature/board-file-element/FileContentElement.vue b/src/modules/feature/board-file-element/FileContentElement.vue index d6ef207ad7..e897dd83fa 100644 --- a/src/modules/feature/board-file-element/FileContentElement.vue +++ b/src/modules/feature/board-file-element/FileContentElement.vue @@ -57,7 +57,6 @@ diff --git a/src/modules/ui/chip/ErrorChip.vue b/src/modules/ui/chip/ErrorChip.vue index 936ecdddaf..18ccaa4118 100644 --- a/src/modules/ui/chip/ErrorChip.vue +++ b/src/modules/ui/chip/ErrorChip.vue @@ -4,7 +4,7 @@ diff --git a/src/modules/ui/chip/InfoChip.vue b/src/modules/ui/chip/InfoChip.vue index 4354ed5f95..3cdd46e28f 100644 --- a/src/modules/ui/chip/InfoChip.vue +++ b/src/modules/ui/chip/InfoChip.vue @@ -4,7 +4,7 @@ diff --git a/src/modules/ui/chip/WarningChip.vue b/src/modules/ui/chip/WarningChip.vue index 5c8e3787a2..b1a29b634b 100644 --- a/src/modules/ui/chip/WarningChip.vue +++ b/src/modules/ui/chip/WarningChip.vue @@ -4,7 +4,7 @@ From dcbdb2cdc9154388cc3f1d750b59af5f603c7595 Mon Sep 17 00:00:00 2001 From: Christian Darsow Date: Thu, 20 Nov 2025 12:13:22 +0100 Subject: [PATCH 013/100] Adjust language key --- src/locales/de.ts | 2 +- src/locales/en.ts | 2 +- src/locales/es.ts | 2 +- src/locales/uk.ts | 2 +- src/modules/feature/folder/file-table/FileTable.vue | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/de.ts b/src/locales/de.ts index dd2c3dcfaf..c837089ee8 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -1988,7 +1988,7 @@ export default { "pages.folder.title": "Ordner", "pages.folder.columns.name": "Name", "pages.folder.columns.createdat": "Erstellt am", - "pages.folder.columns.updatedat": "Zuletzt geändert", + "pages.folder.columns.lastModifiedAt": "Zuletzt geändert", "pages.folder.columns.size": "Größe", "pages.folder.ariaLabels.menu": "Ordner Menü", "pages.folder.ariaLabels.menu.action.edit": "Ordner umbenennen", diff --git a/src/locales/en.ts b/src/locales/en.ts index b3b00d0a78..94f81be1d1 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -1954,7 +1954,7 @@ export default { "pages.folder.title": "Folder", "pages.folder.columns.name": "Name", "pages.folder.columns.createdat": "Created on", - "pages.folder.columns.updatedat": "Last updated", + "pages.folder.columns.lastModifiedAt": "Last updated", "pages.folder.columns.size": "Size", "pages.folder.ariaLabels.menu": "Folder menu", "pages.folder.ariaLabels.menu.action.edit": "Rename folder", diff --git a/src/locales/es.ts b/src/locales/es.ts index c83a737f44..1b828f189c 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -2005,7 +2005,7 @@ export default { "pages.folder.title": "Carpeta", "pages.folder.columns.name": "Nombre", "pages.folder.columns.createdat": "Creado el", - "pages.folder.columns.updatedat": "Última actualización", + "pages.folder.columns.lastModifiedAt": "Última actualización", "pages.folder.columns.size": "Talla", "pages.folder.ariaLabels.menu": "Menú carpeta", "pages.folder.ariaLabels.menu.action.edit": "Renombrar carpeta", diff --git a/src/locales/uk.ts b/src/locales/uk.ts index c42f36f052..ca093ac2ef 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -1975,7 +1975,7 @@ export default { "pages.folder.title": "Папка", "pages.folder.columns.name": "Ім'я", "pages.folder.columns.createdat": "Створено на", - "pages.folder.columns.updatedat": "Останнє оновлення", + "pages.folder.columns.lastModifiedAt": "Останнє оновлення", "pages.folder.columns.size": "Розмір", "pages.folder.ariaLabels.menu": "Меню Папки", "pages.folder.ariaLabels.menu.action.edit": "Перейменувати папку", diff --git a/src/modules/feature/folder/file-table/FileTable.vue b/src/modules/feature/folder/file-table/FileTable.vue index 1469115a6f..de93a884b6 100644 --- a/src/modules/feature/folder/file-table/FileTable.vue +++ b/src/modules/feature/folder/file-table/FileTable.vue @@ -31,8 +31,8 @@ -