123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- var Toolbar = (function (my) {
- var INITIAL_TOOLBAR_TIMEOUT = 20000;
- var TOOLBAR_TIMEOUT = INITIAL_TOOLBAR_TIMEOUT;
-
- /**
- * Opens the lock room dialog.
- */
- my.openLockDialog = function() {
- // Only the focus is able to set a shared key.
- if (focus === null) {
- if (sharedKey)
- $.prompt("This conversation is currently protected by"
- + " a shared secret key.",
- {
- title: "Secrect key",
- persistent: false
- }
- );
- else
- $.prompt("This conversation isn't currently protected by"
- + " a secret key. Only the owner of the conference" +
- + " could set a shared key.",
- {
- title: "Secrect key",
- persistent: false
- }
- );
- } else {
- if (sharedKey) {
- $.prompt("Are you sure you would like to remove your secret key?",
- {
- title: "Remove secrect key",
- persistent: false,
- buttons: { "Remove": true, "Cancel": false},
- defaultButton: 1,
- submit: function (e, v, m, f) {
- if (v) {
- setSharedKey('');
- lockRoom(false);
- }
- }
- }
- );
- } else {
- $.prompt('<h2>Set a secrect key to lock your room</h2>' +
- '<input id="lockKey" type="text" placeholder="your shared key" autofocus>',
- {
- persistent: false,
- buttons: { "Save": true, "Cancel": false},
- defaultButton: 1,
- loaded: function (event) {
- document.getElementById('lockKey').focus();
- },
- submit: function (e, v, m, f) {
- if (v) {
- var lockKey = document.getElementById('lockKey');
-
- if (lockKey.value) {
- setSharedKey(Util.escapeHtml(lockKey.value));
- lockRoom(true);
- }
- }
- }
- }
- );
- }
- }
- };
-
- /**
- * Opens the invite link dialog.
- */
- my.openLinkDialog = function() {
- $.prompt('<input id="inviteLinkRef" type="text" value="' +
- encodeURI(roomUrl) + '" onclick="this.select();" readonly>',
- {
- title: "Share this link with everyone you want to invite",
- persistent: false,
- buttons: { "Cancel": false},
- loaded: function (event) {
- document.getElementById('inviteLinkRef').select();
- }
- }
- );
- };
-
- /**
- * Opens the settings dialog.
- */
- my.openSettingsDialog = function() {
- $.prompt('<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 secrect key to lock your room: <input id="lockKey" type="text" placeholder="your shared key" autofocus>',
- {
- persistent: false,
- buttons: { "Save": true, "Cancel": false},
- defaultButton: 1,
- loaded: function (event) {
- document.getElementById('lockKey').focus();
- },
- submit: function (e, v, m, f) {
- 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();
- }
- }
- };
-
- /**
- * Shows the main toolbar.
- */
- my.showToolbar = function() {
- if (!$('#header').is(':visible')) {
- $('#header').show("slide", { direction: "up", duration: 300});
-
- if (toolbarTimeout) {
- clearTimeout(toolbarTimeout);
- toolbarTimeout = null;
- }
- toolbarTimeout = setTimeout(hideToolbar, TOOLBAR_TIMEOUT);
- TOOLBAR_TIMEOUT = 4000;
- }
-
- if (focus != null)
- {
- // TODO: Enable settings functionality. Need to uncomment the settings button in index.html.
- // $('#settingsButton').css({visibility:"visible"});
- }
-
- // Show/hide desktop sharing button
- showDesktopSharingButton();
- };
-
- /**
- * Docks/undocks the toolbar.
- *
- * @param isDock indicates what operation to perform
- */
- my.dockToolbar = function(isDock) {
- if (isDock) {
- // First make sure the toolbar is shown.
- if (!$('#header').is(':visible')) {
- Toolbar.showToolbar();
- }
- // Then clear the time out, to dock the toolbar.
- clearTimeout(toolbarTimeout);
- toolbarTimeout = null;
- }
- else {
- if (!$('#header').is(':visible')) {
- Toolbar.showToolbar();
- }
- else {
- toolbarTimeout = setTimeout(hideToolbar, TOOLBAR_TIMEOUT);
- }
- }
- };
-
- /**
- * Updates the lock button state.
- */
- my.updateLockButton = function() {
- buttonClick("#lockIcon", "icon-security icon-security-locked");
- };
-
- /**
- * Hides the toolbar.
- */
- var hideToolbar = function () {
- var isToolbarHover = false;
- $('#header').find('*').each(function () {
- var id = $(this).attr('id');
- if ($("#" + id + ":hover").length > 0) {
- isToolbarHover = true;
- }
- });
-
- clearTimeout(toolbarTimeout);
- toolbarTimeout = null;
-
- if (!isToolbarHover) {
- $('#header').hide("slide", { direction: "up", duration: 300});
- }
- else {
- toolbarTimeout = setTimeout(hideToolbar, TOOLBAR_TIMEOUT);
- }
- };
-
- return my;
- }(Toolbar || {}));
|