[mirotalksfu] - make whoAreYou page configurable

هذا الالتزام موجود في:
Miroslav Pejic
2025-07-07 21:06:11 +02:00
الأصل ade8634875
التزام f8c43426f3
8 ملفات معدلة مع 61 إضافات و14 حذوفات

عرض الملف

@@ -248,6 +248,12 @@ SHOW_SPONSORS=true # Show sponsors (true|false)
SHOW_ADVERTISERS=true # Show advertisers (true|false) SHOW_ADVERTISERS=true # Show advertisers (true|false)
SHOW_FOOTER=true # Show footer (true|false) SHOW_FOOTER=true # Show footer (true|false)
# Who Are You
WHO_ARE_YOU_TITLE="Who are you?" # Title
WHO_ARE_YOU_DESCRIPTION="If you're the presenter, please log in now.<br />Otherwise, kindly wait for the presenter to join." # Description
WHO_ARE_YOU_BUTTON_LOGIN_LABEL="LOGIN" # Login button label
WHO_ARE_YOU_JOIN_LABEL="JOIN ROOM" # Join button label
# About # About
ABOUT_IMAGE_URL=../images/mirotalk-logo.gif # About section image ABOUT_IMAGE_URL=../images/mirotalk-logo.gif # About section image
SUPPORT_URL=https://codecanyon.net/user/miroslavpejic85 # Support link URL SUPPORT_URL=https://codecanyon.net/user/miroslavpejic85 # Support link URL

عرض الملف

