diff --git a/.env.template b/.env.template index fe4b74b4..143f85bd 100644 --- a/.env.template +++ b/.env.template @@ -1,5 +1,5 @@ # ==================================================== -# MiroTalk P2P v.1.7.85 - Environment Configuration +# MiroTalk P2P v.1.7.86 - Environment Configuration # ==================================================== # App environment diff --git a/app/src/config.template.js b/app/src/config.template.js index d180f1f0..f3a25356 100644 --- a/app/src/config.template.js +++ b/app/src/config.template.js @@ -2,7 +2,7 @@ /** * ============================================== - * MiroTalk P2P v.1.7.85 - Configuration File + * MiroTalk P2P v.1.7.86 - Configuration File * ============================================== * * This file is the central configuration source. diff --git a/app/src/server.js b/app/src/server.js index 5a7f8c9c..126de2d5 100755 --- a/app/src/server.js +++ b/app/src/server.js @@ -45,7 +45,7 @@ dependencies: { * @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon * @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661 * @author Miroslav Pejic - miroslav.pejic.85@gmail.com - * @version 1.7.85 + * @version 1.7.86 * */ diff --git a/package-lock.json b/package-lock.json index f970988a..19da1c18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mirotalk", - "version": "1.7.85", + "version": "1.7.86", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mirotalk", - "version": "1.7.85", + "version": "1.7.86", "license": "AGPL-3.0", "dependencies": { "@mattermost/client": "11.5.0", @@ -19,7 +19,7 @@ "cors": "^2.8.6", "crypto-js": "^4.2.0", "dompurify": "^3.3.3", - "dotenv": "^17.3.1", + "dotenv": "^17.4.0", "express": "^5.2.1", "express-openid-connect": "^2.20.1", "express-rate-limit": "^8.3.2", @@ -2538,9 +2538,9 @@ } }, "node_modules/dotenv": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", - "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.0.tgz", + "integrity": "sha512-kCKF62fwtzwYm0IGBNjRUjtJgMfGapII+FslMHIjMR5KTnwEmBmWLDRSnc3XSNP8bNy34tekgQyDT0hr7pERRQ==", "license": "BSD-2-Clause", "engines": { "node": ">=12" diff --git a/package.json b/package.json index c78dea35..0a0a1ab7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mirotalk", - "version": "1.7.85", + "version": "1.7.86", "description": "A free WebRTC browser-based video call", "main": "server.js", "scripts": { @@ -54,7 +54,7 @@ "cors": "^2.8.6", "crypto-js": "^4.2.0", "dompurify": "^3.3.3", - "dotenv": "^17.3.1", + "dotenv": "^17.4.0", "express": "^5.2.1", "express-openid-connect": "^2.20.1", "express-rate-limit": "^8.3.2", diff --git a/public/css/client.css b/public/css/client.css index b135143f..171396ee 100755 --- a/public/css/client.css +++ b/public/css/client.css @@ -1208,13 +1208,14 @@ body { .msger-private-chat-entry { display: flex; align-items: center; - gap: 8px; min-width: 0; position: relative; } .msger-private-chat-entry .msger-chat-item { flex: 1; + cursor: pointer; + position: relative; } .msger-private-chat-entry .dropdown-menu-custom { @@ -1228,6 +1229,7 @@ body { height: 40px; flex-shrink: 0; overflow: visible; + margin-left: auto; } .msger-private-chat-entry .dropdown-toggle { @@ -1238,7 +1240,7 @@ body { height: 40px; padding: 0; border-radius: 12px; - background: var(--body-bg); + background: transparent; } .msger-private-chat-entry .msger-participant-dropdown-menu .app-dropdown-action { diff --git a/public/js/brand.js b/public/js/brand.js index 35770f8f..e2ba59fa 100644 --- a/public/js/brand.js +++ b/public/js/brand.js @@ -107,7 +107,7 @@ let brand = { }, about: { imageUrl: '../images/mirotalk-logo.gif', - title: 'WebRTC P2P v1.7.85', + title: 'WebRTC P2P v1.7.86', html: ` + `; @@ -10870,21 +10871,21 @@ async function msgerAddPeers(peers) { const msgerPrivateDiv = `
- -
`; @@ -11014,12 +11015,13 @@ function addMsgerPrivateBtn( // Send private message button msgerPrivateBtn.addEventListener('click', (e) => { e.preventDefault(); + if (e.target.closest('.dropdown-menu-custom')) return; if (msgerPrivateMsgInput) { sendPrivateMessage(); return; } const selectedPeerId = msgerPrivateBtn.dataset.peerId || peerId; - setActiveConversation('private', msgerPrivateBtn.value, selectedPeerId); + setActiveConversation('private', msgerPrivateBtn.dataset.value, selectedPeerId); msgerDraggable.classList.remove('msger-pinned-sidebar-open'); if (shouldDockParticipantsPanel()) { msgerCPBtn.classList.remove('active'); @@ -11053,16 +11055,16 @@ function addMsgerPrivateBtn( return; } // sanitization to prevent XSS - msgerPrivateBtn.value = filterXSS(msgerPrivateBtn.value); + msgerPrivateBtn.dataset.value = filterXSS(msgerPrivateBtn.dataset.value); myPeerName = filterXSS(myPeerName); - if (isHtml(myPeerName) && isHtml(msgerPrivateBtn.value)) { + if (isHtml(myPeerName) && isHtml(msgerPrivateBtn.dataset.value)) { msgerPrivateMsgInput.value = ''; isChatPasteTxt = false; return; } - const toPeerName = msgerPrivateBtn.value; + const toPeerName = msgerPrivateBtn.dataset.value; emitMsg(myPeerName, myPeerAvatar, toPeerName, pMsg, true, myPeerId); appendMessage(myPeerName, rightChatAvatar, 'right', pMsg, true, null, toPeerName); msgerPrivateMsgInput.value = ''; @@ -14762,7 +14764,7 @@ function showAbout() { Swal.fire({ background: swBg, position: 'center', - title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.7.85', + title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.7.86', imageUrl: brand.about?.imageUrl && brand.about.imageUrl.trim() !== '' ? brand.about.imageUrl : images.about, customClass: { image: 'img-about' }, html: `