Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
974 changes: 469 additions & 505 deletions common/config/rush/pnpm-lock.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@
"electron-store": "^8.2.0",
"electron-log": "^5.1.7",
"electron-updater": "^6.3.4",
"livekit-client": "^2.13.3",
"livekit-client": "^2.15.5",
"@hcengineering/server-backup": "^0.6.0",
"@hcengineering/communication-types": "^0.1.0",
"ws": "^8.18.2"
Expand Down
Binary file not shown.
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "Sdílení...",
"Browser": "Prohlížeč",
"Monitor": "Monitor",
"Window": "Okno"
"Window": "Okno",
"MeetingEmptyTitle": "Schůzka ukončena?",
"MeetingEmptyMessage": "Všichni účastníci odešli. Během 1 minuty budete odpojeni. Chcete zůstat?",
"StayInRoom": "Zůstat v místnosti"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@
"Sharing": "Teilen...",
"Browser": "Browser",
"Monitor": "Monitor",
"Window": "Fenster"
"Window": "Fenster",
"MeetingEmptyTitle": "Besprechung beendet?",
"MeetingEmptyMessage": "Alle Teilnehmer haben die Besprechung verlassen. Sie werden in 1 Minute automatisch getrennt. Möchten Sie bleiben?",
"StayInRoom": "Im Raum bleiben"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "Sharing...",
"Browser": "Browser",
"Monitor": "Monitor",
"Window": "Window"
"Window": "Window",
"MeetingEmptyTitle": "Meeting ended?",
"MeetingEmptyMessage": "All participants have left. You'll be disconnected in 1 minute. Would you like to stay?",
"StayInRoom": "Stay in room"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "Compartiendo...",
"Browser": "Navegador",
"Monitor": "Monitor",
"Window": "Ventana"
"Window": "Ventana",
"MeetingEmptyTitle": "¿Reunión finalizada?",
"MeetingEmptyMessage": "Todos los participantes han salido. Serás desconectado en 1 minuto. ¿Deseas permanecer?",
"StayInRoom": "Permanecer en sala"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "Partage...",
"Browser": "Navigateur",
"Monitor": "Moniteur",
"Window": "Fenêtre"
"Window": "Fenêtre",
"MeetingEmptyTitle": "Réunion terminée ?",
"MeetingEmptyMessage": "Tous les participants sont partis. Vous serez déconnecté dans 1 minute. Souhaitez-vous rester ?",
"StayInRoom": "Rester dans la salle"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "Condivisione...",
"Browser": "Browser",
"Monitor": "Monitor",
"Window": "Finestra"
"Window": "Finestra",
"MeetingEmptyTitle": "Riunione terminata?",
"MeetingEmptyMessage": "Tutti i partecipanti hanno abbandonato. Sarai disconnesso tra 1 minuto. Vuoi rimanere?",
"StayInRoom": "Rimani nella stanza"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "共有中...",
"Browser": "ブラウザ",
"Monitor": "モニター",
"Window": "ウィンドウ"
"Window": "ウィンドウ",
"MeetingEmptyTitle": "ミーティング終了?",
"MeetingEmptyMessage": "全参加者が退出しました。1分後に自動切断されます。ミーティングに残りますか?",
"StayInRoom": "ルームに残る"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "A partilhar...",
"Browser": "Navegador",
"Monitor": "Monitor",
"Window": "Janela"
"Window": "Janela",
"MeetingEmptyTitle": "Reunião encerrada?",
"MeetingEmptyMessage": "Todos os participantes saíram. Você será desconectado em 1 minuto. Deseja permanecer?",
"StayInRoom": "Permanecer na sala"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "Показ...",
"Browser": "Браузер",
"Monitor": "Монитор",
"Window": "Окно"
"Window": "Окно",
"MeetingEmptyTitle": "Совещание завершено?",
"MeetingEmptyMessage": "Все участники вышли. Вы будете отключены через 1 минуту. Хотите остаться?",
"StayInRoom": "Остаться в комнате"
}
}
5 changes: 4 additions & 1 deletion plugins/love-assets/lang/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@
"Sharing": "共享中...",
"Browser": "浏览器",
"Monitor": "监视器",
"Window": "窗口"
"Window": "窗口",
"MeetingEmptyTitle": "会议已结束?",
"MeetingEmptyMessage": "所有参与者已离开。您将在1分钟后断开连接。是否要留在会议中?",
"StayInRoom": "留在房间"
}
}
3 changes: 2 additions & 1 deletion plugins/love-assets/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,6 @@ loadMetadata(love.icon, {
MeetingMinutes: `${icons}#meeting-minutes`
})
loadMetadata(love.sound, {
Knock: require('../assets/knock.wav')
Knock: require('../assets/knock.wav'),
MeetingEndNotification: require('../assets/meeting-end-notification.wav')
})
4 changes: 3 additions & 1 deletion plugins/love-resources/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,11 @@
"@hcengineering/view-resources": "^0.6.0",
"@hcengineering/workbench": "^0.6.16",
"@hcengineering/workbench-resources": "^0.6.1",
"@hcengineering/emoji": "^0.6.0",
"@hcengineering/theme": "^0.6.5",
"@livekit/krisp-noise-filter": "^0.3.0",
"@livekit/track-processors": "^0.5.6",
"livekit-client": "^2.13.3",
"livekit-client": "^2.15.5",
"svelte": "^4.2.19"
}
}
90 changes: 40 additions & 50 deletions plugins/love-resources/src/broadcast.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
import { get } from 'svelte/store'
import {
isCameraEnabled,
isConnected,
$isCurrentInstanceConnected,
isMicEnabled,
isSharingEnabled,
setCam,
setMic,
setShare
} from './utils'
import { getCurrentLocation, location } from '@hcengineering/ui'
import { location } from '@hcengineering/ui'

