From c59a05697ab85ce15a70e54d55dd55eb99e55a7e Mon Sep 17 00:00:00 2001 From: NFriedo <69233063+NFriedo@users.noreply.github.com> Date: Thu, 6 Mar 2025 08:52:23 +0100 Subject: [PATCH 1/4] BC-9146 - Update vue-router from 4.4.5 to 4.5.0 (#3582) --- package-lock.json | 6 ++++-- package.json | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d641578a6..e4ed7bb959 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "vue": "^3.4.21", "vue-dompurify-html": "^4.1.4", "vue-i18n": "^9.14.2", - "vue-router": "^4.2.4", + "vue-router": "^4.5.0", "vue3-mq": "^3.1.3", "vuedraggable": "^4.1.0", "vuetify": "^3.7.12", @@ -14282,7 +14282,9 @@ } }, "node_modules/vue-router": { - "version": "4.4.5", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", + "integrity": "sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" diff --git a/package.json b/package.json index 9fb2240f62..a0e7f8cec9 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "vue": "^3.4.21", "vue-dompurify-html": "^4.1.4", "vue-i18n": "^9.14.2", - "vue-router": "^4.2.4", + "vue-router": "^4.5.0", "vue3-mq": "^3.1.3", "vuedraggable": "^4.1.0", "vuetify": "^3.7.12", From d953d103d28d4261667ae149c89abf2eb25870a8 Mon Sep 17 00:00:00 2001 From: odalys-dataport <82401838+odalys-dataport@users.noreply.github.com> Date: Thu, 6 Mar 2025 09:36:33 +0100 Subject: [PATCH 2/4] BC-8011 - Fix & evaluate disabled linter rules (#3574) * removes unused error parameter in catch blocks * disables material-icon-imports in eslint config * refactors some tests * removes MultiGuard (now implemented in vue-router itself) * use empty return to avoid no-empty-function warning in boardRestApi and cardRestApi * implements errorMessages in computed in BoardAnyTitleInput * removes unused vars --------- Co-authored-by: wolfganggreschus --- __mocks__/maska.ts | 2 +- eslint.config.js | 6 + ...rnal-tool-section-utils.composable.unit.ts | 1 - .../ExternalToolConfigurator.vue | 2 +- .../external-tool-url-insertion.composable.ts | 2 +- src/components/icons/material/index.ts | 1 - .../LernstoreCollectionDetailView.vue | 2 +- .../lern-store/LernstoreDetailView.vue | 7 +- src/components/share/ImportFlow.vue | 2 +- .../templates/TasksDashboardMain.unit.ts | 75 +++------ src/composables/copy.ts | 2 +- src/main.ts | 2 +- .../board/CardRequestPool.composable.unit.ts | 8 - .../boardActions/boardRestApi.composable.ts | 7 +- .../boardActions/boardSocketApi.composable.ts | 2 +- .../cardActions/cardRestApi.composable.ts | 5 +- .../cardActions/cardSocketApi.composable.ts | 1 - .../cardSocketApi.composable.unit.ts | 1 - .../board-file-element/FileContentElement.vue | 2 +- .../components/LinkContentElementDisplay.vue | 2 +- .../MetaTagExtractorApi.composable.ts | 2 +- ...ubmissionContentElementState.composable.ts | 6 +- src/modules/feature/board/board/Board.vue | 4 +- .../board/shared/BoardAnyTitleInput.vue | 15 +- .../course-sync/EndCourseSyncDialog.vue | 2 +- .../StartExistingCourseSyncDialog.vue | 2 +- .../room-details/SelectBoardLayoutDialog.vue | 3 +- .../util/board/shareBoardLink.composable.ts | 2 +- src/modules/util/validators/validators.ts | 2 +- src/pages/LernStoreOverview.page.vue | 4 +- src/pages/NewsCreate.page.vue | 2 +- src/pages/NewsEdit.page.vue | 4 +- .../administration/StudentOverview.page.vue | 6 +- .../administration/TeacherOverview.page.vue | 6 +- .../administration/student-overview.unit.js | 6 +- .../administration/teacher-overview.unit.js | 7 +- .../CourseRoomDetails.page.unit.ts | 9 - .../course-rooms/CourseRoomList.page.unit.ts | 24 +-- src/pages/h5p/H5PEditor.page.vue | 2 +- src/plugins/user.d.ts | 2 - src/router/guards/index.ts | 1 - src/router/guards/multi.guard.ts | 59 ------- src/router/guards/multi.guard.unit.ts | 159 ------------------ src/router/routes.ts | 31 +--- src/store/common-cartridge-import.ts | 2 +- src/store/content.ts | 2 +- src/store/course-room-details.ts | 9 +- src/store/course-room-details.unit.ts | 79 +++++---- src/store/course-room-list.unit.ts | 43 +++-- src/store/courses.js | 2 +- src/store/env-config.ts | 2 +- src/store/import-users.unit.ts | 52 +++--- src/vue-i18n.d.ts | 2 - tests/test-utils/mock-store-module.ts | 13 +- tests/test-utils/mockDataTasks.ts | 2 - tests/test-utils/mountComposable.ts | 3 +- tests/unit/stubs.js | 1 - 57 files changed, 205 insertions(+), 499 deletions(-) delete mode 100644 src/router/guards/multi.guard.ts delete mode 100644 src/router/guards/multi.guard.unit.ts diff --git a/__mocks__/maska.ts b/__mocks__/maska.ts index 2e6733afbf..ad0d93c879 100644 --- a/__mocks__/maska.ts +++ b/__mocks__/maska.ts @@ -1,8 +1,8 @@ /** * This is a mock for the vMaska directive exported by maska package. */ +import { Jest as jest } from "@jest/environment"; -// eslint-disable-next-line no-undef const vMaska = jest.fn(); export { vMaska }; diff --git a/eslint.config.js b/eslint.config.js index 901e9afb46..2cf7696a36 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -140,4 +140,10 @@ module.exports = [ }, }, }, + { + files: ["src/components/icons/material/index.ts"], + rules: { + "schulcloud/material-icon-imports": "off", + }, + }, ]; diff --git a/src/components/administration/external-tool-section-utils.composable.unit.ts b/src/components/administration/external-tool-section-utils.composable.unit.ts index e02f920aea..944ebb1fb4 100644 --- a/src/components/administration/external-tool-section-utils.composable.unit.ts +++ b/src/components/administration/external-tool-section-utils.composable.unit.ts @@ -6,7 +6,6 @@ import { } from "@/serverApi/v3"; import { SchoolExternalTool } from "@/store/external-tool"; import SchoolExternalToolsModule from "@/store/school-external-tools"; -import { DataTableHeader } from "@/types/vuetify"; import { schoolExternalToolFactory, schoolExternalToolResponseFactory, diff --git a/src/components/external-tools/configuration/ExternalToolConfigurator.vue b/src/components/external-tools/configuration/ExternalToolConfigurator.vue index d92ffcb695..72e5d2c0a4 100644 --- a/src/components/external-tools/configuration/ExternalToolConfigurator.vue +++ b/src/components/external-tools/configuration/ExternalToolConfigurator.vue @@ -336,7 +336,7 @@ const pasteFromClipboard = async () => { await nextTick(); updateSearchInput(text); - } catch (err) { + } catch { notifierModule.show({ text: t("pages.tool.select.clipboard.error"), status: "error", diff --git a/src/components/external-tools/configuration/external-tool-url-insertion.composable.ts b/src/components/external-tools/configuration/external-tool-url-insertion.composable.ts index 3654701270..cdcb42f0ef 100644 --- a/src/components/external-tools/configuration/external-tool-url-insertion.composable.ts +++ b/src/components/external-tools/configuration/external-tool-url-insertion.composable.ts @@ -5,7 +5,7 @@ export function useExternalToolUrlInsertion() { try { new URL(text); return true; - } catch (err) { + } catch { return false; } }; diff --git a/src/components/icons/material/index.ts b/src/components/icons/material/index.ts index 8a642963d5..e15593b60e 100644 --- a/src/components/icons/material/index.ts +++ b/src/components/icons/material/index.ts @@ -1,4 +1,3 @@ -/* eslint-disable schulcloud/material-icon-imports */ import { mdiAccountBoxOutline, mdiAccountEditOutline, diff --git a/src/components/lern-store/LernstoreCollectionDetailView.vue b/src/components/lern-store/LernstoreCollectionDetailView.vue index 8db9074959..587a903ccb 100644 --- a/src/components/lern-store/LernstoreCollectionDetailView.vue +++ b/src/components/lern-store/LernstoreCollectionDetailView.vue @@ -267,7 +267,7 @@ export default defineComponent({ // Clears the previous collection elements before rendering the new ones contentModule.clearElements(); await contentModule.getElements(this.query); - } catch (error) { + } catch { notifierModule.show({ text: this.$t("pages.content.notification.lernstoreNotAvailable"), status: "error", diff --git a/src/components/lern-store/LernstoreDetailView.vue b/src/components/lern-store/LernstoreDetailView.vue index 44cc93a208..3a42c5ed17 100644 --- a/src/components/lern-store/LernstoreDetailView.vue +++ b/src/components/lern-store/LernstoreDetailView.vue @@ -41,7 +41,6 @@