var Etherpad = (function (my) { var etherpadName = null; var etherpadIFrame = null; var domain = null; var options = "?showControls=true&showChat=false&showLineNumbers=true&useMonospaceFont=false"; /** * Initializes the etherpad. */ my.init = function (name) { if (config.etherpad_base && !etherpadName) { domain = config.etherpad_base; if (!name) { // In case we're the focus we generate the name. etherpadName = Math.random().toString(36).substring(7) + '_' + (new Date().getTime()).toString(); shareEtherpad(); } else etherpadName = name; createEtherpadButton(); } } /** * Opens/hides the Etherpad. */ my.toggleEtherpad = function (isPresentation) { if (!etherpadIFrame) createIFrame(); // TODO FIX large video and prezi toggling. Too many calls from different places. var largeVideo = null; if (isPresentationVisible()) largeVideo = $('#presentation>iframe'); else largeVideo = $('#largeVideo'); if ($('#etherpad>iframe').css('visibility') == 'hidden') { largeVideo.fadeOut(300, function () { if (isPresentationVisible()) largeVideo.css({opacity:'0'}); else largeVideo.css({visibility:'hidden'}); $('#etherpad>iframe').fadeIn(300, function() { $('#etherpad>iframe').css({visibility:'visible'}); $('#etherpad').css({zIndex:2}); }); }); } else if ($('#etherpad>iframe')) { $('#etherpad>iframe').fadeOut(300, function () { $('#etherpad>iframe').css({visibility:'hidden'}); $('#etherpad').css({zIndex:0}); if (!isPresentation) { $('#largeVideo').fadeIn(300, function() { $('#largeVideo').css({visibility:'visible'}); }); } }); } }; /** * Shares the Etherpad name with other participants. */ function shareEtherpad() { connection.emuc.addEtherpadToPresence(etherpadName); connection.emuc.sendPresence(); } /** * Creates the Etherpad button and adds it to the toolbar. */ function createEtherpadButton() { //
// // var separator = document.createElement('div'); separator.className = 'header_button_separator'; var button = document.createElement('a'); button.className = 'button'; button.setAttribute('onclick', 'Etherpad.toggleEtherpad(0);'); var buttonImage = document.createElement('i'); buttonImage.setAttribute('title', 'Open shared document'); buttonImage.className = 'fa fa-file-text fa-lg'; button.appendChild(buttonImage); var toolbar = document.getElementById('toolbar'); toolbar.insertBefore(button, toolbar.childNodes[toolbar.childNodes.length - 4]); toolbar.insertBefore(separator, button); } /** * Creates the IFrame for the etherpad. */ function createIFrame() { etherpadIFrame = document.createElement('iframe'); etherpadIFrame.src = domain + etherpadName + options; etherpadIFrame.frameBorder = 0; etherpadIFrame.scrolling = "no"; etherpadIFrame.width = $('#largeVideoContainer').width() || 640; etherpadIFrame.height = $('#largeVideoContainer').height() || 480; etherpadIFrame.setAttribute('style', 'visibility: hidden;'); document.getElementById('etherpad').appendChild(etherpadIFrame); } /** * On Etherpad added to muc. */ $(document).bind('etherpadadded.muc', function (event, jid, etherpadName) { console.log("Etherpad added", etherpadName); if (config.etherpad_base && !focus) { Etherpad.init(etherpadName); } }); /** * On focus changed event. */ $(document).bind('focusechanged.muc', function (event, focus) { console.log("Focus changed"); if (config.etherpad_base) shareEtherpad(); }); /** * On video selected event. */ $(document).bind('video.selected', function (event, isPresentation) { if (!config.etherpad_base) return; if (etherpadIFrame && etherpadIFrame.style.visibility != 'hidden') Etherpad.toggleEtherpad(isPresentation); }); return my; }(Etherpad || {}));