Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 97 additions & 9 deletions package-lock.json

Large diffs are not rendered by default.

4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
"@vueuse/core": "^13.3.0",
"@vueuse/integrations": "^13.3.0",
"axios": "^1.12.2",
"canvas": "^3.1.0",
"dayjs": "^1.11.10",
"focus-trap": "^7.6.5",
"katex": "^0.16.21",
Expand Down Expand Up @@ -98,8 +97,7 @@
"overrides": {
"@openapitools/openapi-generator-cli": {
"axios": "$axios"
},
"canvas": "^3.1.0"
}
},
"engines": {
"node": "22",
Expand Down
1 change: 1 addition & 0 deletions src/locales/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1146,6 +1146,7 @@ export default {
"Die Migration kann nicht gestartet werden, da das Ziel-Login-System und das derzeitige Login-System Ihrer Schule identisch sind!",
"pages.administration.migration.moin_schule_system_not_found": "Das moin.schule-System kann nicht gefunden werden!",
"pages.administration.or": "oder",
"pages.administration.printQr.printTabTitle": "QR-Codes teilen",
"pages.administration.printQr.printPageTitle": "Zum Registrieren bitte den QR Code scannen.",
"pages.administration.printQr.emptyUser": "Dieser Nutzer wurde bereits registriert",
"pages.administration.printQr.error":
Expand Down
1 change: 1 addition & 0 deletions src/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1136,6 +1136,7 @@ export default {
"The migration cannot start because the target login system and your school's current login system are the same!",
"pages.administration.migration.moin_schule_system_not_found": "Cannot find moin.schule system!",
"pages.administration.or": "or",
"pages.administration.printQr.printTabTitle": "Share QR-Codes.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a full stop here that isn't present for the other translations

"pages.administration.printQr.printPageTitle": "Please scan the QR code to register.",
"pages.administration.printQr.emptyUser": "The selected user(s) have already been registered",
"pages.administration.printQr.error": "The registration links could not be generated",
Expand Down
1 change: 1 addition & 0 deletions src/locales/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1156,6 +1156,7 @@ export default {
"¡La migración no puede comenzar porque el sistema de inicio de sesión de destino y el sistema de inicio de sesión actual de su escuela son el mismo!",
"pages.administration.migration.moin_schule_system_not_found": "¡No puedo encontrar el sistema moin.schule!",
"pages.administration.or": "o",
"pages.administration.printQr.printTabTitle": "Compartir códigos QR",
"pages.administration.printQr.printPageTitle": "Por favor, escanea el código QR para registrarte.",
"pages.administration.printQr.emptyUser": "L{'@'}s usuari{'@'}s seleccionad{'@'}s ya han sido registrad{'@'}s",
"pages.administration.printQr.error": "No se han podido generar los enlaces de registro",
Expand Down
1 change: 1 addition & 0 deletions src/locales/uk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1144,6 +1144,7 @@ export default {
"Неможливо розпочати міграцію, оскільки цільова система входу та поточна система входу у вашій школі збігаються!",
"pages.administration.migration.moin_schule_system_not_found": "Не вдається знайти систему moin.schule!",
"pages.administration.or": "або",
"pages.administration.printQr.printTabTitle": "Поділитися QR-кодами",
"pages.administration.printQr.printPageTitle": "Будь ласка, відскануйте QR-код для реєстрації.",
"pages.administration.printQr.emptyUser": "Вибраний користувач(-і) вже зареєстрований(-і)",
"pages.administration.printQr.error": "Не вдалося згенерувати посилання для реєстрації",
Expand Down
2 changes: 1 addition & 1 deletion src/modules/ui/layout/topbar/PageShare.vue
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@
</template>

<script setup lang="ts">
import { printQrCodes } from "@/utils/qr-code.utils";
import { mdiContentCopy, mdiPrinter } from "@icons/material";
import { QRCode } from "@ui-qr-code";
import { printQrCodes } from "@util-browser";

const url = window.location.href;
const openPrintMenu = () => {
Expand Down
1 change: 1 addition & 0 deletions src/modules/util/browser/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./qr-code.utils";
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import { useI18nGlobal } from "@/plugins/i18n";
import { logger } from "@util-logger";
import QrcodeVue from "qrcode.vue";
import { h, render } from "vue";

export const printQrCodes = (qrCodeItems: { title?: string; url: string }[], pageTitle?: string) => {
const printWindow = window.open("", "_blank");
const { t } = useI18nGlobal();

if (printWindow) {
printWindow.document.documentElement.innerHTML = `
<html>
<head>
<title>Share QR-Codes</title>
<title>${t("pages.administration.printQr.printTabTitle")}</title>
<style>
@media print {
@page {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { printQrCodes } from "./qr-code.utils";
import { createMock } from "@golevelup/ts-vitest";
import { createTestingPinia } from "@pinia/testing";
import { setActivePinia } from "pinia";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

describe("printQrCodes", () => {
Expand All @@ -16,6 +18,7 @@ describe("printQrCodes", () => {
});

beforeEach(() => {
setActivePinia(createTestingPinia());
vi.spyOn(window, "open").mockReturnValue(mockWindow);
});

Expand Down
2 changes: 1 addition & 1 deletion src/pages/administration/StudentOverview.page.vue
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ import { printDate } from "@/plugins/datetime";
import { Permission } from "@/serverApi/v3";
import { schoolsModule } from "@/store";
import { buildPageTitle } from "@/utils/pageTitle";
import { printQrCodes } from "@/utils/qr-code.utils";
import { notifyError, notifyInfo, notifySuccess } from "@data-app";
import { useEnvConfig } from "@data-env";
import {
Expand All @@ -136,6 +135,7 @@ import {
mdiPlus,
mdiQrcode,
} from "@icons/material";
import { printQrCodes } from "@util-browser";
import { reactive } from "vue";
import { mapGetters } from "vuex";

Expand Down
2 changes: 1 addition & 1 deletion src/pages/administration/TeacherOverview.page.vue
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@ import { printDate } from "@/plugins/datetime";
import { Permission, RoleName } from "@/serverApi/v3";
import { schoolsModule } from "@/store";
import { buildPageTitle } from "@/utils/pageTitle";
import { printQrCodes } from "@/utils/qr-code.utils";
import { notifyError, notifyInfo, notifySuccess, useAppStore } from "@data-app";
import { useEnvConfig } from "@data-env";
import {
Expand All @@ -126,6 +125,7 @@ import {
mdiPlus,
mdiQrcode,
} from "@icons/material";
import { printQrCodes } from "@util-browser";
import { reactive } from "vue";
import { mapGetters } from "vuex";

Expand Down
12 changes: 11 additions & 1 deletion src/plugins/i18n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,14 @@ const localCreateI18n = () => {
return i18n;
};

export { localCreateI18n as createI18n };
let i18nInstance: ReturnType<typeof localCreateI18n>;

const createTypedI18nInstance = () => {
if (!i18nInstance) {
i18nInstance = localCreateI18n();
}
return i18nInstance;
};
export { createTypedI18nInstance as createI18n };

export const useI18nGlobal = () => createTypedI18nInstance()?.global;
1 change: 1 addition & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
"@util-board": ["src/modules/util/board"],
"@util-validators": ["src/modules/util/validators"],
"@util-vue": ["src/modules/util/vue"],
"@util-browser": ["src/modules/util/browser"],
"@util-input-masks": ["src/modules/util/input-masks"],
"@util-device-detection": ["src/modules/util/device-detection"],
"@util-error-notification": ["src/modules/util/error-notification"],
Expand Down
Loading