1var mhub_jitsi_settings = mhub_frontend.mhub_jitsi_settings; 2 3const initFreeAPI = () => { 4 let api; 5 const meetingContainer = jQuery('#meetinghub_meeting'); 6 7 if (meetingContainer.length) { 8 var domain = meetingContainer.data('random-domain'); 9 const roomName = meetingContainer.data('random-room-name'); 10 const currentUserName = meetingContainer.data('user-name'); 11 const width = meetingContainer.data('width'); 12 const height = meetingContainer.data('height'); 13 const start_with_audio_muted = meetingContainer.data('start-with-audio-muted'); 14 const start_with_video_muted = meetingContainer.data('start-with-video-muted'); 15 const screen_sharing = meetingContainer.data('screen-sharing'); 16 const enable_inviting = meetingContainer.data('enable-inviting'); 17 const mhub_jitsi_elementor = meetingContainer.data('elementor'); 18 19 // Define toolbar buttons 20 let toolbarButtons = [ 21 'camera', 22 'chat', 23 'closedcaptions', 24 'download', 25 'embedmeeting', 26 'etherpad', 27 'feedback', 28 'filmstrip', 29 'fullscreen', 30 'hangup', 31 'help', 32 'livestreaming', 33 'microphone', 34 'mute-everyone', 35 'mute-video-everyone', 36 'participants-pane', 37 'profile', 38 'raisehand', 39 'recording', 40 'security', 41 'select-background', 42 'settings', 43 'shareaudio', 44 'sharedvideo', 45 'shortcuts', 46 'stats', 47 'tileview', 48 'toggle-camera', 49 'videoquality', 50 '__end', 51 ]; 52 53 if (enable_inviting) { 54 toolbarButtons.push('invite'); 55 } 56 57 if (screen_sharing) { 58 toolbarButtons.push('desktop'); 59 } 60 61 const options = { 62 roomName: roomName, 63 width: width ? width : 1080, 64 height: height ? height : '700', 65 parentNode: meetingContainer[0], 66 userInfo: { 67 displayName: currentUserName ? currentUserName : '', 68 }, 69 configOverwrite: { 70 defaultLanguage: 'en', 71 startWithAudioMuted: start_with_audio_muted ? true : false, 72 startWithVideoMuted: start_with_video_muted ? true : false, 73 toolbarButtons: toolbarButtons, 74 }, 75 interfaceConfigOverwrite: { 76 SHOW_CHROME_EXTENSION_BANNER: false, 77 SHOW_PROMOTIONAL_CLOSE_PAGE: false, 78 }, 79 }; 80 81 // Create JitsiMeetExternalAPI only if the meeting container is found 82 api = new JitsiMeetExternalAPI(domain, options); 83 } else { 84 console.warn('Meeting container not found. API initialization skipped.'); 85 } 86}; 87 88const initJassAPI = () => { 89 let api; 90 const meetingContainer = jQuery('#meetinghub_meeting'); 91 92 if (meetingContainer.length) { 93 const domain = '8x8.vc'; 94 const roomName = meetingContainer.data('random-room-name'); 95 const currentUserName = meetingContainer.data('user-name'); 96 const width = meetingContainer.data('width'); 97 const height = meetingContainer.data('height'); 98 const start_with_audio_muted = meetingContainer.data('start-with-audio-muted'); 99 const start_with_video_muted = meetingContainer.data('start-with-video-muted'); 100 const screen_sharing = meetingContainer.data('screen-sharing'); 101 const enable_inviting = meetingContainer.data('enable-inviting'); 102 103 // Define toolbar buttons 104 let toolbarButtons = [ 105 'camera', 106 'chat', 107 'closedcaptions', 108 'download', 109 'embedmeeting', 110 'etherpad', 111 'feedback', 112 'filmstrip', 113 'fullscreen', 114 'hangup', 115 'help', 116 'livestreaming', 117 'microphone', 118 'mute-everyone', 119 'mute-video-everyone', 120 'participants-pane', 121 'profile', 122 'raisehand', 123 'recording', 124 'security', 125 'select-background', 126 'settings', 127 'shareaudio', 128 'sharedvideo', 129 'shortcuts', 130 'stats', 131 'tileview', 132 'toggle-camera', 133 'videoquality', 134 '__end', 135 ]; 136 137 if (enable_inviting) { 138 toolbarButtons.push('invite'); 139 } 140 141 if (screen_sharing) { 142 toolbarButtons.push('desktop'); 143 } 144 145 const options = { 146 roomName: mhub_jitsi_settings.app_id + '/' + roomName, 147 width: width ? width : 1080, 148 height: height ? height : '700', 149 parentNode: meetingContainer[0], 150 jwt: mhub_frontend.jwt, 151 userInfo: { 152 displayName: currentUserName ? currentUserName : '', 153 }, 154 configOverwrite: { 155 defaultLanguage: 'en', 156 startWithAudioMuted: start_with_audio_muted ? true : false, 157 startWithVideoMuted: start_with_video_muted ? true : false, 158 toolbarButtons: toolbarButtons, 159 }, 160 interfaceConfigOverwrite: { 161 SHOW_CHROME_EXTENSION_BANNER: false, 162 SHOW_PROMOTIONAL_CLOSE_PAGE: false, 163 }, 164 devices: { 165 audioOutput: 'default', // Change this to the desired output device label 166 }, 167 }; 168 169 // Create JitsiMeetExternalAPI only if the meeting container is found 170 api = new JitsiMeetExternalAPI(domain, options); 171 } else { 172 console.warn('Meeting container not found. API initialization skipped.'); 173 } 174}; 175
176const initCustomAPI = () => { 177 let api; 178 const meetingContainer = jQuery('#meetinghub_meeting'); 179 180 if (meetingContainer.length) { 181 const domain = mhub_jitsi_settings.custom_domain; 182 const roomName = meetingContainer.data('random-room-name'); 183 const currentUserName = meetingContainer.data('user-name'); 184 const width = meetingContainer.data('width'); 185 const height = meetingContainer.data('height'); 186 const start_with_audio_muted = meetingContainer.data('start-with-audio-muted'); 187 const start_with_video_muted = meetingContainer.data('start-with-video-muted'); 188 const screen_sharing = meetingContainer.data('screen-sharing'); 189 const enable_inviting = meetingContainer.data('enable-inviting'); 190 191 // Define toolbar buttons 192 let toolbarButtons = [ 193 'camera', 194 'chat', 195 'closedcaptions', 196 'download', 197 'embedmeeting', 198 'etherpad', 199 'feedback', 200 'filmstrip', 201 'fullscreen', 202 'hangup', 203 'help', 204 'livestreaming', 205 'microphone', 206 'mute-everyone', 207 'mute-video-everyone', 208 'participants-pane', 209 'profile', 210 'raisehand', 211 'recording', 212 'security', 213 'select-background', 214 'settings', 215 'shareaudio', 216 'sharedvideo', 217 'shortcuts', 218 'stats', 219 'tileview', 220 'toggle-camera', 221 'videoquality', 222 '__end', 223 ]; 224 225 if (enable_inviting) { 226 toolbarButtons.push('invite'); 227 } 228 229 if (screen_sharing) { 230 toolbarButtons.push('desktop'); 231 } 232 233 const options = { 234 roomName: roomName, 235 width: width ? width : 1080, 236 height: height ? height : '700', 237 parentNode: meetingContainer[0], 238 userInfo: { 239 displayName: currentUserName ? currentUserName : '', 240 }, 241 configOverwrite: { 242 defaultLanguage: 'en', 243 startWithAudioMuted: start_with_audio_muted ? true : false, 244 startWithVideoMuted: start_with_video_muted ? true : false, 245 toolbarButtons: toolbarButtons, 246 }, 247 interfaceConfigOverwrite: { 248 SHOW_CHROME_EXTENSION_BANNER: false, 249 SHOW_PROMOTIONAL_CLOSE_PAGE: false, 250 }, 251 }; 252 253 // Create JitsiMeetExternalAPI only if the meeting container is found 254 api = new JitsiMeetExternalAPI(domain, options); 255 } else { 256 console.warn('Meeting container not found. API initialization skipped.'); 257 } 258}; 259 260 261 262// Check if the DOM has fully loaded 263jQuery(document).ready(() => { 264 if (jQuery('#meetinghub_meeting').length) { 265 if( 'jitsi_random_public' === mhub_jitsi_settings.domain_type ) { 266 initFreeAPI(); 267 } else if( 'jitsi_jass_premium' === mhub_jitsi_settings.domain_type ) { 268 if (mhub_frontend.jwt) { 269 initJassAPI(); 270 } else { 271 initFreeAPI(); 272 } 273 } else if ( 'jitsi_self_hosted' === mhub_jitsi_settings.domain_type ){ 274 initCustomAPI(); 275 }else{ 276 initFreeAPI(); 277 } 278 279 } 280});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.