From 06356a805b3d837d1db338e989ee9483ba862358 Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Mon, 25 Nov 2024 12:02:19 +0100 Subject: [PATCH 01/20] share options modal, test and locales --- package.json | 2 +- src/components/share/ShareModal.unit.ts | 21 ++++----- src/components/share/ShareModal.vue | 59 ++++++++++++++++++++----- src/locales/de.ts | 18 +++++--- src/locales/en.ts | 13 ++++-- src/locales/es.ts | 12 +++-- src/locales/uk.ts | 12 +++-- 7 files changed, 99 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index ed84f3b7dd..6d15e28f85 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ } }, "engines": { - "node": "22", + "node": "20", "npm": ">=9" } } diff --git a/src/components/share/ShareModal.unit.ts b/src/components/share/ShareModal.unit.ts index 4af690eddd..e46631c787 100644 --- a/src/components/share/ShareModal.unit.ts +++ b/src/components/share/ShareModal.unit.ts @@ -1,22 +1,22 @@ -import ShareModule from "@/store/share"; -import { createModuleMocks } from "@@/tests/test-utils/mock-store-module"; -import { mount } from "@vue/test-utils"; -import ShareModal from "./ShareModal.vue"; import vCustomDialog from "@/components/organisms/vCustomDialog.vue"; import ShareModalOptionsForm from "@/components/share/ShareModalOptionsForm.vue"; import ShareModalResult from "@/components/share/ShareModalResult.vue"; import { ShareTokenBodyParamsParentTypeEnum } from "@/serverApi/v3"; +import EnvConfigModule from "@/store/env-config"; +import NotifierModule from "@/store/notifier"; +import ShareModule from "@/store/share"; import { ENV_CONFIG_MODULE_KEY, NOTIFIER_MODULE_KEY, SHARE_MODULE_KEY, } from "@/utils/inject"; -import NotifierModule from "@/store/notifier"; -import EnvConfigModule from "@/store/env-config"; +import { createModuleMocks } from "@@/tests/test-utils/mock-store-module"; import { createTestingI18n, createTestingVuetify, } from "@@/tests/test-utils/setup"; +import { mount } from "@vue/test-utils"; +import ShareModal from "./ShareModal.vue"; describe("@/components/share/ShareModal", () => { let shareModuleMock: ShareModule; @@ -137,11 +137,12 @@ describe("@/components/share/ShareModal", () => { `[data-testid="share-modal-external-tools-info"]` ); - expect(infotext.text()).toEqual( - "components.molecules.share.courses.options.ctlTools.infotext" - ); + const renderHtmls = wrapper.findAllComponents({ name: "RenderHTML" }); - expect(infotext.isVisible()).toBe(true); + expect(renderHtmls[0].isVisible()).toBe(true); + expect(renderHtmls[0].props("html")).toEqual( + "components.molecules.share.courses.options.ctlTools.infoText" + ); }); }); diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index 06b3ef7a77..3a3d0340de 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -18,23 +18,54 @@
+
+ {{ t(`components.molecules.share.${type}.options.infoText`) }} +

+

- {{ t(`components.molecules.share.${type}.options.infoText`) }} -
- {{ t("components.molecules.copyResult.courseFiles.info") }} -
+
{{ t( - `components.molecules.share.courses.options.ctlTools.infotext` + "components.molecules.share.courses.options.tableHeader.InfoText" ) }} +
    +
  • + {{ + t( + "components.molecules.share.options.personalData.infoText" + ) + }} +
  • + + +
