var Toolbar = (function (my) { /** * Disables and enables some of the buttons. */ my.setupButtonsFromConfig = function () { if(config.disablePrezi) { $("#prezi_button").css({display: "none"}); } } /** * Opens the lock room dialog. */ my.openLockDialog = function () { // Only the focus is able to set a shared key. if (focus === null) { if (sharedKey) { messageHandler.openMessageDialog(null, "This conversation is currently protected by" + " a password. Only the owner of the conference" + " could set a password.", false, "Password"); } else { messageHandler.openMessageDialog(null, "This conversation isn't currently protected by" + " a password. Only the owner of the conference" + " could set a password.", false, "Password"); } } else { if (sharedKey) { messageHandler.openTwoButtonDialog(null, "Are you sure you would like to remove your password?", false, "Remove", function (e, v) { if (v) { setSharedKey(''); lockRoom(false); } }); } else { messageHandler.openTwoButtonDialog(null, '

Set a password to lock your room

' + '', false, "Save", function (e, v) { if (v) { var lockKey = document.getElementById('lockKey'); if (lockKey.value) { setSharedKey(Util.escapeHtml(lockKey.value)); lockRoom(true); } } }, function () { document.getElementById('lockKey').focus(); } ); } } }; /** * Opens the invite link dialog. */ my.openLinkDialog = function () { var inviteLink; if (roomUrl == null) { inviteLink = "Your conference is currently being created..."; } else { inviteLink = encodeURI(roomUrl); } messageHandler.openTwoButtonDialog( "Share this link with everyone you want to invite", '', false, "Invite", function (e, v) { if (v) { if (roomUrl) { inviteParticipants(); } } }, function () { if (roomUrl) { document.getElementById('inviteLinkRef').select(); } else { document.getElementById('jqi_state0_buttonInvite') .disabled = true; } } ); }; /** * Invite participants to conference. */ function inviteParticipants() { if (roomUrl == null) return; var sharedKeyText = ""; if (sharedKey && sharedKey.length > 0) { sharedKeyText = "This conference is password protected. Please use the " + "following pin when joining:%0D%0A%0D%0A" + sharedKey + "%0D%0A%0D%0A"; } var conferenceName = roomUrl.substring(roomUrl.lastIndexOf('/') + 1); var subject = "Invitation to a Jitsi Meet (" + conferenceName + ")"; var body = "Hey there, I%27d like to invite you to a Jitsi Meet" + " conference I%27ve just set up.%0D%0A%0D%0A" + "Please click on the following link in order" + " to join the conference.%0D%0A%0D%0A" + roomUrl + "%0D%0A%0D%0A" + sharedKeyText + "Note that Jitsi Meet is currently only supported by Chromium," + " Google Chrome and Opera, so you need" + " to be using one of these browsers.%0D%0A%0D%0A" + "Talk to you in a sec!"; if (window.localStorage.displayname) { body += "%0D%0A%0D%0A" + window.localStorage.displayname; } window.open("mailto:?subject=" + subject + "&body=" + body, '_blank'); } /** * Opens the settings dialog. */ my.openSettingsDialog = function () { messageHandler.openTwoButtonDialog( '

Configure your conference

' + '' + 'Participants join muted
' + '' + 'Require nicknames

' + 'Set a password to lock your room:' + '', null, false, "Save", function () { document.getElementById('lockKey').focus(); }, function (e, v) { if (v) { if ($('#initMuted').is(":checked")) { // it is checked } if ($('#requireNicknames').is(":checked")) { // it is checked } /* var lockKey = document.getElementById('lockKey'); if (lockKey.value) { setSharedKey(lockKey.value); lockRoom(true); } */ } } ); }; /** * Toggles the application in and out of full screen mode * (a.k.a. presentation mode in Chrome). */ my.toggleFullScreen = function() { var fsElement = document.documentElement; if (!document.mozFullScreen && !document.webkitIsFullScreen) { //Enter Full Screen if (fsElement.mozRequestFullScreen) { fsElement.mozRequestFullScreen(); } else { fsElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); } } else { //Exit Full Screen if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else { document.webkitCancelFullScreen(); } } }; /** * Updates the lock button state. */ my.updateLockButton = function() { buttonClick("#lockIcon", "icon-security icon-security-locked"); }; /** * Updates the lock button state to locked. */ my.lockLockButton = function() { if($("#lockIcon").hasClass("icon-security")) buttonClick("#lockIcon", "icon-security icon-security-locked"); }; // Shows or hides the 'recording' button. my.showRecordingButton = function (show) { if (!config.enableRecording) { return; } if (show) { $('#recording').css({display: "inline"}); } else { $('#recording').css({display: "none"}); } }; // Toggle the state of the recording button my.toggleRecordingButtonState = function() { $('#recordButton').toggleClass('active'); }; // Shows or hides SIP calls button my.showSipCallButton = function(show){ if (config.hosts.call_control && show) { $('#sipCallButton').css({display: "inline"}); } else { $('#sipCallButton').css({display: "none"}); } }; /** * Sets the state of the button. The button has blue glow if desktop streaming is active. * @param active the state of the desktop streaming. */ my.changeDesktopSharingButtonState = function (active) { var button = $("#desktopsharing > a"); if(active) { button.addClass("glow"); } else { button.removeClass("glow"); } } return my; }(Toolbar || {}));