From e1659e90a10214939591ac75d0e12ea0a51a2e1a Mon Sep 17 00:00:00 2001 From: Kristina Fefelova Date: Fri, 15 Nov 2024 12:06:20 +0400 Subject: [PATCH] Show control bar only for active meeting Signed-off-by: Kristina Fefelova --- models/love/src/index.ts | 4 ---- .../src/components/PanelControlBar.svelte | 15 ++++----------- .../src/components/RoomPopup.svelte | 4 ++-- .../src/components/RoomPreview.svelte | 4 ++-- .../src/components/widget/MeetingWidget.svelte | 4 ++-- plugins/love-resources/src/stores.ts | 2 +- plugins/love-resources/src/utils.ts | 10 +++++----- 7 files changed, 16 insertions(+), 27 deletions(-) diff --git a/models/love/src/index.ts b/models/love/src/index.ts index eb5f9b04be..9f36003abe 100644 --- a/models/love/src/index.ts +++ b/models/love/src/index.ts @@ -608,10 +608,6 @@ export function createModel (builder: Builder): void { searchDisabled: true }) - builder.mixin(love.class.Room, core.class.Class, view.mixin.ObjectPanelFooter, { - editor: love.component.PanelControlBar - }) - builder.mixin(love.class.MeetingMinutes, core.class.Class, view.mixin.ObjectPanelFooter, { editor: love.component.PanelControlBar }) diff --git a/plugins/love-resources/src/components/PanelControlBar.svelte b/plugins/love-resources/src/components/PanelControlBar.svelte index 2ba53ebbf1..48f60858a5 100644 --- a/plugins/love-resources/src/components/PanelControlBar.svelte +++ b/plugins/love-resources/src/components/PanelControlBar.svelte @@ -14,22 +14,15 @@ --> -{#if $currentRoom && showControlBar($currentRoom, $location, $myOffice)} +{#if $currentRoom && $currentMeetingMinutes?._id === object._id}
diff --git a/plugins/love-resources/src/components/RoomPopup.svelte b/plugins/love-resources/src/components/RoomPopup.svelte index 4b0b7f85b3..d5a8bd3423 100644 --- a/plugins/love-resources/src/components/RoomPopup.svelte +++ b/plugins/love-resources/src/components/RoomPopup.svelte @@ -43,7 +43,7 @@ import { getObjectLinkFragment } from '@hcengineering/view-resources' import { getClient } from '@hcengineering/presentation' import love from '../plugin' - import { currentRoom, infos, invites, myInfo, myOffice, myRequests, meetingMinutesStore } from '../stores' + import { currentRoom, infos, invites, myInfo, myOffice, myRequests, currentMeetingMinutes } from '../stores' import { getRoomName, isCameraEnabled, @@ -109,7 +109,7 @@ } async function back (): Promise { - const meetingMinutes = $meetingMinutesStore + const meetingMinutes = $currentMeetingMinutes if (meetingMinutes !== undefined) { const hierarchy = client.getHierarchy() const panelComponent = hierarchy.classHierarchyMixin( diff --git a/plugins/love-resources/src/components/RoomPreview.svelte b/plugins/love-resources/src/components/RoomPreview.svelte index ba871c9164..a1783be146 100644 --- a/plugins/love-resources/src/components/RoomPreview.svelte +++ b/plugins/love-resources/src/components/RoomPreview.svelte @@ -24,7 +24,7 @@ import { get } from 'svelte/store' import love from '../plugin' - import { myInfo, selectedRoomPlace, currentRoom, meetingMinutesStore } from '../stores' + import { myInfo, selectedRoomPlace, currentRoom, currentMeetingMinutes } from '../stores' import { getRoomLabel, lk } from '../utils' import PersonActionPopup from './PersonActionPopup.svelte' import RoomLanguage from './RoomLanguage.svelte' @@ -70,7 +70,7 @@ if ($currentRoom?._id === room._id) { const sid = await lk.getSid() const meetingMinutes = - get(meetingMinutesStore) ?? (await client.findOne(love.class.MeetingMinutes, { sid, attachedTo: room._id })) + get(currentMeetingMinutes) ?? (await client.findOne(love.class.MeetingMinutes, { sid, attachedTo: room._id })) if (meetingMinutes === undefined) { await openDoc(hierarchy, room) } else { diff --git a/plugins/love-resources/src/components/widget/MeetingWidget.svelte b/plugins/love-resources/src/components/widget/MeetingWidget.svelte index 77824d20d1..91b854c640 100644 --- a/plugins/love-resources/src/components/widget/MeetingWidget.svelte +++ b/plugins/love-resources/src/components/widget/MeetingWidget.svelte @@ -21,7 +21,7 @@ import love from '../../plugin' import VideoTab from './VideoTab.svelte' import { isCurrentInstanceConnected, lk } from '../../utils' - import { currentRoom, meetingMinutesStore } from '../../stores' + import { currentRoom, currentMeetingMinutes } from '../../stores' import ChatTab from './ChatTab.svelte' import TranscriptionTab from './TranscriptionTab.svelte' @@ -61,7 +61,7 @@ meetingQuery.query(love.class.MeetingMinutes, { sid, attachedTo: room._id }, async (res) => { meetingMinutes = res[0] if (meetingMinutes) { - meetingMinutesStore.set(meetingMinutes) + currentMeetingMinutes.set(meetingMinutes) } isMeetingMinutesLoaded = true }) diff --git a/plugins/love-resources/src/stores.ts b/plugins/love-resources/src/stores.ts index 6759bdc783..26a1538a13 100644 --- a/plugins/love-resources/src/stores.ts +++ b/plugins/love-resources/src/stores.ts @@ -60,7 +60,7 @@ export const activeInvites = derived(invites, (val) => { export const myPreferences = writable() export let $myPreferences: DevicesPreference | undefined -export const meetingMinutesStore = writable(undefined) +export const currentMeetingMinutes = writable(undefined) export const selectedRoomPlace = writable<{ _id: Ref, x: number, y: number } | undefined>(undefined) function filterParticipantInfo (value: ParticipantInfo[]): ParticipantInfo[] { diff --git a/plugins/love-resources/src/utils.ts b/plugins/love-resources/src/utils.ts index 6518ecd7c6..c44b8b300e 100644 --- a/plugins/love-resources/src/utils.ts +++ b/plugins/love-resources/src/utils.ts @@ -82,7 +82,7 @@ import { openDoc } from '@hcengineering/view-resources' import { sendMessage } from './broadcast' import love from './plugin' -import { $myPreferences, currentRoom, meetingMinutesStore, selectedRoomPlace } from './stores' +import { $myPreferences, currentRoom, currentMeetingMinutes, selectedRoomPlace } from './stores' import RoomSettingsPopup from './components/RoomSettingsPopup.svelte' export const selectedCamId = 'selectedDevice_cam' @@ -478,7 +478,7 @@ function closeMeetingMinutes (): void { const loc = getCurrentLocation() if (loc.path[2] === loveId) { - const meetingMinutes = get(meetingMinutesStore) + const meetingMinutes = get(currentMeetingMinutes) const panel = get(panelstore).panel const { _id } = panel ?? {} @@ -486,7 +486,7 @@ function closeMeetingMinutes (): void { closePanel() } } - meetingMinutesStore.set(undefined) + currentMeetingMinutes.set(undefined) } export async function setCam (value: boolean): Promise { @@ -660,13 +660,13 @@ async function openMeetingMinutes (room: Room): Promise { { sid, title: newDoc.title, description: newDoc.description, status: newDoc.status }, _id ) - meetingMinutesStore.set(newDoc) + currentMeetingMinutes.set(newDoc) const loc = getCurrentLocation() if (loc.path[2] === loveId) { await openDoc(client.getHierarchy(), newDoc) } } else { - meetingMinutesStore.set(doc) + currentMeetingMinutes.set(doc) const loc = getCurrentLocation() if (loc.path[2] === loveId) { await openDoc(client.getHierarchy(), doc)