From 0b07e098f9b2de5492595dcde9159a6da9005c79 Mon Sep 17 00:00:00 2001 From: Christian Beeznest Date: Sun, 26 Oct 2025 21:50:24 -0500 Subject: [PATCH] Course: Avoid duplicated items with full restore - refs #6870 --- .../CourseMaintenanceLayout.vue | 13 +++++-- .../views/coursemaintenance/ImportBackup.vue | 21 +++++++++- .../Component/CourseCopy/CourseRestorer.php | 38 ++++++++++++++++++- 3 files changed, 66 insertions(+), 6 deletions(-) diff --git a/assets/vue/components/coursemaintenance/CourseMaintenanceLayout.vue b/assets/vue/components/coursemaintenance/CourseMaintenanceLayout.vue index 7fa095e7f30..d1e71770f09 100644 --- a/assets/vue/components/coursemaintenance/CourseMaintenanceLayout.vue +++ b/assets/vue/components/coursemaintenance/CourseMaintenanceLayout.vue @@ -36,6 +36,7 @@ :to="tabTo('CMImportBackup')" class="cm-tab" active-class="cm-tab--active" + @click="goToTab('CMImportBackup', $event)" > {{ t("Import backup") }} @@ -46,6 +47,7 @@ :to="tabTo('CMCreateBackup')" class="cm-tab" active-class="cm-tab--active" + @click="goToTab('CMCreateBackup', $event)" > {{ t("Create backup") }} @@ -56,6 +58,7 @@ :to="tabTo('CMCopyCourse')" class="cm-tab" active-class="cm-tab--active" + @click="goToTab('CMCopyCourse', $event)" > {{ t("Copy course") }} @@ -66,6 +69,7 @@ :to="tabTo('CMCc13')" class="cm-tab" active-class="cm-tab--active" + @click="goToTab('CMCc13', $event)" > {{ t("IMS CC 1.3") }} @@ -76,7 +80,7 @@ :to="tabTo('CMRecycle')" class="cm-tab" active-class="cm-tab--active" - @click.prevent="refreshRecycleTab" + @click="goToTab('CMRecycle', $event)" > {{ t("Recycle course") }} @@ -87,6 +91,7 @@ :to="tabTo('CMDelete')" class="cm-tab cm-tab--danger" active-class="cm-tab--active" + @click="goToTab('CMDelete', $event)" > {{ t("Delete course") }} @@ -128,9 +133,11 @@ function tabTo(name) { } } -function refreshRecycleTab() { +function goToTab(name, evt) { + if (route.name !== name) return + evt?.preventDefault?.() router.push({ - name: "CMRecycle", + name, params: { node }, query: { ...route.query, _r: Date.now().toString() }, }) diff --git a/assets/vue/views/coursemaintenance/ImportBackup.vue b/assets/vue/views/coursemaintenance/ImportBackup.vue index 2a611245010..1abedd14d66 100644 --- a/assets/vue/views/coursemaintenance/ImportBackup.vue +++ b/assets/vue/views/coursemaintenance/ImportBackup.vue @@ -64,6 +64,12 @@ @change="onLocalFile" class="w-full rounded border border-gray-25 p-2 text-sm" /> +
+ {{ localFile.name }} +