From 7e64ea4e5fb2c2a95ae56c7f508bdb9545d4a4e0 Mon Sep 17 00:00:00 2001 From: Christian Beeznest Date: Fri, 5 Dec 2025 13:39:40 -0500 Subject: [PATCH] Documents: Safely attach shared files to multiple courses - refs #6372 --- .../components/documents/ResourceFileLink.vue | 8 +- .../vue/components/documents/ResourceIcon.vue | 30 ++- assets/vue/views/documents/DocumentsList.vue | 11 +- public/main/inc/lib/document.lib.php | 191 +++----------- .../Controller/Admin/AdminController.php | 174 ++++++++----- .../Controller/Api/BaseResourceFileAction.php | 169 ++++++++++--- src/CoreBundle/Entity/ResourceLink.php | 121 ++++++--- .../Schema/V200/Version20251201164100.php | 43 ++++ .../Schema/V200/Version20251201173000.php | 78 ++++++ .../Repository/ResourceLinkRepository.php | 140 +++++++++++ .../views/Admin/files_info.html.twig | 61 ++++- .../State/DocumentCollectionStateProvider.php | 191 ++++++++++++++ src/CourseBundle/Entity/CDocument.php | 42 +--- .../Repository/CDocumentRepository.php | 235 ++++++++++++++++++ 14 files changed, 1143 insertions(+), 351 deletions(-) create mode 100644 src/CoreBundle/Migrations/Schema/V200/Version20251201164100.php create mode 100644 src/CoreBundle/Migrations/Schema/V200/Version20251201173000.php create mode 100644 src/CoreBundle/State/DocumentCollectionStateProvider.php diff --git a/assets/vue/components/documents/ResourceFileLink.vue b/assets/vue/components/documents/ResourceFileLink.vue index 92daf922162..8ec68f7167d 100644 --- a/assets/vue/components/documents/ResourceFileLink.vue +++ b/assets/vue/components/documents/ResourceFileLink.vue @@ -25,10 +25,14 @@ export default { }, computed: { getDataType() { - if (this.resource.resourceNode.firstResourceFile.image) { + const node = this.resource && this.resource.resourceNode + const file = node && node.firstResourceFile + + if (file && file.image) { return "image" } - if (this.resource.resourceNode.firstResourceFile.video) { + + if (file && file.video) { return "video" } diff --git a/assets/vue/components/documents/ResourceIcon.vue b/assets/vue/components/documents/ResourceIcon.vue index 853db722bee..2b417f980fe 100644 --- a/assets/vue/components/documents/ResourceIcon.vue +++ b/assets/vue/components/documents/ResourceIcon.vue @@ -4,19 +4,19 @@ icon="folder-generic" /> diff --git a/assets/vue/views/documents/DocumentsList.vue b/assets/vue/views/documents/DocumentsList.vue index 7e8dc73eee2..db168640c02 100644 --- a/assets/vue/views/documents/DocumentsList.vue +++ b/assets/vue/views/documents/DocumentsList.vue @@ -146,7 +146,7 @@ >