diff --git a/public/js/vroom.js b/public/js/vroom.js index 7f26d65..e43ea8e 100644 --- a/public/js/vroom.js +++ b/public/js/vroom.js @@ -78,6 +78,16 @@ function inviteUrlPopup(){ return false; } +// Add a new email address to be notified whn someone joins +function addNotifiedEmail(email){ + var id = email.replace('@', '_AT_').replace('.', '_DOT_'); + $('
').html(email + ' ' + + ' ' + + ' ') + .attr('id', 'emailNotification_' + id) + .appendTo('#emailNotificationList'); +} + // Remove the address from the list function removeNotifiedEmail(email){ var id = email.replace('@', '_AT_').replace('.', '_DOT_'); @@ -104,11 +114,92 @@ function removeNotifiedEmail(email){ }); } +// Escape entities +function stringEscape(string){ + string = string.replace(/[\u00A0-\u99999<>\&]/gim, function(i) { + return '' + i.charCodeAt(0) + ';'; + }); + return string; +} + +// Select a color (randomly) from this list, used for text chat +function chooseColor(){ + // Shamelessly taken from http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/ + var colors = [ + '#B1C7FD', '#DDFDB1', '#FDB1F3', '#B1FDF0', '#FDDAB1', '#C4B1FD', '#B4FDB1', '#FDB1CA', + '#B1E1FD', '#F7FDB1', '#EDB1FD', '#B1FDD7', '#FDC1B1', '#B1B7FD', '#CEFDB1', '#FDB1E4', + '#B1FAFD', '#FDEAB1', '#D4B1FD', '#B1FDBD', '#FDB1BB', '#B1D1FD', '#E7FDB1', '#FDB1FD', + '#B1FDE7', '#B1FDE7' + ]; + return colors[Math.floor(Math.random() * colors.length)]; +} + // set the height of the thumbnails so they are always equals function setPanelHeight() { $('.panelIndex').height(Math.max.apply(null, $('.panelIndex').map(function() { return $(this).height(); }))); } +// Just play a sound +function playSound(sound){ + var audio = new Audio(rootUrl + 'snd/' + sound); + audio.play(); +} + +// Request full screen +function fullScreen(el){ + if (el.requestFullScreen){ + el.requestFullScreen(); + } + else if (el.webkitRequestFullScreen){ + el.webkitRequestFullScreen(); + } + else if (el.mozRequestFullScreen){ + el.mozRequestFullScreen(); + } +} + +// Linkify urls +// Taken from http://rickyrosario.com/blog/converting-a-url-into-a-link-in-javascript-linkify-function/ +function linkify(text){ + if (text) { + text = text.replace( + /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi, + function(url){ + var full_url = url; + if (!full_url.match('^https?:\/\/')) { + full_url = 'http://' + full_url; + } + return '' + url + ''; + } + ); + } + return text; +} + +// Save content to a file +function downloadContent(filename, content){ + var blob = new Blob([content], {type: 'text/html;charset=utf-8'}); + saveAs(blob, filename); +} + +// Return current time formatted as XX:XX:XX +function getTime(){ + var d = new Date(); + var hours = d.getHours().toString(), + minutes = d.getMinutes().toString(), + seconds = d.getSeconds().toString(); + hours = (hours.length < 2) ? '0' + hours:hours; + minutes = (minutes.length < 2) ? '0' + minutes:minutes; + seconds = (seconds.length < 2) ? '0' + seconds:seconds; + return hours + ':' + minutes + ':' + seconds; +} + +// get max height for the main video and the preview div +function maxHeight(){ + // Which is the window height, minus toolbar, and a margin of 25px + return $(window).height()-$('#toolbar').height()-25; +} + setTimeout(function(){ setPanelHeight(); }, 50); @@ -153,14 +244,6 @@ function initVroom(room) { $('#noWebrtcSupport').modal('show'); } - // Escape entities - function stringEscape(string){ - string = string.replace(/[\u00A0-\u99999<>\&]/gim, function(i) { - return '' + i.charCodeAt(0) + ';'; - }); - return string; - } - // Update our role function getRoomInfo(){ $.ajax({ @@ -230,40 +313,6 @@ function initVroom(room) { }); } - // Select a color (randomly) from this list, used for text chat - function chooseColor(){ - // Shamelessly taken from http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/ - var colors = [ - '#B1C7FD', '#DDFDB1', '#FDB1F3', '#B1FDF0', '#FDDAB1', '#C4B1FD', '#B4FDB1', '#FDB1CA', - '#B1E1FD', '#F7FDB1', '#EDB1FD', '#B1FDD7', '#FDC1B1', '#B1B7FD', '#CEFDB1', '#FDB1E4', - '#B1FAFD', '#FDEAB1', '#D4B1FD', '#B1FDBD', '#FDB1BB', '#B1D1FD', '#E7FDB1', '#FDB1FD', - '#B1FDE7', '#B1FDE7' - ]; - return colors[Math.floor(Math.random() * colors.length)]; - } - - // Just play a sound - function playSound(sound){ - var audio = new Audio(rootUrl + 'snd/' + sound); - audio.play(); - } - - // Request full screen - function fullScreen(el){ - if (el.requestFullScreen) - el.requestFullScreen(); - else if (el.webkitRequestFullScreen) - el.webkitRequestFullScreen(); - else if (el.mozRequestFullScreen) - el.mozRequestFullScreen(); - } - - // get max height for the main video and the preview div - function maxHeight(){ - // Which is the window height, minus toolbar, and a margin of 25px - return $(window).height()-$('#toolbar').height()-25; - } - // Logout function hangupCall(){ webrtc.connection.disconnect(); @@ -399,36 +448,6 @@ function initVroom(room) { } } - // Return curren time formatted as XX:XX:XX - function getTime(){ - var d = new Date(); - var hours = d.getHours().toString(), - minutes = d.getMinutes().toString(), - seconds = d.getSeconds().toString(); - hours = (hours.length < 2) ? '0' + hours:hours; - minutes = (minutes.length < 2) ? '0' + minutes:minutes; - seconds = (seconds.length < 2) ? '0' + seconds:seconds; - return hours + ':' + minutes + ':' + seconds; - } - - // Linkify urls - // Taken from http://rickyrosario.com/blog/converting-a-url-into-a-link-in-javascript-linkify-function/ - function linkify(text){ - if (text) { - text = text.replace( - /((https?\:\/\/)|(www\.))(\S+)(\w{2,4})(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi, - function(url){ - var full_url = url; - if (!full_url.match('^https?:\/\/')) { - full_url = 'http://' + full_url; - } - return '' + url + ''; - } - ); - } - return text; - } - // Add a new message to the chat history function newChatMessage(from,message,time,color){ // displayName has already been escaped @@ -472,12 +491,6 @@ function initVroom(room) { $('#name_' + id + '_screen').html(screenName).css('background-color', color); } - // Save content to a file - function downloadContent(filename, content){ - var blob = new Blob([content], {type: 'text/html;charset=utf-8'}); - saveAs(blob, filename); - } - // Mute a peer function mutePeer(id){ if (peers[id] && peers[id].role != 'owner'){ @@ -546,16 +559,6 @@ function initVroom(room) { peers.local.videoPaused = false; } - // Add a new email address in the list of the ones notified when someone joins - function addNotifiedEmail(email){ - var id = email.replace('@', '_AT_').replace('.', '_DOT_'); - $('').html(email + ' ' + - ' ' + - ' ') - .attr('id', 'emailNotification_' + id) - .appendTo('#emailNotificationList'); - } - // An owner is muting/unmuting ourself webrtc.on('owner_toggle_mute', function(data){ if (peers[data.id].role != 'owner'){