@@ -58,9 +89,10 @@ diff --git a/src/locales/de.ts b/src/locales/de.ts index b56efd9e2d..96da1fd5e0 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -651,20 +651,26 @@ export default { "Organisationsleitung", "components.molecules.MintEcFooter.chapters": "Kapitelübersicht", "components.molecules.share.columnBoard.options.infoText": - "Mit dem folgenden Link kann der Bereich als Kopie von anderen Lehrkräften importiert werden. Personenbezogene Daten werden dabei nicht importiert.", + "Mit dem folgenden Link kann der Bereich als Kopie von anderen Lehrkräften importiert werden.", "components.molecules.share.columnBoard.result.linkLabel": "Link Bereich-Kopie", "components.molecules.share.courses.mail.body": "Link zum Kurs:", "components.molecules.share.courses.mail.subject": "Kurs zum Importieren", - "components.molecules.share.courses.options.ctlTools.infotext": - "Externe Tools, die dem Kurs oder Karten im Bereich zugeordnet sind, werden nicht kopiert.", + "components.molecules.share.courses.options.ctlTools.infoText": + "
  • In Zielschule nicht verfügbare, externe Tools
  • Geschützte Einstellungen externer Tools
  • ", "components.molecules.share.courses.options.infoText": - "Mit dem folgenden Link kann der Kurs als Kopie von anderen Lehrkräften importiert werden. Personenbezogene Daten werden dabei nicht importiert.", + "Mit dem folgenden Link kann der Kurs als Kopie von anderen Lehrkräften importiert werden.", + "components.molecules.share.options.personalData.infoText": + "Personenbezogene Daten", + "components.molecules.share.courses.options.restrictions.infoText": + "
  • Dateien unter Kurs-Dateien
  • Inhalte aus Etherpads
  • Geogebra IDs und
  • Kursgruppen
  • ", + "components.molecules.share.courses.options.tableHeader.InfoText": + "Folgende Inhalte werden nicht kopiert:", "components.molecules.share.courses.result.linkLabel": "Link Kurskopie", "components.molecules.share.lessons.mail.body": "Link zum Thema:", "components.molecules.share.lessons.mail.subject": "Thema zum Importieren", "components.molecules.share.lessons.options.infoText": - "Mit dem folgenden Link kann das Thema als Kopie von anderen Lehrkräften importiert werden. Personenbezogene Daten werden dabei nicht importiert.", + "Mit dem folgenden Link kann das Thema als Kopie von anderen Lehrkräften importiert werden.", "components.molecules.share.lessons.result.linkLabel": "Link Themakopie", "components.molecules.share.options.expiresInDays": "Link läuft nach 21 Tagen ab", @@ -678,7 +684,7 @@ export default { "components.molecules.share.tasks.mail.body": "Link zur Aufgabe:", "components.molecules.share.tasks.mail.subject": "Aufgabe zum Importieren", "components.molecules.share.tasks.options.infoText": - "Mit dem folgenden Link kann die Aufgabe als Kopie von anderen Lehrkräften importiert werden. Personenbezogene Daten werden dabei nicht importiert.", + "Mit dem folgenden Link kann die Aufgabe als Kopie von anderen Lehrkräften importiert werden.", "components.molecules.share.tasks.result.linkLabel": "Link Aufgabekopie", "components.molecules.TaskItemMenu.confirmDelete.text": 'Bist du dir sicher, dass du die Aufgabe "{taskTitle}" löschen möchtest?', diff --git a/src/locales/en.ts b/src/locales/en.ts index c9ff9c665d..d6a631dc99 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -640,17 +640,22 @@ export default { "components.molecules.share.courses.mail.body": "Link to the course:", "components.molecules.share.courses.mail.subject": "Course you can import", "components.molecules.share.courses.options.ctlTools.infotext": - "External tools associated with the course or boarding cards will not be copied.", + "
  • External tools not available in the target school
  • Protected settings of external tools
  • ", "components.molecules.share.courses.options.infoText": - "With the following link, the course can be imported as a copy by other teachers. Personal data will not be imported.", + "With the following link, the course can be imported as a copy by other teachers.", + "components.molecules.share.options.personalData.infoText": "Personal data", + "components.molecules.share.courses.options.restrictions.infoText": + "
  • Files under Course Files
  • Content from Etherpads
  • Geogebra IDs and
  • Course groups
  • ", + "components.molecules.share.courses.options.tableHeader.InfoText": + "The following content will not be copied:", "components.molecules.share.courses.result.linkLabel": "Link course copy", "components.molecules.share.lessons.mail.body": "Link to the topic:", "components.molecules.share.lessons.mail.subject": "Topic you can import", "components.molecules.share.lessons.options.infoText": - "With the following link, the topic can be imported as a copy by other teachers. Personal data will not be imported.", + "With the following link, the topic can be imported as a copy by other teachers.", "components.molecules.share.lessons.result.linkLabel": "Link topic copy", "components.molecules.share.columnBoard.options.infoText": - "With the following link, the board can be imported as a copy by other teachers. Personal data will not be imported.", + "With the following link, the board can be imported as a copy by other teachers.", "components.molecules.share.columnBoard.result.linkLabel": "Link to Board copy", "components.molecules.share.options.expiresInDays": diff --git a/src/locales/es.ts b/src/locales/es.ts index 500ea9467c..337c697026 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -660,13 +660,19 @@ export default { "components.molecules.share.courses.options.ctlTools.infotext": "No se copiarán herramientas externas asociadas al curso ni tarjetas de embarque.", "components.molecules.share.courses.options.infoText": - "Con el siguiente enlace, el curso puede ser importado como copia por otros profesores. Los datos personales no se importarán.", + "
  • Herramientas externas no disponibles en la escuela de destino
  • Configuraciones protegidas de herramientas externas
  • ", + "components.molecules.share.options.personalData.infoText": + "Datos personales", + "components.molecules.share.courses.options.restrictions.infoText": + "
  • Archivos en Archivos de curso
  • Contenido de Etherpads
  • ID de Geogebra y
  • Grupos de cursos
  • ", + "components.molecules.share.courses.options.tableHeader.InfoText": + "No se copiará el siguiente contenido:", "components.molecules.share.courses.result.linkLabel": "Enlace a la copia del curso", "components.molecules.share.lessons.mail.body": "Enlace al tema:", "components.molecules.share.lessons.mail.subject": "Tema de importación", "components.molecules.share.lessons.options.infoText": - "Con el siguiente enlace, el tema puede ser importado como copia por otros profesores. Los datos personales no se importarán.", + "Con el siguiente enlace, el tema puede ser importado como copia por otros profesores.", "components.molecules.share.lessons.result.linkLabel": "Enlace a la copia del tema", "components.molecules.share.options.expiresInDays": @@ -681,7 +687,7 @@ export default { "components.molecules.share.tasks.mail.body": "Enlace a la tarea:", "components.molecules.share.tasks.mail.subject": "Tarea de importación", "components.molecules.share.tasks.options.infoText": - "Con el siguiente enlace, la tarea puede ser importado como copia por otros profesores. Los datos personales no se importarán.", + "Con el siguiente enlace, la tarea puede ser importado como copia por otros profesores.", "components.molecules.share.tasks.result.linkLabel": "Enlace a la copia de la tarea", "components.molecules.TaskItemMenu.confirmDelete.text": diff --git a/src/locales/uk.ts b/src/locales/uk.ts index 7dc8d81768..8dd101d07f 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -657,14 +657,20 @@ export default { "components.molecules.share.courses.options.ctlTools.infotext": "Зовнішні інструменти, пов’язані з курсом або посадочними картками, не будуть скопійовані.", "components.molecules.share.courses.options.infoText": - "За наступним посиланням курс може бути імпортований як копія іншими викладачами. Персональні дані не імпортуються.", + "
  • Зовнішні інструменти недоступні в цільовій школі
  • Захищені налаштування зовнішніх інструментів
  • ", + "components.molecules.share.options.personalData.infoText": + "Персональні дані", + "components.molecules.share.courses.options.restrictions.infoText": + "
  • Файли в розділі Файли курсу
  • Вміст із Etherpads
  • Ідентифікатори Geogebra та
  • Групи курсів
  • ", + "components.molecules.share.courses.options.tableHeader.InfoText": + "Наступний вміст не буде скопійовано:", "components.molecules.share.courses.result.linkLabel": "Посилання на копію курсу", "components.molecules.share.lessons.mail.body": "Посилання на курс:", "components.molecules.share.lessons.mail.subject": "Теми, які можна імпортувати", "components.molecules.share.lessons.options.infoText": - "За наступним посиланням тему можуть імпортувати як копію інші вчителі. Особисті дані не будуть імпортовані.", + "За наступним посиланням тему можуть імпортувати як копію інші вчителі.", "components.molecules.share.lessons.result.linkLabel": "Копія теми посилання", "components.molecules.share.options.expiresInDays": "Термін дії посилання закінчується через 21 днів", @@ -679,7 +685,7 @@ export default { "components.molecules.share.tasks.mail.subject": "Завдання, які можна імпортувати", "components.molecules.share.tasks.options.infoText": - "За наступним посиланням завдання можуть імпортувати як копію інші вчителі. Особисті дані не будуть імпортовані.", + "За наступним посиланням завдання можуть імпортувати як копію інші вчителі.", "components.molecules.share.tasks.result.linkLabel": "Зв'язати копію завдання", "components.molecules.TaskItemMenu.confirmDelete.text": From 7cc36b060614414abe94d10687eb181b141ec714 Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Tue, 26 Nov 2024 01:59:13 +0100 Subject: [PATCH 02/20] import modal, test and locales --- src/components/share/ImportModal.unit.ts | 13 ++++--------- src/components/share/ImportModal.vue | 24 ++++++++++++++---------- src/components/share/ShareModal.unit.ts | 2 +- src/locales/de.ts | 18 +++++++++++++----- src/locales/en.ts | 18 +++++++++++++----- src/locales/es.ts | 18 +++++++++++++----- src/locales/uk.ts | 18 +++++++++++++----- 7 files changed, 71 insertions(+), 40 deletions(-) diff --git a/src/components/share/ImportModal.unit.ts b/src/components/share/ImportModal.unit.ts index 0d7ecc6ef3..c982d94ed4 100644 --- a/src/components/share/ImportModal.unit.ts +++ b/src/components/share/ImportModal.unit.ts @@ -2,11 +2,11 @@ import ImportModal from "@/components/share/ImportModal.vue"; import EnvConfigModule from "@/store/env-config"; import { ENV_CONFIG_MODULE_KEY } from "@/utils/inject"; import { createModuleMocks } from "@@/tests/test-utils/mock-store-module"; -import { mount } from "@vue/test-utils"; import { createTestingI18n, createTestingVuetify, } from "@@/tests/test-utils/setup"; +import { mount } from "@vue/test-utils"; describe("@components/share/ImportModal", () => { const setup = (envConfigModuleGetter?: Partial) => { @@ -123,7 +123,7 @@ describe("@components/share/ImportModal", () => { ); expect(infoText.attributes("html")).toEqual( - "components.molecules.import.courses.options.ctlTools.infoText" + "components.molecules.import.options.ctlTools.infoText" ); }); it("should not show course file info", () => { @@ -168,14 +168,9 @@ describe("@components/share/ImportModal", () => { it("should set the right key for course files", () => { const { wrapper } = setup({ getCtlToolsTabEnabled: false }); - const dialog = wrapper.findComponent({ name: "v-custom-dialog" }); - const cardText = dialog.findComponent({ name: "v-card-text" }); - - const infoText = cardText.find( - `[data-testid="import-modal-coursefiles-info"]` - ); + const renderHtml = wrapper.findComponent({ name: "RenderHTML" }); - expect(infoText.element.innerHTML).toEqual( + expect(renderHtml.props("html")).toEqual( "components.molecules.import.courses.options.infoText" ); }); diff --git a/src/components/share/ImportModal.vue b/src/components/share/ImportModal.vue index 085807f37c..c93dd3ca3a 100644 --- a/src/components/share/ImportModal.vue +++ b/src/components/share/ImportModal.vue @@ -23,18 +23,22 @@
    -
    - {{ + +
    +
    + {{ t(`components.molecules.import.${parentType}.rename`) }}
    diff --git a/src/components/share/ShareModal.unit.ts b/src/components/share/ShareModal.unit.ts index 81ee46290e..a675156f13 100644 --- a/src/components/share/ShareModal.unit.ts +++ b/src/components/share/ShareModal.unit.ts @@ -137,11 +137,9 @@ describe("@/components/share/ShareModal", () => { `[data-testid="share-modal-external-tools-info"]` ); - const renderHtmls = wrapper.findAllComponents({ name: "RenderHTML" }); - expect(infotext.isVisible()).toBe(true); - expect(renderHtmls[0].props("html")).toEqual( - "components.molecules.share.courses.options.ctlTools.infoText" + expect(infotext.text()).toEqual( + "components.molecules.shareImport.options.ctlTools.infoText.line1" ); }); }); diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index 3a3d0340de..64b1d0d9f7 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -20,7 +20,6 @@
    {{ t(`components.molecules.share.${type}.options.infoText`) }} -

    @@ -30,41 +29,62 @@
    {{ t( - "components.molecules.share.courses.options.tableHeader.InfoText" + "components.molecules.shareImport.options.tableHeader.InfoText" ) }}
      +
    • + {{ + t( + "components.molecules.shareImport.options.personalData.infoText" + ) + }} +
    • {{ t( - "components.molecules.share.options.personalData.infoText" + "components.molecules.shareImport.options.ctlTools.infoText.line1" ) }}
    • - + {{ t( - 'components.molecules.share.courses.options.ctlTools.infoText', - {} + "components.molecules.shareImport.options.ctlTools.infoText.line2" ) - " - component="p" - style="margin-bottom: 0px" - data-testid="share-modal-external-tools-info" - /> - +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.line2" + ) + }} +
    • +
    • + {{ t( - 'components.molecules.share.courses.options.restrictions.infoText', - {} + "components.molecules.shareImport.options.restrictions.infoText.line3" ) - " - component="p" - /> + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.line4" + ) + }} +
    @@ -92,7 +112,6 @@ import VCustomDialog from "@/components/organisms/vCustomDialog.vue"; import ShareModalOptionsForm from "@/components/share/ShareModalOptionsForm.vue"; import ShareModalResult from "@/components/share/ShareModalResult.vue"; -import RenderHTML from "@/modules/feature/render-html/RenderHTML.vue"; import { ShareTokenBodyParamsParentTypeEnum } from "@/serverApi/v3/api"; import { ENV_CONFIG_MODULE_KEY, diff --git a/src/locales/de.ts b/src/locales/de.ts index a349eace21..74b2cd2151 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -593,16 +593,10 @@ export default { "components.molecules.import.courses.label": "Kurs", "components.molecules.import.courses.rename": "Bei Bedarf kann der Name des Kurses umbenannt werden: ", - "components.molecules.import.options.ctlTools.infoText": - "Folgende Inhalte werden nicht kopiert:
    • Personenbezogene Daten
    • In Zielschule nicht verfügbare, externe Tools
    • Geschützte Einstellungen externer Tools
    • Dateien unter Kurs-Dateien
    • Inhalte aus Etherpads
    • Geogebra IDs und
    • Kursgruppen
    ", - "components.molecules.import.courses.options.infoText": - "Folgende Inhalte werden nicht kopiert:
    • Personenbezogene Daten
    • Dateien unter Kurs-Dateien
    • Inhalte aus Etherpads
    • Geogebra IDs und
    • Kursgruppen
    ", "components.molecules.import.courses.options.title": "Kurs importieren", "components.molecules.import.lessons.label": "Thema", "components.molecules.import.lessons.rename": "Bei Bedarf kann der Name des Themas umbenannt werden: ", - "components.molecules.import.lessons.options.infoText": - "Folgende Inhalte werden nicht kopiert:
    • Personenbezogene Daten
    • Dateien unter Kurs-Dateien
    • Inhalte aus Etherpads
    • Geogebra IDs und
    • Kursgruppen
    ", "components.molecules.import.lessons.options.selectCourse.infoText": "Der Kurs, in den das Thema importiert werden soll, muss im Folgenden ausgewählt werden.", "components.molecules.import.lessons.options.selectCourse": "Kurs wählen", @@ -619,8 +613,6 @@ export default { "components.molecules.import.tasks.label": "Aufgabe", "components.molecules.import.tasks.rename": "Bei Bedarf kann der Name der Aufgabe umbenannt werden: ", - "components.molecules.import.tasks.options.infoText": - "Folgende Inhalte werden nicht kopiert:
    • Personenbezogene Daten
    • Dateien unter Kurs-Dateien
    • Inhalte aus Etherpads
    • Geogebra IDs und
    • Kursgruppen
    ", "components.molecules.import.tasks.options.selectCourse.infoText": "Der Kurs, in den die Aufgabe importiert werden soll, muss im Folgenden ausgewählt werden.", "components.molecules.export.options.info": @@ -664,15 +656,23 @@ export default { "Link Bereich-Kopie", "components.molecules.share.courses.mail.body": "Link zum Kurs:", "components.molecules.share.courses.mail.subject": "Kurs zum Importieren", - "components.molecules.share.courses.options.ctlTools.infoText": - "
  • In Zielschule nicht verfügbare, externe Tools
  • Geschützte Einstellungen externer Tools
  • ", + "components.molecules.shareImport.options.ctlTools.infoText.line1": + "In Zielschule nicht verfügbare, externe Tools", + "components.molecules.shareImport.options.ctlTools.infoText.line2": + "Geschützte Einstellungen externer Tools", "components.molecules.share.courses.options.infoText": "Mit dem folgenden Link kann der Kurs als Kopie von anderen Lehrkräften importiert werden.", - "components.molecules.share.options.personalData.infoText": + "components.molecules.shareImport.options.personalData.infoText": "Personenbezogene Daten", - "components.molecules.share.courses.options.restrictions.infoText": - "
  • Dateien unter Kurs-Dateien
  • Inhalte aus Etherpads
  • Geogebra IDs und
  • Kursgruppen
  • ", - "components.molecules.share.courses.options.tableHeader.InfoText": + "components.molecules.shareImport.options.restrictions.infoText.line1": + "Dateien unter Kurs-Dateien", + "components.molecules.shareImport.options.restrictions.infoText.line2": + "Inhalte aus Etherpads", + "components.molecules.shareImport.options.restrictions.infoText.line3": + "Geogebra IDs und", + "components.molecules.shareImport.options.restrictions.infoText.line4": + "Kursgruppen", + "components.molecules.shareImport.options.tableHeader.InfoText": "Folgende Inhalte werden nicht kopiert:", "components.molecules.share.courses.result.linkLabel": "Link Kurskopie", "components.molecules.share.lessons.mail.body": "Link zum Thema:", diff --git a/src/locales/en.ts b/src/locales/en.ts index ed9d3417d3..30e0189a9e 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -647,14 +647,23 @@ export default { "components.molecules.MintEcFooter.chapters": "Chapter overview", "components.molecules.share.courses.mail.body": "Link to the course:", "components.molecules.share.courses.mail.subject": "Course you can import", - "components.molecules.share.courses.options.ctlTools.infoText": - "
  • External tools not available in the target school
  • Protected settings of external tools
  • ", + "components.molecules.shareImport.options.ctlTools.infoText.line1": + "External tools not available in the target school", + "components.molecules.shareImport.options.ctlTools.infoText.line2": + "Protected settings of external tools", "components.molecules.share.courses.options.infoText": "With the following link, the course can be imported as a copy by other teachers.", - "components.molecules.share.options.personalData.infoText": "Personal data", - "components.molecules.share.courses.options.restrictions.infoText": - "
  • Files under Course Files
  • Content from Etherpads
  • Geogebra IDs and
  • Course groups
  • ", - "components.molecules.share.courses.options.tableHeader.InfoText": + "components.molecules.shareImport.options.personalData.infoText": + "Personal data", + "components.molecules.shareImport.options.restrictions.infoText.line1": + "Files under Course Files", + "components.molecules.shareImport.options.restrictions.infoText.line2": + "Content from Etherpads", + "components.molecules.shareImport.options.restrictions.infoText.line3": + "Geogebra IDs and", + "components.molecules.shareImport.options.restrictions.infoText.line4": + "Course groups", + "components.molecules.shareImport.options.tableHeader.InfoText": "The following content will not be copied:", "components.molecules.share.courses.result.linkLabel": "Link course copy", "components.molecules.share.lessons.mail.body": "Link to the topic:", diff --git a/src/locales/es.ts b/src/locales/es.ts index 8cd7c9679c..b2fca62d0f 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -601,16 +601,10 @@ export default { "components.molecules.import.courses.label": "Curso", "components.molecules.import.courses.rename": "Si es necesario, se puede cambiar el nombre del curso: ", - "components.molecules.import.options.ctlTools.infoText": - "El siguiente contenido no se copiará:
    • Datos personales
    • Herramientas externas no disponibles en la escuela de destino
    • Configuraciones protegidas de herramientas externas
    • Archivos en Archivos de curso
    • Contenido de Etherpads
    • ID de Geogebra y
    • Grupos de cursos
    ", - "components.molecules.import.courses.options.infoText": - "El siguiente contenido no se copiará:
    • Datos personales
    • Archivos en archivos del curso
    • Contenido de Etherpads
    • ID de Geogebra y
    • Grupos de cursos
    ", "components.molecules.import.courses.options.title": "Importar curso", "components.molecules.import.lessons.label": "Tema", "components.molecules.import.lessons.rename": "Si es necesario, se puede cambiar el nombre del tema: ", - "components.molecules.import.lessons.options.infoText": - "El siguiente contenido no se copiará:
    • Datos personales
    • Archivos en archivos del curso
    • Contenido de Etherpads
    • ID de Geogebra y
    • Grupos de cursos
    ", "components.molecules.import.lessons.options.selectCourse.infoText": "Seleccione el curso al que desea importar el tema.", "components.molecules.import.lessons.options.selectCourse": "Elija el curso", @@ -627,8 +621,6 @@ export default { "components.molecules.import.tasks.label": "Tarea", "components.molecules.import.tasks.rename": "Si es necesario, se puede cambiar el nombre de la tarea: ", - "components.molecules.import.tasks.options.infoText": - "El siguiente contenido no se copiará:
    • Datos personales
    • Archivos en archivos del curso
    • Contenido de Etherpads
    • ID de Geogebra y
    • Grupos de cursos
    ", "components.molecules.import.tasks.options.selectCourse.infoText": "Seleccione el curso al que desea importar la tarea.", "components.molecules.import.tasks.options.selectCourse": "Elija el curso", @@ -667,13 +659,21 @@ export default { "components.molecules.share.courses.mail.subject": "Curso de importación", "components.molecules.share.courses.options.ctlTools.infoText": "No se copiarán herramientas externas asociadas al curso ni tarjetas de embarque.", - "components.molecules.share.courses.options.infoText": - "
  • Herramientas externas no disponibles en la escuela de destino
  • Configuraciones protegidas de herramientas externas
  • ", - "components.molecules.share.options.personalData.infoText": + "components.molecules.shareImport.options.infoText.line1": + "Herramientas externas no disponibles en la escuela de destino", + "components.molecules.shareImport.options.infoText.line2": + "Configuraciones protegidas de herramientas externas", + "components.molecules.shareImport.options.personalData.infoText": "Datos personales", - "components.molecules.share.courses.options.restrictions.infoText": - "
  • Archivos en Archivos de curso
  • Contenido de Etherpads
  • ID de Geogebra y
  • Grupos de cursos
  • ", - "components.molecules.share.courses.options.tableHeader.InfoText": + "components.molecules.shareImport.options.restrictions.infoText.line1": + "Archivos en Archivos de curso", + "components.molecules.shareImport.options.restrictions.infoText.line2": + "Contenido de Etherpads", + "components.molecules.shareImport.options.restrictions.infoText.line3": + "ID de Geogebra y", + "components.molecules.shareImport.options.restrictions.infoText.line4": + "Grupos de cursos", + "components.molecules.shareImport.options.tableHeader.InfoText": "No se copiará el siguiente contenido:", "components.molecules.share.courses.result.linkLabel": "Enlace a la copia del curso", diff --git a/src/locales/uk.ts b/src/locales/uk.ts index 58f4ef9e17..e2d5b00d1a 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -597,16 +597,10 @@ export default { "components.molecules.import.courses.label": "Курс", "components.molecules.import.courses.rename": "При необхідності назву курсу можна перейменувати: ", - "components.molecules.import.options.ctlTools.infoText": - "Наступний вміст не буде скопійовано:
    • Особисті дані
    • Зовнішні інструменти, недоступні в цільовій школі
    • Захищені налаштування зовнішніх інструментів< /li>
    • Файли у Файлах курсу
    • Вміст із Etherpads
    • Ідентифікатори Geogebra та
    • Групи курсів
    ", - "components.molecules.import.courses.options.infoText": - "Наступний вміст не буде скопійовано:
    • Особисті дані
    • Файли у файлах курсу
    • Вміст із Etherpads
    • ідентифікатори Geogebra та
    • групи курсів
    ", "components.molecules.import.courses.options.title": "Курс імпорту", "components.molecules.import.lessons.label": "Тема", "components.molecules.import.lessons.rename": "При необхідності назву теми можна перейменувати: ", - "components.molecules.import.lessons.options.infoText": - "Наступний вміст не буде скопійовано:
    • Особисті дані
    • Файли у файлах курсу
    • Вміст із Etherpads
    • ідентифікатори Geogebra та
    • групи курсів
    ", "components.molecules.import.lessons.options.selectCourse.infoText": "Будь ласка, оберіть курс з якого ви хочете імпортувати тему", "components.molecules.import.lessons.options.selectCourse": "Оберіть курс", @@ -623,8 +617,6 @@ export default { "components.molecules.import.tasks.label": "Завдання", "components.molecules.import.tasks.rename": "При необхідності назву завдання можна перейменувати: ", - "components.molecules.import.tasks.options.infoText": - "Наступний вміст не буде скопійовано:
    • Особисті дані
    • Файли у файлах курсу
    • Вміст із Etherpads
    • ідентифікатори Geogebra та
    • групи курсів
    ", "components.molecules.import.tasks.options.selectCourse.infoText": "Виберіть курс, до якого ви хочете імпортувати завдання.", "components.molecules.import.tasks.options.selectCourse": "Оберіть курс", @@ -664,13 +656,21 @@ export default { "components.molecules.share.courses.mail.subject": "Курс імпорту", "components.molecules.share.courses.options.ctlTools.infoText": "Зовнішні інструменти, пов’язані з курсом або посадочними картками, не будуть скопійовані.", - "components.molecules.share.courses.options.infoText": - "
  • Зовнішні інструменти недоступні в цільовій школі
  • Захищені налаштування зовнішніх інструментів
  • ", - "components.molecules.share.options.personalData.infoText": + "components.molecules.shareImport.options.infoText.line1": + "Зовнішні інструменти недоступні в цільовій школі", + "components.molecules.shareImport.options.infoText.line2": + "Захищені налаштування зовнішніх інструментів", + "components.molecules.shareImport.options.personalData.infoText": "Персональні дані", - "components.molecules.share.courses.options.restrictions.infoText": - "
  • Файли в розділі Файли курсу
  • Вміст із Etherpads
  • Ідентифікатори Geogebra та
  • Групи курсів
  • ", - "components.molecules.share.courses.options.tableHeader.InfoText": + "components.molecules.shareImport.options.restrictions.infoText.line1": + "Файли в розділі Файли курсу", + "components.molecules.shareImport.options.restrictions.infoText.line2": + "Вміст із Etherpads", + "components.molecules.shareImport.options.restrictions.infoText.line3": + "Ідентифікатори Geogebra та", + "components.molecules.shareImport.options.restrictions.infoText.line4": + "Групи курсів", + "components.molecules.shareImport.options.tableHeader.InfoText": "Наступний вміст не буде скопійовано:", "components.molecules.share.courses.result.linkLabel": "Посилання на копію курсу", From 4fb0ac3049eb6340b6c28849c41eaf18d89c54d4 Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Mon, 2 Dec 2024 13:52:49 +0100 Subject: [PATCH 10/20] ... --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6d15e28f85..ed84f3b7dd 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ } }, "engines": { - "node": "20", + "node": "22", "npm": ">=9" } } From 1b96a7acbdfbc80d9847afb3c207a41953e2ebed Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Mon, 2 Dec 2024 14:16:01 +0100 Subject: [PATCH 11/20] ... --- src/locales/es.ts | 6 ++++-- src/locales/uk.ts | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/locales/es.ts b/src/locales/es.ts index b16a189455..0a1deb0dd8 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -659,10 +659,12 @@ export default { "components.molecules.share.courses.mail.subject": "Curso de importación", "components.molecules.share.courses.options.ctlTools.infoText": "No se copiarán herramientas externas asociadas al curso ni tarjetas de embarque.", - "components.molecules.shareImport.options.infoText.line1": + "components.molecules.shareImport.options.ctlTools.infoText.line1": "Herramientas externas no disponibles en la escuela de destino", - "components.molecules.shareImport.options.infoText.line2": + "components.molecules.shareImport.options.ctlTools.infoText.line2": "Configuraciones protegidas de herramientas externas", + "components.molecules.share.courses.options.infoText": + "Utilizando el siguiente enlace, otros profesores pueden importar el curso como una copia.", "components.molecules.shareImport.options.personalData.infoText": "Datos personales", "components.molecules.shareImport.options.restrictions.infoText.line1": diff --git a/src/locales/uk.ts b/src/locales/uk.ts index 5862321b38..fd1cfbc669 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -656,10 +656,12 @@ export default { "components.molecules.share.courses.mail.subject": "Курс імпорту", "components.molecules.share.courses.options.ctlTools.infoText": "Зовнішні інструменти, пов’язані з курсом або посадочними картками, не будуть скопійовані.", - "components.molecules.shareImport.options.infoText.line1": + "components.molecules.shareImport.options.ctlTools.infoText.line1": "Зовнішні інструменти недоступні в цільовій школі", - "components.molecules.shareImport.options.infoText.line2": + "components.molecules.shareImport.options.ctlTools.infoText.line2": "Захищені налаштування зовнішніх інструментів", + "components.molecules.share.courses.options.infoText": + "Використовуючи наступне посилання, курс може бути імпортований як копія іншими викладачами.", "components.molecules.shareImport.options.personalData.infoText": "Персональні дані", "components.molecules.shareImport.options.restrictions.infoText.line1": From a4ec323e05f5f4e165331fde2d81abde4fe96759 Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Tue, 3 Dec 2024 01:42:43 +0100 Subject: [PATCH 12/20] requested changes locale keys --- src/components/share/ImportModal.unit.ts | 4 +- src/components/share/ImportModal.vue | 14 +-- src/components/share/ShareModal.unit.ts | 2 +- src/components/share/ShareModal.vue | 122 +++++++++++------------ src/locales/de.ts | 14 +-- src/locales/en.ts | 14 +-- src/locales/es.ts | 14 +-- src/locales/uk.ts | 14 +-- 8 files changed, 98 insertions(+), 100 deletions(-) diff --git a/src/components/share/ImportModal.unit.ts b/src/components/share/ImportModal.unit.ts index 840f15dadc..a68255c9ee 100644 --- a/src/components/share/ImportModal.unit.ts +++ b/src/components/share/ImportModal.unit.ts @@ -123,7 +123,7 @@ describe("@components/share/ImportModal", () => { ); expect(infoText.text()).toEqual( - "components.molecules.shareImport.options.ctlTools.infoText.line1" + "components.molecules.shareImport.options.ctlTools.infoText.unavailable" ); }); it("should also show course file info", () => { @@ -176,7 +176,7 @@ describe("@components/share/ImportModal", () => { ); expect(infoText.element.innerHTML).toEqual( - "components.molecules.shareImport.options.restrictions.infoText.line1" + "components.molecules.shareImport.options.restrictions.infoText.courseFiles" ); }); }); diff --git a/src/components/share/ImportModal.vue b/src/components/share/ImportModal.vue index 1a23a2bc1d..73a0f4dece 100644 --- a/src/components/share/ImportModal.vue +++ b/src/components/share/ImportModal.vue @@ -33,7 +33,7 @@
  • {{ t( - "components.molecules.shareImport.options.personalData.infoText" + "components.molecules.shareImport.options.restrictions.infoText.personalData" ) }}
  • @@ -43,42 +43,42 @@ > {{ t( - "components.molecules.shareImport.options.ctlTools.infoText.line1" + "components.molecules.shareImport.options.ctlTools.infoText.unavailable" ) }}
  • {{ t( - "components.molecules.shareImport.options.ctlTools.infoText.line2" + "components.molecules.shareImport.options.ctlTools.infoText.protected" ) }}
  • {{ t( - "components.molecules.shareImport.options.restrictions.infoText.line1" + "components.molecules.shareImport.options.restrictions.infoText.courseFiles" ) }}
  • {{ t( - "components.molecules.shareImport.options.restrictions.infoText.line2" + "components.molecules.shareImport.options.restrictions.infoText.etherpad" ) }}
  • {{ t( - "components.molecules.shareImport.options.restrictions.infoText.line3" + "components.molecules.shareImport.options.restrictions.infoText.geogebra" ) }}
  • {{ t( - "components.molecules.shareImport.options.restrictions.infoText.line4" + "components.molecules.shareImport.options.restrictions.infoText.courseGroups" ) }}
  • diff --git a/src/components/share/ShareModal.unit.ts b/src/components/share/ShareModal.unit.ts index a675156f13..1bc75a2555 100644 --- a/src/components/share/ShareModal.unit.ts +++ b/src/components/share/ShareModal.unit.ts @@ -139,7 +139,7 @@ describe("@/components/share/ShareModal", () => { expect(infotext.isVisible()).toBe(true); expect(infotext.text()).toEqual( - "components.molecules.shareImport.options.ctlTools.infoText.line1" + "components.molecules.shareImport.options.ctlTools.infoText.unavailable" ); }); }); diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index 64b1d0d9f7..178642b080 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -25,68 +25,66 @@
    -
    -
    - {{ - t( - "components.molecules.shareImport.options.tableHeader.InfoText" - ) - }} -
      -
    • - {{ - t( - "components.molecules.shareImport.options.personalData.infoText" - ) - }} -
    • -
    • - {{ - t( - "components.molecules.shareImport.options.ctlTools.infoText.line1" - ) - }} -
    • -
    • - {{ - t( - "components.molecules.shareImport.options.ctlTools.infoText.line2" - ) - }} -
    • -
    • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.line1" - ) - }} -
    • -
    • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.line2" - ) - }} -
    • -
    • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.line3" - ) - }} -
    • -
    • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.line4" - ) - }} -
    • -
    -
    +
    + {{ + t( + "components.molecules.shareImport.options.tableHeader.InfoText" + ) + }} +
      +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.personalData" + ) + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.ctlTools.infoText.unavailable" + ) + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.ctlTools.infoText.protected" + ) + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.courseFiles" + ) + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.etherpad" + ) + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.geogebra" + ) + }} +
    • +
    • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.courseGroups" + ) + }} +
    • +
    Date: Wed, 4 Dec 2024 10:47:06 +0100 Subject: [PATCH 13/20] add data-testid --- src/components/share/ShareModal.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index 178642b080..5543e739fa 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -49,7 +49,10 @@ ) }} -
  • +
  • {{ t( "components.molecules.shareImport.options.ctlTools.infoText.protected" From 5eb17e0dc0db2c110c094f7d623a89c88c436513 Mon Sep 17 00:00:00 2001 From: MBergCap Date: Wed, 4 Dec 2024 11:20:46 +0100 Subject: [PATCH 14/20] add data-testid --- src/components/share/ImportModal.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/share/ImportModal.vue b/src/components/share/ImportModal.vue index 73a0f4dece..d6290f3380 100644 --- a/src/components/share/ImportModal.vue +++ b/src/components/share/ImportModal.vue @@ -47,7 +47,10 @@ ) }}
  • -
  • +
  • {{ t( "components.molecules.shareImport.options.ctlTools.infoText.protected" From 58ead6eb47874c76a991f6864a00758a35e90ae8 Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Wed, 4 Dec 2024 15:16:29 +0100 Subject: [PATCH 15/20] requested changes locales,

    --- src/components/share/ImportModal.vue | 4 +--- src/components/share/ShareModal.vue | 10 +++------- src/locales/de.ts | 8 +++++--- src/locales/en.ts | 16 +++++----------- src/locales/es.ts | 8 +++++--- src/locales/uk.ts | 9 ++++++--- 6 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/components/share/ImportModal.vue b/src/components/share/ImportModal.vue index d6290f3380..e1d2ac3f6e 100644 --- a/src/components/share/ImportModal.vue +++ b/src/components/share/ImportModal.vue @@ -25,9 +25,7 @@

    {{ - t( - "components.molecules.shareImport.options.tableHeader.InfoText" - ) + t("components.molecules.import.options.tableHeader.InfoText") }}
    • diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index 5543e739fa..effd236e1f 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -18,19 +18,15 @@
      -
      +

      {{ t(`components.molecules.share.${type}.options.infoText`) }} -

      +

      - {{ - t( - "components.molecules.shareImport.options.tableHeader.InfoText" - ) - }} + {{ t("components.molecules.share.options.tableHeader.InfoText") }}
      • {{ diff --git a/src/locales/de.ts b/src/locales/de.ts index 75fa2089d3..770802243f 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -590,10 +590,10 @@ export default { "components.molecules.import.columnBoard.options.selectCourse": "Kurs wählen", "components.molecules.import.columnBoard.options.selectCourse.infoText": "Der Kurs, in den der Bereich importiert werden soll, muss im Folgenden ausgewählt werden.", - "components.molecules.import.courses.label": "Kurs", + "components.molecules.import.courses.label": "Kurs-Name", "components.molecules.import.courses.rename": "Bei Bedarf kann der Name des Kurses umbenannt werden: ", - "components.molecules.import.courses.options.title": "Kurs importieren", + "components.molecules.import.courses.options.title": "Kurs-Kopie importieren", "components.molecules.import.lessons.label": "Thema", "components.molecules.import.lessons.rename": "Bei Bedarf kann der Name des Themas umbenannt werden: ", @@ -610,6 +610,8 @@ export default { "components.molecules.import.options.loadingMessage": "Import läuft...", "components.molecules.import.options.success": "{name} wurde erfolgreich importiert", + "components.molecules.import.options.tableHeader.InfoText": + "Folgende Inhalte werden nicht importiert:", "components.molecules.import.tasks.label": "Aufgabe", "components.molecules.import.tasks.rename": "Bei Bedarf kann der Name der Aufgabe umbenannt werden: ", @@ -672,7 +674,7 @@ export default { "Geogebra IDs und", "components.molecules.shareImport.options.restrictions.infoText.courseGroups": "Kursgruppen", - "components.molecules.shareImport.options.tableHeader.InfoText": + "components.molecules.share.options.tableHeader.InfoText": "Folgende Inhalte werden nicht kopiert:", "components.molecules.share.courses.result.linkLabel": "Link Kurskopie", "components.molecules.share.lessons.mail.body": "Link zum Thema:", diff --git a/src/locales/en.ts b/src/locales/en.ts index 9825f136c9..2a9b34382c 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -585,19 +585,13 @@ export default { "Select course", "components.molecules.import.columnBoard.options.selectCourse.infoText": "Please select the course into which you would like to import the board.", - "components.molecules.import.courses.label": "Course", + "components.molecules.import.courses.label": "Course name", "components.molecules.import.courses.rename": "If necessary, the name of the course can be renamed: ", - "components.molecules.import.options.ctlTools.infoText": - "The following content will not be copied:
        • Personal data
        • External tools not available in the target school
        • Protected settings of external tools< /li>
        • Files under course files
        • Content from Etherpads
        • Geogebra IDs and
        • course groups
        ", - "components.molecules.import.courses.options.infoText": - "The following content will not be copied:
        • Personal data
        • Files under course files
        • Content from Etherpads
        • Geogebra IDs and
        • Course groups
        ", - "components.molecules.import.courses.options.title": "Import course", + "components.molecules.import.courses.options.title": "Import course copy", "components.molecules.import.lessons.label": "Topic", "components.molecules.import.lessons.rename": "If necessary, the name of the topic can be renamed: ", - "components.molecules.import.lessons.options.infoText": - "The following content will not be copied:
        • Personal data
        • Files under course files
        • Content from Etherpads
        • Geogebra IDs and
        • Course groups
        ", "components.molecules.import.lessons.options.selectCourse.infoText": "Please select the course into which you would like to import the topic.", "components.molecules.import.lessons.options.selectCourse": "Select course", @@ -610,11 +604,11 @@ export default { "Unfortunately, the necessary authorization is missing.", "components.molecules.import.options.loadingMessage": "Import in progress...", "components.molecules.import.options.success": "{name} imported successfully", + "components.molecules.import.options.tableHeader.InfoText": + "The following content will not be imported:", "components.molecules.import.tasks.label": "Task", "components.molecules.import.tasks.rename": "If necessary, the name of the task can be renamed: ", - "components.molecules.import.tasks.options.infoText": - "The following content will not be copied:
        • Personal data
        • Files under course files
        • Content from Etherpads
        • Geogebra IDs and
        • Course groups
        ", "components.molecules.import.tasks.options.selectCourse.infoText": "Please select the course into which you would like to import the task.", "components.molecules.import.tasks.options.selectCourse": "Select course", @@ -663,7 +657,7 @@ export default { "Geogebra IDs and", "components.molecules.shareImport.options.restrictions.infoText.courseGroups": "Course groups", - "components.molecules.shareImport.options.tableHeader.InfoText": + "components.molecules.share.options.tableHeader.InfoText": "The following content will not be copied:", "components.molecules.share.courses.result.linkLabel": "Link course copy", "components.molecules.share.lessons.mail.body": "Link to the topic:", diff --git a/src/locales/es.ts b/src/locales/es.ts index 3b566057f9..60dec27d0a 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -598,10 +598,10 @@ export default { "Elija el curso", "components.molecules.import.columnBoard.options.selectCourse.infoText": "Seleccione el curso al que desea importar el tablero.", - "components.molecules.import.courses.label": "Curso", + "components.molecules.import.courses.label": "Nombre del curso", "components.molecules.import.courses.rename": "Si es necesario, se puede cambiar el nombre del curso: ", - "components.molecules.import.courses.options.title": "Importar curso", + "components.molecules.import.courses.options.title": "Importar copia nuestra", "components.molecules.import.lessons.label": "Tema", "components.molecules.import.lessons.rename": "Si es necesario, se puede cambiar el nombre del tema: ", @@ -618,6 +618,8 @@ export default { "components.molecules.import.options.loadingMessage": "Importación en curso...", "components.molecules.import.options.success": "{name} importado con éxito", + "components.molecules.import.options.tableHeader.InfoText": + "No se importará el siguiente contenido:", "components.molecules.import.tasks.label": "Tarea", "components.molecules.import.tasks.rename": "Si es necesario, se puede cambiar el nombre de la tarea: ", @@ -675,7 +677,7 @@ export default { "ID de Geogebra y", "components.molecules.shareImport.options.restrictions.infoText.courseGroups": "Grupos de cursos", - "components.molecules.shareImport.options.tableHeader.InfoText": + "components.molecules.share.options.tableHeader.InfoText": "No se copiará el siguiente contenido:", "components.molecules.share.courses.result.linkLabel": "Enlace a la copia del curso", diff --git a/src/locales/uk.ts b/src/locales/uk.ts index a9f1c11651..0766a3a0c9 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -594,10 +594,11 @@ export default { "Оберіть курс", "components.molecules.import.columnBoard.options.selectCourse.infoText": "Виберіть курс, до якого ви бажаєте імпортувати дошку.", - "components.molecules.import.courses.label": "Курс", + "components.molecules.import.courses.label": "Назва курсу", "components.molecules.import.courses.rename": "При необхідності назву курсу можна перейменувати: ", - "components.molecules.import.courses.options.title": "Курс імпорту", + "components.molecules.import.courses.options.title": + "Імпортувати копію курсу", "components.molecules.import.lessons.label": "Тема", "components.molecules.import.lessons.rename": "При необхідності назву теми можна перейменувати: ", @@ -614,6 +615,8 @@ export default { "components.molecules.import.options.loadingMessage": "Виконується імпорту...", "components.molecules.import.options.success": "{name} успішно імпортовано", + "components.molecules.import.options.tableHeader.InfoText": + "Наступний вміст не буде імпортовано:", "components.molecules.import.tasks.label": "Завдання", "components.molecules.import.tasks.rename": "При необхідності назву завдання можна перейменувати: ", @@ -672,7 +675,7 @@ export default { "Ідентифікатори Geogebra та", "components.molecules.shareImport.options.restrictions.infoText.courseGroups": "Групи курсів", - "components.molecules.shareImport.options.tableHeader.InfoText": + "components.molecules.share.options.tableHeader.InfoText": "Наступний вміст не буде скопійовано:", "components.molecules.share.courses.result.linkLabel": "Посилання на копію курсу", From 6172c9b6dfcb7648ea5e25fc6ac6dd177cf8b23c Mon Sep 17 00:00:00 2001 From: Gordon Nicholas Date: Wed, 4 Dec 2024 15:28:04 +0100 Subject: [PATCH 16/20] N21-1506 show copy failed board external tool elements in copy result report --- src/components/copy-result-modal/CopyResultModalListItem.vue | 2 ++ src/locales/de.ts | 1 + src/locales/en.ts | 3 ++- src/locales/es.ts | 2 ++ src/locales/uk.ts | 2 ++ src/store/copy.ts | 1 + 6 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/copy-result-modal/CopyResultModalListItem.vue b/src/components/copy-result-modal/CopyResultModalListItem.vue index 46a05e60d2..8a57759357 100644 --- a/src/components/copy-result-modal/CopyResultModalListItem.vue +++ b/src/components/copy-result-modal/CopyResultModalListItem.vue @@ -121,6 +121,8 @@ export default { return this.$t("components.molecules.copyResult.label.columnBoard"); case CopyApiResponseTypeEnum.DrawingElement: return this.$t("components.molecules.copyResult.label.tldraw"); + case CopyApiResponseTypeEnum.ExternalToolElement: + return this.$t("components.molecules.copyResult.label.toolElements"); default: return this.$t("components.molecules.copyResult.label.unknown"); } diff --git a/src/locales/de.ts b/src/locales/de.ts index 770802243f..2a0a0766eb 100644 --- a/src/locales/de.ts +++ b/src/locales/de.ts @@ -553,6 +553,7 @@ export default { "components.molecules.copyResult.label.timeGroup": "Zeitgruppe", "components.molecules.copyResult.label.unknown": "Unbekannt", "components.molecules.copyResult.label.userGroup": "Benutzergruppe", + "components.molecules.copyResult.label.toolElements": "Tool-Element", "components.molecules.copyResult.metadata": "Allgemeine Informationen", "components.molecules.copyResult.nexboardCopy.info": "Inhalte werden aus Datenschutzgründen nicht kopiert und müssen neu hinzugefügt werden.", diff --git a/src/locales/en.ts b/src/locales/en.ts index 2a9b34382c..407ba7cf6c 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -546,8 +546,9 @@ export default { "components.molecules.copyResult.label.tldraw": "Whiteboard", "components.molecules.copyResult.label.link": "Link", "components.molecules.copyResult.label.timeGroup": "Time Group", - "components.molecules.copyResult.label.unknown": "Unkown", + "components.molecules.copyResult.label.unknown": "Unknown", "components.molecules.copyResult.label.userGroup": "User Group", + "components.molecules.copyResult.label.toolElements": "Tool Element", "components.molecules.copyResult.metadata": "General Information", "components.molecules.copyResult.nexboardCopy.info": "Content is not copied for data protection reasons and must be added again.", diff --git a/src/locales/es.ts b/src/locales/es.ts index 60dec27d0a..6423341005 100644 --- a/src/locales/es.ts +++ b/src/locales/es.ts @@ -561,6 +561,8 @@ export default { "components.molecules.copyResult.label.timeGroup": "Grupo de tiempo", "components.molecules.copyResult.label.unknown": "Desconocido", "components.molecules.copyResult.label.userGroup": "Grupo de usuario", + "components.molecules.copyResult.label.toolElements": + "Elemento de herramienta", "components.molecules.copyResult.metadata": "Información general", "components.molecules.copyResult.nexboardCopy.info": "El contenido no se copia por razones de protección de datos y debe agregarse nuevamente.", diff --git a/src/locales/uk.ts b/src/locales/uk.ts index 0766a3a0c9..9ac7ed06f3 100644 --- a/src/locales/uk.ts +++ b/src/locales/uk.ts @@ -557,6 +557,8 @@ export default { "components.molecules.copyResult.label.timeGroup": "Група часу", "components.molecules.copyResult.label.unknown": "Невідомий", "components.molecules.copyResult.label.userGroup": "Група користувачів", + "components.molecules.copyResult.label.toolElements": + "Інструментальний елемент", "components.molecules.copyResult.metadata": "Загальна інформація", "components.molecules.copyResult.nexboardCopy.info": "Вміст не копіюється з міркувань захисту даних і повинен бути доданий повторно.", diff --git a/src/store/copy.ts b/src/store/copy.ts index f1bf4f2943..c53095e864 100644 --- a/src/store/copy.ts +++ b/src/store/copy.ts @@ -219,6 +219,7 @@ export default class CopyModule extends VuexModule { if (type === CopyApiResponseTypeEnum.DrawingElement) return true; if (type === CopyApiResponseTypeEnum.CollaborativeTextEditorElement) return true; + if (type === CopyApiResponseTypeEnum.ExternalToolElement) return true; return false; }; From 381461a45436d02cca2aa7969ab0cf30e559c7e6 Mon Sep 17 00:00:00 2001 From: Gordon Nicholas Date: Thu, 5 Dec 2024 10:30:21 +0100 Subject: [PATCH 17/20] N21-1506 show report when failing to copy course tools --- .../copy-result-modal/CopyResultModal.unit.ts | 103 ++++++++++-------- .../copy-result-modal/CopyResultModal.vue | 10 +- .../CopyResultModalListItem.unit.ts | 41 +++++++ .../CopyResultModalListItem.vue | 5 + src/store/copy.ts | 1 + 5 files changed, 115 insertions(+), 45 deletions(-) diff --git a/src/components/copy-result-modal/CopyResultModal.unit.ts b/src/components/copy-result-modal/CopyResultModal.unit.ts index b2e019eba3..33e514a1ff 100644 --- a/src/components/copy-result-modal/CopyResultModal.unit.ts +++ b/src/components/copy-result-modal/CopyResultModal.unit.ts @@ -151,53 +151,70 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { ); }); - it("should render ctl tools info if root item is a Course and has no failed file ", () => { - const copyResultItems = mockLessonResultItems([]); - - const envs = envsFactory.build({ - FEATURE_CTL_TOOLS_TAB_ENABLED: true, - }); - envConfigModule.setEnvs(envs); - const wrapper = createWrapper({ - isOpen: true, - copyResultItems, - copyResultRootItemType: CopyApiResponseTypeEnum.Course, - }); - - const dialog = wrapper.findComponent(vCustomDialog); - const content = dialog.findComponent(".v-card-text").text(); - - expect(content).toContain( - "components.molecules.copyResult.ctlTools.info" - ); - }); - describe("when root item is a Course, has no failed file and CTL_TOOLS_COPY feature flag is enabled", () => { - const setup = () => { - const copyResultItems = mockLessonResultItems([]); - const wrapper = createWrapper({ - isOpen: true, - copyResultItems, - copyResultRootItemType: CopyApiResponseTypeEnum.Course, + describe("when the item has element of type external tool", () => { + const setup = () => { + const envs = envsFactory.build({ + FEATURE_CTL_TOOLS_TAB_ENABLED: true, + FEATURE_CTL_TOOLS_COPY_ENABLED: true, + }); + envConfigModule.setEnvs(envs); + + const copyResultItems = mockLessonResultItems([]); + copyResultItems[0].elements.push({ + title: "Course External Tool", + type: CopyApiResponseTypeEnum.ExternalTool, + }); + + const wrapper = createWrapper({ + isOpen: true, + copyResultItems, + copyResultRootItemType: CopyApiResponseTypeEnum.Course, + }); + + return { wrapper }; + }; + + it("should show the warning text for non-copyable course external tools ", () => { + const { wrapper } = setup(); + + const dialog = wrapper.findComponent(vCustomDialog); + const content = dialog.findComponent(".v-card-text").text(); + + expect(content).toContain( + "components.molecules.copyResult.ctlTools.withFeature.info" + ); }); + }); - return { wrapper }; - }; - - it("should render ctl tools copy info ", () => { - const envs = envsFactory.build({ - FEATURE_CTL_TOOLS_TAB_ENABLED: true, - FEATURE_CTL_TOOLS_COPY_ENABLED: true, + describe("when the item has no element of type external tool", () => { + const setup = () => { + const envs = envsFactory.build({ + FEATURE_CTL_TOOLS_TAB_ENABLED: true, + FEATURE_CTL_TOOLS_COPY_ENABLED: true, + }); + envConfigModule.setEnvs(envs); + + const copyResultItems = mockLessonResultItems([]); + const wrapper = createWrapper({ + isOpen: true, + copyResultItems, + copyResultRootItemType: CopyApiResponseTypeEnum.Course, + }); + + return { wrapper }; + }; + + it("should not show the warning text for non-copyable course external tools ", () => { + const { wrapper } = setup(); + + const dialog = wrapper.findComponent(vCustomDialog); + const content = dialog.findComponent(".v-card-text").text(); + + expect(content).not.toContain( + "components.molecules.copyResult.ctlTools.withFeature.info" + ); }); - envConfigModule.setEnvs(envs); - const { wrapper } = setup(); - - const dialog = wrapper.findComponent(vCustomDialog); - const content = dialog.findComponent(".v-card-text").text(); - - expect(content).toContain( - "components.molecules.copyResult.ctlTools.withFeature.info" - ); }); }); diff --git a/src/components/copy-result-modal/CopyResultModal.vue b/src/components/copy-result-modal/CopyResultModal.vue index 7082db4f53..44147d4288 100644 --- a/src/components/copy-result-modal/CopyResultModal.vue +++ b/src/components/copy-result-modal/CopyResultModal.vue @@ -128,7 +128,7 @@ export default { title: this.$t("components.molecules.copyResult.label.files"), }, { - isShow: this.hasFeatureCtlsToolsenabled, + isShow: this.isFeatureCtlToolsEnabled && this.hasExternalTool, text: this.externalToolsInfoText, title: this.$t("components.molecules.copyResult.label.externalTools"), }, @@ -178,7 +178,7 @@ export default { CopyApiResponseTypeEnum.CoursegroupGroup ); }, - hasFeatureCtlsToolsenabled() { + isFeatureCtlToolsEnabled() { return envConfigModule.getCtlToolsTabEnabled; }, hasErrors() { @@ -206,6 +206,12 @@ export default { ? this.$t("components.molecules.copyResult.ctlTools.withFeature.info") : this.$t("components.molecules.copyResult.ctlTools.info"); }, + hasExternalTool() { + return this.hasElementOfType( + this.items, + CopyApiResponseTypeEnum.ExternalTool + ); + }, }, methods: { hasElementOfType(items, types) { diff --git a/src/components/copy-result-modal/CopyResultModalListItem.unit.ts b/src/components/copy-result-modal/CopyResultModalListItem.unit.ts index a554d6f531..155ead3273 100644 --- a/src/components/copy-result-modal/CopyResultModalListItem.unit.ts +++ b/src/components/copy-result-modal/CopyResultModalListItem.unit.ts @@ -161,10 +161,51 @@ describe("@/components/copy-result-modal/CopyResultModalListItem", () => { CopyApiResponseTypeEnum.CollaborativeTextEditorElement, "components.molecules.copyResult.label.etherpad", ], + [ + CopyApiResponseTypeEnum.ExternalToolElement, + "components.molecules.copyResult.label.toolElements", + ], ]; map.forEach(([constant, languageConstant]) => { expect(wrapper.vm.getElementTypeName(constant)).toBe(languageConstant); }); }); + + describe("when the item props has course tools in its elements field", () => { + const setup = () => { + const elements = Array.from(mockItem.elements); + const courseToolTitle = "Course External Tool"; + elements.push({ + title: courseToolTitle, + type: CopyApiResponseTypeEnum.ExternalTool, + }); + const item = { ...mockItem }; + item.elements = elements; + + return { item, courseToolTitle }; + }; + + it("should not show course tools in the list", () => { + const { item, courseToolTitle } = setup(); + + const wrapper = createWrapper({ item }); + + expect(wrapper.vm.aggregatedElements()).not.toContain( + expect.objectContaining({ + type: "components.molecules.copyResult.label.unknown", + title: courseToolTitle, + }) + ); + + const elements = wrapper.findAll( + '[data-testid="copy-result-list-item-element-info"]' + ); + elements.forEach((elementInfo) => { + expect(elementInfo.text()).not.toContain( + "components.molecules.copyResult.label.unknown" + ); + }); + }); + }); }); diff --git a/src/components/copy-result-modal/CopyResultModalListItem.vue b/src/components/copy-result-modal/CopyResultModalListItem.vue index 8a57759357..157b753c5c 100644 --- a/src/components/copy-result-modal/CopyResultModalListItem.vue +++ b/src/components/copy-result-modal/CopyResultModalListItem.vue @@ -9,6 +9,7 @@ v-for="element in aggregatedElements()" :key="element.type" class="element-info" + data-testid="copy-result-list-item-element-info" > {{ element.count }} {{ element.type }} @@ -130,6 +131,10 @@ export default { aggregatedElements() { const elementMap = new Map(); for (const element of this.elements) { + if (element.type === CopyApiResponseTypeEnum.ExternalTool) { + continue; + } + const typeName = this.getElementType(element); if (elementMap.has(typeName)) { const data = elementMap.get(typeName); diff --git a/src/store/copy.ts b/src/store/copy.ts index c53095e864..dfb9a105bb 100644 --- a/src/store/copy.ts +++ b/src/store/copy.ts @@ -220,6 +220,7 @@ export default class CopyModule extends VuexModule { if (type === CopyApiResponseTypeEnum.CollaborativeTextEditorElement) return true; if (type === CopyApiResponseTypeEnum.ExternalToolElement) return true; + if (type === CopyApiResponseTypeEnum.ExternalTool) return true; return false; }; From 172da6645dd1139bc2b40a200c2781ed1b98eab8 Mon Sep 17 00:00:00 2001 From: Igor Richter Date: Thu, 5 Dec 2024 11:02:49 +0100 Subject: [PATCH 18/20] - move deleted element warning alert below element - merge import room locales --- src/locales/en.ts | 6 ++-- .../board-deleted-element/DeletedElement.vue | 28 +++++++++---------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/locales/en.ts b/src/locales/en.ts index 012bc22bc6..4e0c95d93b 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -587,9 +587,9 @@ export default { "components.molecules.import.columnBoard.options.selectCourse.infoText": "Please select the course into which you would like to import the board.", "components.molecules.import.courses.label": "Course name", - "components.molecules.import.columnBoard.options.selectRoom": "Select room", - "components.molecules.import.columnBoard.options.selectRoom.infoText": - "Please select the room into which you would like to import the board.", + "components.molecules.import.columnBoard.options.selectRoom": "Select room", + "components.molecules.import.columnBoard.options.selectRoom.infoText": + "Please select the room into which you would like to import the board.", "components.molecules.import.courses.rename": "If necessary, the name of the course can be renamed: ", "components.molecules.import.courses.options.title": "Import course copy", diff --git a/src/modules/feature/board-deleted-element/DeletedElement.vue b/src/modules/feature/board-deleted-element/DeletedElement.vue index 3460ff13d0..454a4923cb 100644 --- a/src/modules/feature/board-deleted-element/DeletedElement.vue +++ b/src/modules/feature/board-deleted-element/DeletedElement.vue @@ -8,20 +8,6 @@ ref="deletedElement" :ripple="false" > - - {{ - $t( - "components.cardElement.deletedElement.warning.externalToolElement", - { - toolName: element.content.title, - } - ) - }} - + + {{ + $t( + "components.cardElement.deletedElement.warning.externalToolElement", + { + toolName: element.content.title, + } + ) + }} + From 41b0cc9b08f3684faff4a7142b0d2494853e7c53 Mon Sep 17 00:00:00 2001 From: Gordon Nicholas Date: Thu, 5 Dec 2024 15:30:23 +0100 Subject: [PATCH 19/20] N21-1506 fix missing warning text for failed board tools copy --- .../copy-result-modal/CopyResultModal.unit.ts | 17 ++++++++++++----- .../copy-result-modal/CopyResultModal.vue | 11 ++++++++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/components/copy-result-modal/CopyResultModal.unit.ts b/src/components/copy-result-modal/CopyResultModal.unit.ts index 33e514a1ff..eedd0d63f2 100644 --- a/src/components/copy-result-modal/CopyResultModal.unit.ts +++ b/src/components/copy-result-modal/CopyResultModal.unit.ts @@ -151,7 +151,7 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { ); }); - describe("when root item is a Course, has no failed file and CTL_TOOLS_COPY feature flag is enabled", () => { + describe("when there is no failed file and CTL_TOOLS_COPY & CTL_TOOLS_TAB_ENABLED feature flag is enabled", () => { describe("when the item has element of type external tool", () => { const setup = () => { const envs = envsFactory.build({ @@ -165,6 +165,7 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { title: "Course External Tool", type: CopyApiResponseTypeEnum.ExternalTool, }); + copyResultItems[0].type = CopyApiResponseTypeEnum.Course; const wrapper = createWrapper({ isOpen: true, @@ -175,7 +176,7 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { return { wrapper }; }; - it("should show the warning text for non-copyable course external tools ", () => { + it("should show the warning text for non-copyable course external tools", () => { const { wrapper } = setup(); const dialog = wrapper.findComponent(vCustomDialog); @@ -187,7 +188,7 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { }); }); - describe("when the item has no element of type external tool", () => { + describe("when there is an item of type ExternalToolElement", () => { const setup = () => { const envs = envsFactory.build({ FEATURE_CTL_TOOLS_TAB_ENABLED: true, @@ -196,6 +197,12 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { envConfigModule.setEnvs(envs); const copyResultItems = mockLessonResultItems([]); + copyResultItems[0].elements.push({ + title: "Board External Tool Element", + type: CopyApiResponseTypeEnum.ExternalToolElement, + }); + copyResultItems[0].type = CopyApiResponseTypeEnum.Course; + const wrapper = createWrapper({ isOpen: true, copyResultItems, @@ -205,13 +212,13 @@ describe("@/components/copy-result-modal/CopyResultModal", () => { return { wrapper }; }; - it("should not show the warning text for non-copyable course external tools ", () => { + it("should show the warning text for non-copyable course external tools", () => { const { wrapper } = setup(); const dialog = wrapper.findComponent(vCustomDialog); const content = dialog.findComponent(".v-card-text").text(); - expect(content).not.toContain( + expect(content).toContain( "components.molecules.copyResult.ctlTools.withFeature.info" ); }); diff --git a/src/components/copy-result-modal/CopyResultModal.vue b/src/components/copy-result-modal/CopyResultModal.vue index 44147d4288..86dee485fa 100644 --- a/src/components/copy-result-modal/CopyResultModal.vue +++ b/src/components/copy-result-modal/CopyResultModal.vue @@ -128,7 +128,9 @@ export default { title: this.$t("components.molecules.copyResult.label.files"), }, { - isShow: this.isFeatureCtlToolsEnabled && this.hasExternalTool, + isShow: + this.isFeatureCtlToolsEnabled && + (this.hasExternalTool || this.hasExternalToolElement), text: this.externalToolsInfoText, title: this.$t("components.molecules.copyResult.label.externalTools"), }, @@ -212,9 +214,16 @@ export default { CopyApiResponseTypeEnum.ExternalTool ); }, + hasExternalToolElement() { + return this.hasElementOfType( + this.items, + CopyApiResponseTypeEnum.ExternalToolElement + ); + }, }, methods: { hasElementOfType(items, types) { + console.log(JSON.stringify(items)); let found = false; items.forEach((item) => { if (found) return; From cc42f04a44c30542b6c25964ec557f44a5db7cd0 Mon Sep 17 00:00:00 2001 From: Gordon Nicholas Date: Fri, 6 Dec 2024 09:30:06 +0100 Subject: [PATCH 20/20] N21-1506 review changes --- .../copy-result-modal/CopyResultModal.vue | 1 - .../CopyResultModalListItem.unit.ts | 37 ------ .../CopyResultModalListItem.vue | 4 - src/components/share/ImportModal.vue | 122 +++++++++--------- src/components/share/ShareModal.vue | 2 - src/store/copy.ts | 1 - 6 files changed, 59 insertions(+), 108 deletions(-) diff --git a/src/components/copy-result-modal/CopyResultModal.vue b/src/components/copy-result-modal/CopyResultModal.vue index 86dee485fa..942a81b468 100644 --- a/src/components/copy-result-modal/CopyResultModal.vue +++ b/src/components/copy-result-modal/CopyResultModal.vue @@ -223,7 +223,6 @@ export default { }, methods: { hasElementOfType(items, types) { - console.log(JSON.stringify(items)); let found = false; items.forEach((item) => { if (found) return; diff --git a/src/components/copy-result-modal/CopyResultModalListItem.unit.ts b/src/components/copy-result-modal/CopyResultModalListItem.unit.ts index 155ead3273..046ccd5bf1 100644 --- a/src/components/copy-result-modal/CopyResultModalListItem.unit.ts +++ b/src/components/copy-result-modal/CopyResultModalListItem.unit.ts @@ -171,41 +171,4 @@ describe("@/components/copy-result-modal/CopyResultModalListItem", () => { expect(wrapper.vm.getElementTypeName(constant)).toBe(languageConstant); }); }); - - describe("when the item props has course tools in its elements field", () => { - const setup = () => { - const elements = Array.from(mockItem.elements); - const courseToolTitle = "Course External Tool"; - elements.push({ - title: courseToolTitle, - type: CopyApiResponseTypeEnum.ExternalTool, - }); - const item = { ...mockItem }; - item.elements = elements; - - return { item, courseToolTitle }; - }; - - it("should not show course tools in the list", () => { - const { item, courseToolTitle } = setup(); - - const wrapper = createWrapper({ item }); - - expect(wrapper.vm.aggregatedElements()).not.toContain( - expect.objectContaining({ - type: "components.molecules.copyResult.label.unknown", - title: courseToolTitle, - }) - ); - - const elements = wrapper.findAll( - '[data-testid="copy-result-list-item-element-info"]' - ); - elements.forEach((elementInfo) => { - expect(elementInfo.text()).not.toContain( - "components.molecules.copyResult.label.unknown" - ); - }); - }); - }); }); diff --git a/src/components/copy-result-modal/CopyResultModalListItem.vue b/src/components/copy-result-modal/CopyResultModalListItem.vue index 157b753c5c..b791e5e1f2 100644 --- a/src/components/copy-result-modal/CopyResultModalListItem.vue +++ b/src/components/copy-result-modal/CopyResultModalListItem.vue @@ -131,10 +131,6 @@ export default { aggregatedElements() { const elementMap = new Map(); for (const element of this.elements) { - if (element.type === CopyApiResponseTypeEnum.ExternalTool) { - continue; - } - const typeName = this.getElementType(element); if (elementMap.has(typeName)) { const data = elementMap.get(typeName); diff --git a/src/components/share/ImportModal.vue b/src/components/share/ImportModal.vue index e1d2ac3f6e..da9d343e9a 100644 --- a/src/components/share/ImportModal.vue +++ b/src/components/share/ImportModal.vue @@ -22,69 +22,65 @@
        -
        -
        - {{ - t("components.molecules.import.options.tableHeader.InfoText") - }} -
          -
        • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.personalData" - ) - }} -
        • -
        • - {{ - t( - "components.molecules.shareImport.options.ctlTools.infoText.unavailable" - ) - }} -
        • -
        • - {{ - t( - "components.molecules.shareImport.options.ctlTools.infoText.protected" - ) - }} -
        • -
        • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.courseFiles" - ) - }} -
        • -
        • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.etherpad" - ) - }} -
        • -
        • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.geogebra" - ) - }} -
        • -
        • - {{ - t( - "components.molecules.shareImport.options.restrictions.infoText.courseGroups" - ) - }} -
        • -
        -
        +
        + {{ t("components.molecules.import.options.tableHeader.InfoText") }} +
          +
        • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.personalData" + ) + }} +
        • +
        • + {{ + t( + "components.molecules.shareImport.options.ctlTools.infoText.unavailable" + ) + }} +
        • +
        • + {{ + t( + "components.molecules.shareImport.options.ctlTools.infoText.protected" + ) + }} +
        • +
        • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.courseFiles" + ) + }} +
        • +
        • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.etherpad" + ) + }} +
        • +
        • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.geogebra" + ) + }} +
        • +
        • + {{ + t( + "components.molecules.shareImport.options.restrictions.infoText.courseGroups" + ) + }} +
        • +
        diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index effd236e1f..c33befa9a3 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -145,8 +145,6 @@ const step = computed(() => shareModule.getShareUrl === undefined ? "firstStep" : "secondStep" ); -const isCourse = computed(() => props.type === "courses"); - const modalOptions: Record< ShareModalStep, { title: string; actionButtons: string[] } diff --git a/src/store/copy.ts b/src/store/copy.ts index 42eaa4b646..3bbb9a45fc 100644 --- a/src/store/copy.ts +++ b/src/store/copy.ts @@ -217,7 +217,6 @@ export default class CopyModule extends VuexModule { if (type === CopyApiResponseTypeEnum.CollaborativeTextEditorElement) return true; if (type === CopyApiResponseTypeEnum.ExternalToolElement) return true; - if (type === CopyApiResponseTypeEnum.ExternalTool) return true; return false; };