123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- var Toolbar = (function (my) {
-
- /**
- * 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 shared secret key.",
- false,
- "Secret key");
- } else {
- messageHandler.openMessageDialog(null,
- "This conversation isn't currently protected by" +
- " a secret key. Only the owner of the conference" +
- " could set a shared key.",
- false,
- "Secret key");
- }
- } else {
- if (sharedKey) {
- messageHandler.openTwoButtonDialog(null,
- "Are you sure you would like to remove your secret key?",
- false,
- "Remove",
- function (e, v) {
- if (v) {
- setSharedKey('');
- lockRoom(false);
- }
- });
- } else {
- messageHandler.openTwoButtonDialog(null,
- '<h2>Set a secret key to lock your room</h2>' +
- '<input id="lockKey" type="text"' +
- 'placeholder="your shared key" autofocus>',
- 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",
- '<input id="inviteLinkRef" type="text" value="' +
- inviteLink + '" onclick="this.select();" readonly>',
- 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(
- '<h2>Configure your conference</h2>' +
- '<input type="checkbox" id="initMuted">' +
- 'Participants join muted<br/>' +
- '<input type="checkbox" id="requireNicknames">' +
- 'Require nicknames<br/><br/>' +
- 'Set a secret key to lock your room:' +
- '<input id="lockKey" type="text" placeholder="your shared key"' +
- 'autofocus>',
- 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");
- };
-
- // 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"});
- }
- };
-
- return my;
- }(Toolbar || {}));
|