@@ -1039,6 +1039,19 @@ module.exports = {
footer: process.env.SHOW_FOOTER !== 'false', footer: process.env.SHOW_FOOTER !== 'false',
}, },
/**
* Who Are You? Section
* ---------------------
* Prompts users to identify themselves before joining a room.
* Customizable text and button labels.
*/
whoAreYou: {
title: process.env.WHO_ARE_YOU_TITLE || 'Who are you?',
description: process.env.WHO_ARE_YOU_DESCRIPTION || "If you\'re the presenter, please log in now.<br />Otherwise, kindly wait for the presenter to join.",
buttonLoginLabel: process.env.WHO_ARE_YOU_BUTTON_LOGIN_LABEL || 'LOGIN',
buttonJoinLabel: process.env.WHO_ARE_YOU_JOIN_LABEL || 'JOIN ROOM',
},
/** /**
* About/Credits Section * About/Credits Section
* --------------------- * ---------------------

12
package-lock.json مولّد
عرض الملف

@@ -1,12 +1,12 @@
{ {
"name": "mirotalksfu", "name": "mirotalksfu",
"version": "1.8.83", "version": "1.8.84",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "mirotalksfu", "name": "mirotalksfu",
"version": "1.8.83", "version": "1.8.84",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.842.0", "@aws-sdk/client-s3": "^3.842.0",
@@ -35,7 +35,7 @@
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"mediasoup": "3.16.5", "mediasoup": "3.16.5",
"mediasoup-client": "3.12.4", "mediasoup-client": "3.12.4",
"nodemailer": "^7.0.4", "nodemailer": "^7.0.5",
"openai": "^5.8.2", "openai": "^5.8.2",
"qs": "6.14.0", "qs": "6.14.0",
"sanitize-filename": "^1.6.3", "sanitize-filename": "^1.6.3",
@@ -8306,9 +8306,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/nodemailer": { "node_modules/nodemailer": {
"version": "7.0.4", "version": "7.0.5",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.4.tgz", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.5.tgz",
"integrity": "sha512-9O00Vh89/Ld2EcVCqJ/etd7u20UhME0f/NToPfArwPEe1Don1zy4mAIz6ariRr7mJ2RDxtaDzN0WJVdVXPtZaw==", "integrity": "sha512-nsrh2lO3j4GkLLXoeEksAMgAOqxOv6QumNRVQTJwKH4nuiww6iC2y7GyANs9kRAxCexg3+lTWM3PZ91iLlVjfg==",
"license": "MIT-0", "license": "MIT-0",
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"

عرض الملف

@@ -1,6 +1,6 @@
{ {
"name": "mirotalksfu", "name": "mirotalksfu",
"version": "1.8.83", "version": "1.8.84",
"description": "WebRTC SFU browser-based video calls", "description": "WebRTC SFU browser-based video calls",
"main": "Server.js", "main": "Server.js",
"scripts": { "scripts": {
@@ -83,7 +83,7 @@
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"mediasoup": "3.16.5", "mediasoup": "3.16.5",
"mediasoup-client": "3.12.4", "mediasoup-client": "3.12.4",
"nodemailer": "^7.0.4", "nodemailer": "^7.0.5",
"openai": "^5.8.2", "openai": "^5.8.2",
"qs": "6.14.0", "qs": "6.14.0",
"sanitize-filename": "^1.6.3", "sanitize-filename": "^1.6.3",

عرض الملف

@@ -25,6 +25,11 @@ const poweredBy = document.getElementById('poweredBy');
const sponsors = document.getElementById('sponsors'); const sponsors = document.getElementById('sponsors');
const advertisers = document.getElementById('advertisers'); const advertisers = document.getElementById('advertisers');
const footer = document.getElementById('footer'); const footer = document.getElementById('footer');
const whoAreYouTitle = document.getElementById('whoAreYouTitle');
const whoAreYouDescription = document.getElementById('whoAreYouDescription');
const presenterLoginButton = document.getElementById('presenterLoginButton');
const guestJoinRoomButton = document.getElementById('guestJoinRoomButton');
//... //...
// app/src/config.js - ui.brand // app/src/config.js - ui.brand
@@ -62,9 +67,15 @@ let BRAND = {
advertisers: true, advertisers: true,
footer: true, footer: true,
}, },
whoAreYou: {
title: 'Who are you?',
description: "If you\'re the presenter, please log in now.<br />Otherwise, kindly wait for the presenter to join.",
buttonLoginLabel: 'LOGIN',
buttonJoinLabel: 'JOIN ROOM',
},
about: { about: {
imageUrl: '../images/mirotalk-logo.gif', imageUrl: '../images/mirotalk-logo.gif',
title: '<strong>WebRTC SFU v1.8.83</strong>', title: '<strong>WebRTC SFU v1.8.84</strong>',
html: ` html: `
<button <button
id="support-button" id="support-button"
@@ -107,6 +118,8 @@ async function initialize() {
customizeApp(); customizeApp();
customizeWhoAreYou();
checkBrand(); checkBrand();
} }
@@ -206,4 +219,19 @@ function customizeMetaTags() {
} }
} }
function customizeWhoAreYou() {
if (whoAreYouTitle && BRAND.whoAreYou?.title) {
whoAreYouTitle.textContent = BRAND.whoAreYou.title;
}
if (whoAreYouDescription && BRAND.whoAreYou?.description) {
whoAreYouDescription.innerHTML = BRAND.whoAreYou.description;
}
if (presenterLoginButton && BRAND.whoAreYou?.buttonLoginLabel) {
presenterLoginButton.textContent = BRAND.whoAreYou.buttonLoginLabel;
}
if (guestJoinRoomButton && BRAND.whoAreYou?.buttonJoinLabel) {
guestJoinRoomButton.textContent = BRAND.whoAreYou.buttonJoinLabel;
}
}
initialize(); initialize();

عرض الملف

@@ -11,7 +11,7 @@ if (location.href.substr(0, 5) !== 'https') location.href = 'https' + location.h
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon * @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970 * @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com * @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.8.83 * @version 1.8.84
* *
*/ */
@@ -5479,7 +5479,7 @@ function showAbout() {
position: 'center', position: 'center',
imageUrl: BRAND.about?.imageUrl && BRAND.about.imageUrl.trim() !== '' ? BRAND.about.imageUrl : image.about, imageUrl: BRAND.about?.imageUrl && BRAND.about.imageUrl.trim() !== '' ? BRAND.about.imageUrl : image.about,
customClass: { image: 'img-about' }, customClass: { image: 'img-about' },
title: BRAND.about?.title && BRAND.about.title.trim() !== '' ? BRAND.about.title : 'WebRTC SFU v1.8.83', title: BRAND.about?.title && BRAND.about.title.trim() !== '' ? BRAND.about.title : 'WebRTC SFU v1.8.84',
html: ` html: `
<br /> <br />
<div id="about"> <div id="about">

عرض الملف

@@ -9,7 +9,7 @@
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon * @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970 * @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com * @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.8.83 * @version 1.8.84
* *
*/ */

عرض الملف

@@ -66,8 +66,8 @@
<div class="container"> <div class="container">
<div class="hero-inner"> <div class="hero-inner">
<div class="hero-copy"> <div class="hero-copy">
<h1 class="hero-title mt-0 mb-16">Who are you?</h1> <h1 id="whoAreYouTitle" class="hero-title mt-0 mb-16">Who are you?</h1>
<p class="hero-paragraph"> <p id="whoAreYouDescription" class="hero-paragraph">
If you're the presenter, please log in now.<br /> If you're the presenter, please log in now.<br />
Otherwise, kindly wait for the presenter to join.<br /> Otherwise, kindly wait for the presenter to join.<br />
<!-- You'll be redirected to the room when they arrive. --> <!-- You'll be redirected to the room when they arrive. -->