let key = 'love' + getCurrentLocation().path?.[2]
let key = ''

let bc: BroadcastChannel | undefined

Expand All @@ -20,7 +9,10 @@ location.subscribe((newLocation) => {
const newKey = 'love' + newLocation.path[2]
if (key !== newKey) {
key = newKey
bc?.close()
bc = new BroadcastChannel(key)
bc.onmessage = onMessage
sendMessage({ type: 'status_ask' })
}
}
})
Expand Down Expand Up @@ -55,50 +47,48 @@ interface BroadcastStatusMessage {
value: boolean
}

export function sendMessage (req: BroadcastMessage): void {
function sendMessage (req: BroadcastMessage): void {
bc?.postMessage(req)
}

if (bc !== undefined) {
bc.onmessage = async (e: MessageEvent<BroadcastMessage>) => {
if (e.data.type === 'set_mic') {
if ($isCurrentInstanceConnected) {
await setMic(e.data.value)
}
async function onMessage (e: MessageEvent<BroadcastMessage>): Promise<void> {
/*
if (e.data.type === 'set_mic') {
if ($isCurrentInstanceConnected) {
await setMic(e.data.value)
}
if (e.data.type === 'set_cam') {
if ($isCurrentInstanceConnected) {
await setCam(e.data.value)
}
}
if (e.data.type === 'set_share') {
if ($isCurrentInstanceConnected) {
await setShare(e.data.value)
}
}
if (e.data.type === 'share') {
isSharingEnabled.set(e.data.value)
}
if (e.data.type === 'mic') {
isMicEnabled.set(e.data.value)
}
if (e.data.type === 'set_cam') {
if ($isCurrentInstanceConnected) {
await setCam(e.data.value)
}
if (e.data.type === 'cam') {
isCameraEnabled.set(e.data.value)
}
if (e.data.type === 'set_share') {
if ($isCurrentInstanceConnected) {
await setShare(e.data.value)
}
if (e.data.type === 'status_ask') {
if ($isCurrentInstanceConnected) {
sendMessage({ type: 'connect', value: true })
sendMessage({ type: 'mic', value: get(isMicEnabled) })
sendMessage({ type: 'cam', value: get(isCameraEnabled) })
sendMessage({ type: 'share', value: get(isSharingEnabled) })
}
}
if (e.data.type === 'share') {
isSharingEnabled.set(e.data.value)
}
if (e.data.type === 'mic') {
isMicEnabled.set(e.data.value)
}
if (e.data.type === 'cam') {
isCameraEnabled.set(e.data.value)
}
if (e.data.type === 'status_ask') {
if ($isCurrentInstanceConnected) {
sendMessage({ type: 'connect', value: true })
sendMessage({ type: 'mic', value: get(isMicEnabled) })
sendMessage({ type: 'cam', value: get(isCameraEnabled) })
sendMessage({ type: 'share', value: get(isSharingEnabled) })
}
if (e.data.type === 'connect') {
if (!$isCurrentInstanceConnected) {
isConnected.set(e.data.value)
}
}
if (e.data.type === 'connect') {
if (!$isCurrentInstanceConnected) {
isConnected.set(e.data.value)
}
}
*/
}

sendMessage({ type: 'status_ask' })
Loading