diff --git a/app/src/server.js b/app/src/server.js index 3060580e..3c12a9d8 100755 --- a/app/src/server.js +++ b/app/src/server.js @@ -89,7 +89,7 @@ io = new Server({ // console.log(io); // Host protection (disabled by default) -const hostProtected = process.env.HOST_PROTECTED == 'true' ? true : false; +const hostProtected = getEnvBoolean(process.env.HOST_PROTECTED); const hostCfg = { protected: hostProtected, username: process.env.HOST_USERNAME, @@ -110,36 +110,36 @@ const api_key_secret = process.env.API_KEY_SECRET || 'mirotalk_default_secret'; // Ngrok config const ngrok = require('ngrok'); -const ngrokEnabled = process.env.NGROK_ENABLED == 'true' ? true : false; +const ngrokEnabled = getEnvBoolean(process.env.NGROK_ENABLED); const ngrokAuthToken = process.env.NGROK_AUTH_TOKEN; // Stun config const stun = process.env.STUN || 'stun:stun.l.google.com:19302'; // Turn config -const turnEnabled = process.env.TURN_ENABLED == 'true' ? true : false; +const turnEnabled = getEnvBoolean(process.env.TURN_ENABLED); const turnUrls = process.env.TURN_URLS; const turnUsername = process.env.TURN_USERNAME; const turnCredential = process.env.TURN_PASSWORD; // IP Lookup -const IPLookupEnabled = process.env.IP_LOOKUP_ENABLED == 'true'; +const IPLookupEnabled = getEnvBoolean(process.env.IP_LOOKUP_ENABLED); // Survey URL -const surveyEnabled = process.env.SURVEY_ENABLED == 'true' ? true : false; +const surveyEnabled = getEnvBoolean(process.env.SURVEY_ENABLED); const surveyURL = process.env.SURVEY_URL || 'https://www.questionpro.com/t/AUs7VZq00L'; // Sentry config const Sentry = require('@sentry/node'); const { CaptureConsole } = require('@sentry/integrations'); -const sentryEnabled = process.env.SENTRY_ENABLED == 'true' ? true : false; +const sentryEnabled = getEnvBoolean(process.env.SENTRY_ENABLED); const sentryDSN = process.env.SENTRY_DSN; const sentryTracesSampleRate = process.env.SENTRY_TRACES_SAMPLE_RATE; // Slack API const CryptoJS = require('crypto-js'); const qS = require('qs'); -const slackEnabled = process.env.SLACK_ENABLED == 'true' ? true : false; +const slackEnabled = getEnvBoolean(process.env.SLACK_ENABLED); const slackSigningSecret = process.env.SLACK_SIGNING_SECRET; const bodyParser = require('body-parser'); @@ -164,7 +164,7 @@ if (sentryEnabled) { // OpenAI/ChatGPT let chatGPT; const configChatGPT = { - enabled: process.env.CHATGPT_ENABLED == 'true' || false, + enabled: getEnvBoolean(process.env.CHATGPT_ENABLED), apiKey: process.env.CHATGTP_APIKEY, model: process.env.CHATGTP_MODEL, max_tokens: parseInt(process.env.CHATGPT_MAX_TOKENS), @@ -1153,6 +1153,17 @@ io.sockets.on('connect', async (socket) => { } }); // end [sockets.on-connect] +/** + * Get Env as boolean + * @param {string} key + * @param {boolean} force_true_if_undefined + * @returns boolean + */ +function getEnvBoolean(key, force_true_if_undefined = false) { + if (key == undefined && force_true_if_undefined) return true; + return key == 'true' ? true : false; +} + /** * get Peer geo Location using GeoJS * https://www.geojs.io/docs/v1/endpoints/geo/ diff --git a/public/js/client.js b/public/js/client.js index 9c56e9b2..b61cd289 100644 --- a/public/js/client.js +++ b/public/js/client.js @@ -150,6 +150,7 @@ const buttons = { showMaxBtn: true, }, settings: { + showTabRoomPeerName: false, showTabRoomParticipants: true, showTabRoomSecurity: true, showMuteEveryoneBtn: true, @@ -380,6 +381,7 @@ let videoObjFitSelect; let btnsBarSelect; let selectors; +let tabRoomPeerName; let tabRoomParticipants; let tabRoomSecurity; // my video element @@ -562,6 +564,7 @@ function getHtmlElementsById() { videoObjFitSelect = getId('videoObjFitSelect'); btnsBarSelect = getId('mirotalkBtnsBar'); pinVideoPositionSelect = getId('pinVideoPositionSelect'); + tabRoomPeerName = getId('tabRoomPeerName'); tabRoomParticipants = getId('tabRoomParticipants'); tabRoomSecurity = getId('tabRoomSecurity'); // my conference name, hand, video - audio status @@ -1090,7 +1093,7 @@ function handleButtonsRule() { //elemDisplay(screenShareBtn, buttons.main.showScreenBtn); // auto-detected elemDisplay(recordStreamBtn, buttons.main.showRecordStreamBtn); elemDisplay(chatRoomBtn, buttons.main.showChatRoomBtn); - //elemDisplay(captionBtn, buttons.main.showCaptionRoomBtn); // auto-detected + elemDisplay(captionBtn, buttons.main.showCaptionRoomBtn && speechRecognition); // auto-detected elemDisplay(myHandBtn, buttons.main.showMyHandBtn); elemDisplay(whiteboardBtn, buttons.main.showWhiteboardBtn); elemDisplay(fileShareBtn, buttons.main.showFileShareBtn); @@ -1112,6 +1115,7 @@ function handleButtonsRule() { elemDisplay(ejectEveryoneBtn, buttons.settings.showEjectEveryoneBtn); elemDisplay(lockRoomBtn, buttons.settings.showLockRoomBtn); elemDisplay(unlockRoomBtn, buttons.settings.showUnlockRoomBtn); + elemDisplay(tabRoomPeerName, buttons.settings.showTabRoomPeerName); elemDisplay(tabRoomParticipants, buttons.settings.showTabRoomParticipants); elemDisplay(tabRoomSecurity, buttons.settings.showTabRoomSecurity); } diff --git a/public/views/client.html b/public/views/client.html index 308c1365..761f421d 100755 --- a/public/views/client.html +++ b/public/views/client.html @@ -325,7 +325,7 @@ access to use this app.

-
+