From 2fea27dc94dc88cd8a33b29993aa34e7a61b9a7e Mon Sep 17 00:00:00 2001 From: Sebastian Mueller Date: Mon, 18 Aug 2025 14:59:52 +0200 Subject: [PATCH 01/13] add focus trap to board layout dialog --- .../SelectBoardLayoutDialog.unit.ts | 3 +- .../room-details/SelectBoardLayoutDialog.vue | 61 ++++++++++--------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/modules/ui/room-details/SelectBoardLayoutDialog.unit.ts b/src/modules/ui/room-details/SelectBoardLayoutDialog.unit.ts index f92ff9a868..2104ac2d8f 100644 --- a/src/modules/ui/room-details/SelectBoardLayoutDialog.unit.ts +++ b/src/modules/ui/room-details/SelectBoardLayoutDialog.unit.ts @@ -11,6 +11,8 @@ describe("@ui-room-details/SelectBoardLayoutDialog", () => { const wrapper = mount(SelectBoardLayoutDialog, { global: { plugins: [createTestingVuetify(), createTestingI18n()], + stubs: { UseFocusTrap: true }, // unfortuantely it is not as straightward to test the focus trap + renderStubDefaultSlot: true, }, props: { modelValue: true, @@ -23,7 +25,6 @@ describe("@ui-room-details/SelectBoardLayoutDialog", () => { it("should be rendered correctly", async () => { const { wrapper } = setup(); - expect(wrapper.exists()).toBe(true); }); diff --git a/src/modules/ui/room-details/SelectBoardLayoutDialog.vue b/src/modules/ui/room-details/SelectBoardLayoutDialog.vue index 848b7d200a..bf557a8eb3 100644 --- a/src/modules/ui/room-details/SelectBoardLayoutDialog.vue +++ b/src/modules/ui/room-details/SelectBoardLayoutDialog.vue @@ -1,35 +1,37 @@ @@ -40,6 +42,7 @@ import { ExtendedIconBtn } from "@ui-extended-icon-btn"; import { PropType } from "vue"; import { useI18n } from "vue-i18n"; import { PickerOption } from "./types"; +import { UseFocusTrap } from "@vueuse/integrations/useFocusTrap/component"; const isOpen = defineModel({ type: Boolean, From c59c520b8f648ef42f41bb9b81bcfb173c01690f Mon Sep 17 00:00:00 2001 From: Sebastian Mueller Date: Tue, 19 Aug 2025 13:36:59 +0200 Subject: [PATCH 02/13] replace legacy usage of $t with t for i18n --- src/modules/ui/room-details/SelectBoardLayoutDialog.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/ui/room-details/SelectBoardLayoutDialog.vue b/src/modules/ui/room-details/SelectBoardLayoutDialog.vue index bf557a8eb3..56373764cd 100644 --- a/src/modules/ui/room-details/SelectBoardLayoutDialog.vue +++ b/src/modules/ui/room-details/SelectBoardLayoutDialog.vue @@ -6,7 +6,7 @@ class="text-h4 text-break px-6 pt-4" data-testid="board-layout-dialog-title" > - {{ $t("pages.room.dialog.boardLayout.title") }} + {{ t("pages.room.dialog.boardLayout.title") }} - {{ $t("common.labels.close") }} + {{ t("common.labels.close") }} From 922c82b24edc50d6065941badc51816d69ebbf8a Mon Sep 17 00:00:00 2001 From: Sebastian Mueller Date: Tue, 19 Aug 2025 13:39:00 +0200 Subject: [PATCH 03/13] fix keyboard handling in Roop Copy Info Dialog --- src/modules/feature/room/RoomCopyFlow.vue | 11 +- .../feature/room/RoomCopyInfoDialog.vue | 109 +++++++++--------- 2 files changed, 64 insertions(+), 56 deletions(-) diff --git a/src/modules/feature/room/RoomCopyFlow.vue b/src/modules/feature/room/RoomCopyFlow.vue index f244c96a4a..1b869b2b09 100644 --- a/src/modules/feature/room/RoomCopyFlow.vue +++ b/src/modules/feature/room/RoomCopyFlow.vue @@ -3,6 +3,7 @@ v-if="isRoomCopyInfoDialogOpen" @copy:cancel="onCancelCopy" @copy:confirm="onConfirmCopy" + @copy:close="onClose" /> @@ -42,14 +43,18 @@ onMounted(() => { isLoadingDialogOpen.value = false; }); -const onCancelCopy = () => { +const onClose = () => { isRoomCopyInfoDialogOpen.value = false; - emit("copy:cancel"); emit("copy:ended"); }; +const onCancelCopy = () => { + emit("copy:cancel"); + onClose(); +}; + const onConfirmCopy = async () => { - isRoomCopyInfoDialogOpen.value = false; + onClose(); isLoadingDialogOpen.value = true; try { diff --git a/src/modules/feature/room/RoomCopyInfoDialog.vue b/src/modules/feature/room/RoomCopyInfoDialog.vue index e626584cc1..28ba5f8727 100644 --- a/src/modules/feature/room/RoomCopyInfoDialog.vue +++ b/src/modules/feature/room/RoomCopyInfoDialog.vue @@ -1,64 +1,67 @@ From 09c30ec7e0a559f98dbfbbf59fe89affffb01099 Mon Sep 17 00:00:00 2001 From: Sebastian Mueller Date: Tue, 19 Aug 2025 15:03:25 +0200 Subject: [PATCH 04/13] use v-for for list items --- .../feature/room/RoomCopyInfoDialog.vue | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/modules/feature/room/RoomCopyInfoDialog.vue b/src/modules/feature/room/RoomCopyInfoDialog.vue index 28ba5f8727..4b1a999a71 100644 --- a/src/modules/feature/room/RoomCopyInfoDialog.vue +++ b/src/modules/feature/room/RoomCopyInfoDialog.vue @@ -17,21 +17,8 @@ {{ t("feature-room.CopyInfoDialog.text.alert.followingContent") }}

    -
  • - {{ - t("feature-room.CopyInfoDialog.text.alert.membersPermissions") - }} -
  • -
  • - {{ t("feature-room.CopyInfoDialog.text.alert.Etherpad") }} -
  • -
  • - {{ t("feature-room.CopyInfoDialog.text.alert.whiteboard") }} -
  • -
  • - {{ - t("feature-room.CopyInfoDialog.text.alert.protectedSettings") - }} +
  • + {{ bulletPoint }}
@@ -51,7 +38,7 @@ data-testid="copy-info-dialog-confirm" @click="$emit('copy:confirm')" > - {{ $t("common.actions.duplicate") }} + {{ t("common.actions.duplicate") }} @@ -69,5 +56,12 @@ const { t } = useI18n(); const isOpen = ref(true); +const infoListItems = [ + "feature-room.CopyInfoDialog.text.alert.membersPermissions", + "feature-room.CopyInfoDialog.text.alert.Etherpad", + "feature-room.CopyInfoDialog.text.alert.whiteboard", + "feature-room.CopyInfoDialog.text.alert.protectedSettings", +].map(t); + defineEmits(["copy:cancel", "copy:confirm", "copy:close"]); From f849f592ff0ebb49ef3426f4c7db585cb3e90d92 Mon Sep 17 00:00:00 2001 From: Sebastian Mueller Date: Tue, 19 Aug 2025 17:04:32 +0200 Subject: [PATCH 05/13] WIP: refactor ShareModal --- src/components/organisms/vCustomDialog.vue | 12 +- src/components/share/ShareModal.vue | 191 +++++++----------- .../feature/room/RoomCopyInfoDialog.vue | 2 +- 3 files changed, 80 insertions(+), 125 deletions(-) diff --git a/src/components/organisms/vCustomDialog.vue b/src/components/organisms/vCustomDialog.vue index 2af86be4b1..58ed5c85e1 100644 --- a/src/components/organisms/vCustomDialog.vue +++ b/src/components/organisms/vCustomDialog.vue @@ -83,6 +83,14 @@ diff --git a/src/modules/feature/room/RoomCopyInfoDialog.vue b/src/modules/feature/room/RoomCopyInfoDialog.vue index 4b1a999a71..b3b05792ab 100644 --- a/src/modules/feature/room/RoomCopyInfoDialog.vue +++ b/src/modules/feature/room/RoomCopyInfoDialog.vue @@ -8,7 +8,7 @@ > {{ t("feature-room.CopyInfoDialog.title") }} - +

{{ t("feature-room.CopyInfoDialog.text.nextStep") }}

From d5d1d8dd34b9aa6cc299f7dd6d6da5426db4c51b Mon Sep 17 00:00:00 2001 From: Sebastian Mueller Date: Tue, 19 Aug 2025 18:15:02 +0200 Subject: [PATCH 06/13] WIP: remove Custom Dialog usage from Sahre Modal --- src/components/share/ShareModal.vue | 158 ++++++++++++++-------------- 1 file changed, 78 insertions(+), 80 deletions(-) diff --git a/src/components/share/ShareModal.vue b/src/components/share/ShareModal.vue index e8044108e2..3607853951 100644 --- a/src/components/share/ShareModal.vue +++ b/src/components/share/ShareModal.vue @@ -1,73 +1,86 @@ diff --git a/src/modules/ui/room-details/SelectBoardLayoutDialog.vue b/src/modules/ui/room-details/SelectBoardLayoutDialog.vue index 56373764cd..df5e1ff2e7 100644 --- a/src/modules/ui/room-details/SelectBoardLayoutDialog.vue +++ b/src/modules/ui/room-details/SelectBoardLayoutDialog.vue @@ -1,6 +1,6 @@