From 5147dac51e9fd639f3cbc043bc509d7d9281ad6d Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Thu, 16 Aug 2012 20:13:23 +0200 Subject: [PATCH] fixed url for github button and updated jQuery --- package.json | 6 +- public/static/css/style.css | 24 ++-- public/static/images/sprites.png | Bin 14827 -> 19223 bytes public/static/js/home.js | 2 +- public/static/js/room.js | 189 ++++++++++++++----------------- views/footer.jade | 14 +-- views/header.jade | 2 +- 7 files changed, 112 insertions(+), 125 deletions(-) diff --git a/package.json b/package.json index 4af33bd..7213e95 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "dependencies": { "async": "0.1.x", - "canvas": "0.12.x", + "canvas": "0.13.x", "connect": "1.9.x", "connect-redis": "1.4.x", "express": "2.5.x", - "jade": "0.26.x", + "jade": "0.27.x", "nodemailer": "0.3.x", "redis": "0.7.x", "redis-url": "0.1.x", @@ -19,5 +19,5 @@ "start": "app.js" }, "subdomain": "binb", - "version": "0.3.2-16" + "version": "0.3.2-17" } \ No newline at end of file diff --git a/public/static/css/style.css b/public/static/css/style.css index 18d5adf..adb4d6d 100644 --- a/public/static/css/style.css +++ b/public/static/css/style.css @@ -84,7 +84,7 @@ input { .modal-footer { text-align: left; } -.modal-footer .btn { +.modal-footer .btn, #total-tracks, #tracks a, #nodejitsu-logo, .footer-info { float: right; } .thumbnails { @@ -214,7 +214,6 @@ input { display: inline-block; } #total-tracks { - float: right; color: #BFBFBF; margin-top: 34px; } @@ -598,7 +597,6 @@ input { margin-top: 11px; } #tracks a { - float:right; display:block; width:24px; height:24px; @@ -623,11 +621,11 @@ footer { } #footer-inner { border-top:1px solid white; - padding-top:5px; + padding:5px 20px 0 20px; margin-bottom:30px; } #copy { - margin: 0 20px 0 20px; + margin-right: 20px; } #facebook-button { width:90px; @@ -636,10 +634,18 @@ footer { #twitter-button, #github-button { width:100px; } -#copy, #footer-right { +#copy, .footer-info { line-height:20px; } -#footer-right { - float:right; - margin-right:20px; +.footer-info { + white-space: pre-wrap; +} +#nodejitsu-logo { + display: block; + width: 84px; + height: 20px; + background: url('/static/images/sprites.png') no-repeat 0 -208px; +} +#nodejitsu-logo:hover { + background: url('/static/images/sprites.png') no-repeat 0 -228px; } diff --git a/public/static/images/sprites.png b/public/static/images/sprites.png index 1c94c731643c2a85e3247b2af2914be6f214d194..e0906810c575a693ac5ba4fd6d35fc1bfa04fc7b 100644 GIT binary patch literal 19223 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 literal 14827 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/g,'>'); - }; - - // Exact match version of jQuery :contains selector - $.expr[":"].econtains = function(obj, index, meta, stack) { - return $(obj).html() === meta[0].replace(/^[\s\S]+:econtains\(([\s\S]+)\)$/, "$1"); + return this.replace(/&/g, '&').replace(//g, '>'); }; // Prompt for name and send it. var joinAnonymously = function(msg) { if (/nickname\s*\=/.test(document.cookie) && !msg) { - nickname = unescape(document.cookie.replace(/.*nickname\s*\=\s*([^;]*);?.*/, "$1")); + nickname = unescape(document.cookie.replace(/.*nickname\s*\=\s*([^;]*);?.*/, '$1')); socket.emit('joinanonymously', nickname, roomname); } else { @@ -88,15 +83,15 @@ button.click(function() { var val = $.trim(login.val()); - if (val !== "") { + if (val !== '') { nickname = val; socket.emit('joinanonymously', nickname, roomname); } else { - var txt = "Nickname can't be empty."; + var txt = 'Nickname can\'t be empty.'; invalidNickName(''+txt+''); } - login.val(""); + login.val(''); }); login.keyup(function(event) { @@ -119,7 +114,7 @@ // Submitted name was invalid var invalidNickName = function(feedback) { - joinAnonymously(feedback+"
Try with another one:"); + joinAnonymously(feedback+'
Try with another one:'); }; /* Triggered when a logged user tries to join a room from another tab or another browser @@ -136,13 +131,13 @@ // Successfully joined the room var ready = function(usersData, trackscount, loggedin) { if (!loggedin && !/nickname\s*\=/.test(document.cookie)) { - document.cookie = "nickname="+escape(nickname)+";path=/;"; + document.cookie = 'nickname='+escape(nickname)+';path=/;'; } DOM.modal.modal('hide').empty(); $('#total-tracks span').text(trackscount); - var msg = nickname+" joined the game"; - var joinspan = $(""); + var msg = nickname+' joined the game'; + var joinspan = $(''); joinspan.text(msg); addChatEntry(joinspan); updateUsers(usersData); @@ -150,7 +145,7 @@ DOM.messagebox.keydown(function(event) { if (event.keyCode === 13) { var val = $.trim(DOM.messagebox.val()); - if (val !== "") { + if (val !== '') { if (pvtmsgto) { socket.emit('sendchatmsg', val, pvtmsgto); } @@ -158,7 +153,7 @@ socket.emit('sendchatmsg', val); } } - DOM.messagebox.val(""); + DOM.messagebox.val(''); } }); @@ -166,7 +161,7 @@ switch (event.keyCode) { case 13: // return var guess = $.trim(DOM.guessbox.val()); - if (guess !== "") { + if (guess !== '') { socket.emit('guess', guess.toLowerCase()); historyvalues.push(guess); if (historyvalues.length > 20) { @@ -174,7 +169,7 @@ } historycursor = historyvalues.length; } - DOM.guessbox.val(""); + DOM.guessbox.val(''); break; case 38: // up-arrow if (historycursor > 0) { @@ -187,7 +182,7 @@ } else { historycursor = historyvalues.length; - DOM.guessbox.val(""); + DOM.guessbox.val(''); } } }); @@ -203,19 +198,19 @@ socket.on('trackinfo', addTrackInfo); socket.on('artistmatched', function() { var feedback = amstrings[Math.floor(Math.random()*amstrings.length)]; - addFeedback(feedback, "correct"); + addFeedback(feedback, 'correct'); }); socket.on('titlematched', function() { var feedback = tmstrings[Math.floor(Math.random()*tmstrings.length)]; - addFeedback(feedback, "correct"); + addFeedback(feedback, 'correct'); }); socket.on('bothmatched', function() { var feedback = bmstrings[Math.floor(Math.random()*bmstrings.length)]; - addFeedback(feedback, "correct"); + addFeedback(feedback, 'correct'); }); socket.on('nomatch', function() { var feedback = nmstrings[Math.floor(Math.random()*nmstrings.length)]; - addFeedback(feedback, "wrong"); + addFeedback(feedback, 'wrong'); }); socket.on('stoptrying', function() { addFeedback('You guessed both artist and title. Please wait...'); @@ -240,8 +235,8 @@ // A new player has joined the game var userJoin = function(username, usersData) { - var msg = username+" joined the game"; - var joinspan = $(""); + var msg = username+' joined the game'; + var joinspan = $(''); joinspan.text(msg); addChatEntry(joinspan); updateUsers(usersData); @@ -249,8 +244,8 @@ // A player has left the game var userLeft = function(username, usersData) { - var leftmsg = username+" left the game"; - var leftspan = $(""); + var leftmsg = username+' left the game'; + var leftspan = $(''); leftspan.text(leftmsg); addChatEntry(leftspan); updateUsers(usersData); @@ -297,7 +292,7 @@ } if (nickname === user.nickname) { - username.addClass("you"); + username.addClass('you'); roundpoints = user.roundpoints; DOM.rank.text(i+1); DOM.points.text(user.points); @@ -306,25 +301,25 @@ if (user.roundpoints > 0) { roundpointsel.text('+'+user.roundpoints); if (user.roundpoints === 1) { - username.addClass("matched"); + username.addClass('matched'); } else { if (user.roundpoints > 3) { var stand = 7 - user.roundpoints; - roundrank.addClass("round-rank stand"+stand); + roundrank.addClass('round-rank stand'+stand); var gtime = (user.guesstime / 1000).toFixed(1); - guesstime.text(gtime+" s"); + guesstime.text(gtime+' s'); } - username.addClass("correct"); + username.addClass('correct'); } } } if (!found && pvtmsgto) { var width = DOM.recipient.outerWidth(true) + 1; - DOM.recipient.css('margin-right','0'); - DOM.recipient.text(""); - DOM.messagebox.animate({'width':'+='+width+'px'}, "fast"); + DOM.recipient.css('margin-right', '0'); + DOM.recipient.text(''); + DOM.messagebox.animate({'width':'+='+width+'px'}, 'fast'); pvtmsgto = null; DOM.messagebox.focus(); } @@ -337,13 +332,17 @@ if (nickname === usrname) { return; } - DOM.recipient.css('margin-right','4px'); - DOM.recipient.text("To "+usrname+":"); + DOM.recipient.css('margin-right', '4px'); + DOM.recipient.text('To '+usrname+':'); var width = DOM.recipient.outerWidth(true) + 1; DOM.recipient.hide(); - DOM.messagebox.animate({'width':'-='+width+'px'}, "fast", function() {DOM.recipient.show();}); - var el = $("span.name:econtains("+usrname.encodeEntities()+")"); - el.prevAll(".private").show(); + DOM.messagebox.animate({'width':'-='+width+'px'}, 'fast', function() { + DOM.recipient.show(); + }); + var el = $('.name').filter(function(index) { + return $(this).text() === usrname; + }); + el.prevAll('.private').show(); el.unbind('click'); el.click(clearPrivate); pvtmsgto = usrname; @@ -352,12 +351,14 @@ var clearPrivate = function() { var width = DOM.recipient.outerWidth(true) + 1; - DOM.recipient.css('margin-right','0'); - DOM.recipient.text(""); - DOM.messagebox.animate({'width':'+='+width+'px'}, "fast"); - var el = $("span.name:econtains("+pvtmsgto.encodeEntities()+")"); - el.prevAll(".private").hide(); - el.unbind("click"); + DOM.recipient.css('margin-right', '0'); + DOM.recipient.text(''); + DOM.messagebox.animate({'width':'+='+width+'px'}, 'fast'); + var el = $('.name').filter(function(index) { + return $(this).text() === pvtmsgto; + }); + el.prevAll('.private').hide(); + el.unbind('click'); el.click(function() { addPrivate($(this).text()); }); @@ -386,30 +387,30 @@ // Receive a chat message var getChatMessage = function(chatmsg, from, to) { var prefix = from; - var msgspan = $(""); + var msgspan = $(''); if (to) { // Private Message prefix = (nickname === from) ? '(To '+to+')' : '(From '+prefix+')'; - msgspan.addClass("private"); + msgspan.addClass('private'); } - var msg = prefix+": "+chatmsg; + var msg = prefix+': '+chatmsg; msgspan.html(urlize(msg)); addChatEntry(msgspan); }; var loadTrack = function(previewUrl) { - jplayer.jPlayer("mute"); - jplayer.jPlayer("setMedia", {m4a: previewUrl}); + jplayer.jPlayer('mute'); + jplayer.jPlayer('setMedia', {m4a: previewUrl}); }; // Play a track var playTrack = function(data) { if (touchplay) { - touchplay.removeClass("btn-danger disabled").addClass("btn-success"); + touchplay.removeClass('btn-danger disabled').addClass('btn-success'); touchplay.html(' Play'); } - jplayer.jPlayer("unmute"); - jplayer.jPlayer("play"); + jplayer.jPlayer('unmute'); + jplayer.jPlayer('play'); updateUsers(data.users); cassetteAnimation(Date.now()+30000, true); if (data.counter === 1) { @@ -436,14 +437,7 @@ offsetleft = 44 - 24*secleft/30; offsetright = 130 - 24*secleft/30; DOM.progress.width(width); - css = { - '-moz-transform' : 'rotate('+deg+'deg)', - '-webkit-transform' : 'rotate('+deg+'deg)', - '-o-transform' : 'rotate('+deg+'deg)', - '-ms-transform' : 'rotate('+deg+'deg)', - 'transform' : 'rotate('+deg+'deg)' - }; - DOM.cassettewheels.css(css); + DOM.cassettewheels.css('transform', 'rotate('+deg+'deg)'); DOM.tapeleft.css('left', offsetleft+'px'); DOM.taperight.css('left', offsetright+'px'); } @@ -453,14 +447,7 @@ offsetleft = 20 + 24*secleft/5; offsetright = 106 + 24*secleft/5; DOM.progress.width(width); - css = { - '-moz-transform' : 'rotate('+deg+'deg)', - '-webkit-transform' : 'rotate('+deg+'deg)', - '-o-transform' : 'rotate('+deg+'deg)', - '-ms-transform' : 'rotate('+deg+'deg)', - 'transform' : 'rotate('+deg+'deg)' - }; - DOM.cassettewheels.css(css); + DOM.cassettewheels.css('transform', 'rotate('+deg+'deg)'); DOM.tapeleft.css('left', offsetleft+'px'); DOM.taperight.css('left', offsetright+'px'); } @@ -483,7 +470,7 @@ // Add track info var addTrackInfo = function(data) { if (touchplay) { - touchplay.removeClass("btn-success").addClass("btn-danger disabled"); + touchplay.removeClass('btn-success').addClass('btn-danger disabled'); touchplay.html(' Wait'); } cassetteAnimation(Date.now()+5000, false); @@ -497,8 +484,8 @@ , rp = ''; if (data.trackName.length > 45) { - titleattr = data.trackName.replace(/"/g, """); - trackname = data.trackName.substring(0,42) + '...'; + titleattr = data.trackName.replace(/"/g, '"'); + trackname = data.trackName.substring(0, 42) + '...'; } html += '
'+trackname+'
'; @@ -546,7 +533,7 @@ var meantime = "N/A"; if (podium[i].guessed !== 0) { meantime = podium[i].totguesstime / podium[i].guessed; - meantime = (meantime / 1000).toFixed(1)+" s"; + meantime = (meantime / 1000).toFixed(1)+' s'; } html += ''+meantime+''; } @@ -562,8 +549,8 @@ // Let the user know when he/she has disconnected var disconnect = function() { stopanimation = true; - jplayer.jPlayer("stop"); - var errorspan = $("ERROR: You have disconnected."); + jplayer.jPlayer('stop'); + var errorspan = $('ERROR: You have disconnected.'); addChatEntry(errorspan); addFeedback('Something wrong happened'); DOM.users.empty(); @@ -571,23 +558,23 @@ // Add a chat entry, whether message, notification, etc. var addChatEntry = function(childNode) { - var li = $("
  • "); + var li = $('
  • '); li.append(childNode); DOM.chat.append(li); DOM.chat[0].scrollTop = DOM.chat[0].scrollHeight; }; var hideChat = function() { - DOM.togglechat.text("Show chat").unbind('click'); + DOM.togglechat.text('Show chat').unbind('click'); DOM.chatwrapper.toggle(300); - DOM.tracks.animate({maxHeight:"434px"}, 300); + DOM.tracks.animate({maxHeight:'434px'}, 300); DOM.togglechat.click(showChat); }; var showChat = function() { - DOM.togglechat.text("Hide chat").unbind('click'); + DOM.togglechat.text('Hide chat').unbind('click'); DOM.chatwrapper.toggle(300); - DOM.tracks.animate({maxHeight:"240px"}, 300, function() { + DOM.tracks.animate({maxHeight:'240px'}, 300, function() { DOM.chat[0].scrollTop = DOM.chat[0].scrollHeight; }); DOM.togglechat.click(hideChat); @@ -612,7 +599,7 @@ '
    '+ // Rail '
    '+ // Current volume '
    '+ // Handle - '').appendTo("#volume"); + '').appendTo('#volume'); var icon = volumebutton.find('#icon') , volumeslider = volumebutton.find('#volume-slider') @@ -657,14 +644,14 @@ var setVolume = function(volume) { handleIcon(volume); oldvalue = volume; - jplayer.jPlayer("volume", volume); + jplayer.jPlayer('volume', volume); }; var handleVolumeMove = function(e) { var totaloffset = volumetotal.offset() , newy = e.pageY - totaloffset.top , railheight = volumetotal.height() - , totalTop = parseInt(volumetotal.css('top').replace(/px/,''),10) + , totalTop = parseInt(volumetotal.css('top').replace(/px/, ''), 10) , volume = (railheight - newy) / railheight; if (newy < 0) { @@ -676,21 +663,21 @@ volumehandle.css('top', totalTop + newy - (volumehandle.height() / 2)); volumecurrent.height(railheight - newy); - volumecurrent.css('top',newy+totalTop); + volumecurrent.css('top', newy + totalTop); - volume = Math.max(0,volume); - volume = Math.min(volume,1); + volume = Math.max(0, volume); + volume = Math.min(volume, 1); setVolume(volume); var d = new Date(); d.setTime(d.getTime() + 31536000000); // One year in milliseconds - document.cookie = "volume="+volume+";path=/;expires="+d.toGMTString()+";"; + document.cookie = 'volume='+volume+';path=/;expires='+d.toGMTString()+';'; }; var loadFromCookie = function() { if (/volume\s*\=/.test(document.cookie)) { - var value = document.cookie.replace(/.*volume\s*\=\s*([^;]*);?.*/, "$1"); + var value = document.cookie.replace(/.*volume\s*\=\s*([^;]*);?.*/, '$1'); value = parseFloat(value); positionVolumeHandle(value); setVolume(value); @@ -732,7 +719,7 @@ if (!clicked) { clicked = true; if (oldvalue !== 0) { - jplayer.jPlayer("volume", 0); + jplayer.jPlayer('volume', 0); positionVolumeHandle(0); handleIcon(0); } @@ -740,7 +727,7 @@ else { clicked = false; if (oldvalue !== 0) { - jplayer.jPlayer("volume", oldvalue); + jplayer.jPlayer('volume', oldvalue); positionVolumeHandle(oldvalue); handleIcon(oldvalue); } @@ -774,7 +761,7 @@ // Set up the room. $(function() { setVariables(); - DOM.modal.modal({keyboard:false,show:false,backdrop:"static"}); + DOM.modal.modal({keyboard:false, show:false, backdrop:'static'}); DOM.togglechat.click(hideChat); if ($.browser.mozilla) { // Block ESC button in firefox (breaks socket connections). @@ -784,9 +771,9 @@ } }); } - socket = io.connect("http://binb.nodejitsu.com/", {'reconnect':false}); - socket.on("connect", function() { - jplayer = $("#player").jPlayer({ + socket = io.connect('http://'+window.location.host, {'reconnect':false}); + socket.on('connect', function() { + jplayer = $('#player').jPlayer({ ready: function() { socket.emit('loggedin', function(data) { if (data) { @@ -802,10 +789,10 @@ var touchbackdrop = $('
    '+ '
    ').appendTo("#cassette"); + '').appendTo('#cassette'); touchplay = $('#touch-play'); touchplay.click(function() { - if (!$(this).hasClass("btn-danger")) { + if (!$(this).hasClass('btn-danger')) { touchplay = null; jplayer.jPlayer('play', elapsedtime); touchbackdrop.remove(); @@ -813,15 +800,15 @@ }); } }, - swfPath: "/static/swf/", - supplied: "m4a", - preload: "auto", + swfPath: '/static/swf/', + supplied: 'm4a', + preload: 'auto', volume: 1 }); }); socket.on('alreadyinaroom', alreadyInARoom); socket.on('invalidnickname', invalidNickName); socket.on('ready', ready); - socket.on("disconnect", disconnect); + socket.on('disconnect', disconnect); }); })(); diff --git a/views/footer.jade b/views/footer.jade index afa5371..2d67ba0 100644 --- a/views/footer.jade +++ b/views/footer.jade @@ -6,13 +6,7 @@ footer iframe#twitter-button(allowtransparency="true", frameborder="0", scrolling="no", src="//platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fbinb.nodejitsu.com") iframe#github-button(allowtransparency="true", frameborder="0", scrolling="0", - src="http://markdotto.github.com/github-buttons/github-btn.html?user=lpinca&repo=binb&type=watch&count=true") - #footer-right Made with - a(target="_blank", href="http://nodejs.org/") node.js - | , - a(target="_blank", href="http://socket.io/") socket.io - | , - a(target="_blank", href="http://redis.io/") redis.io - | , - a(target="_blank", href="http://nodejitsu.com/") nodejitsu - | . Optimized for Google Chrome. + src="http://ghbtns.com/github-btn.html?user=lpinca&repo=binb&type=watch&count=true") + span.footer-info . Optimized for Google Chrome. + a#nodejitsu-logo(target="_blank", href="http://nodejitsu.com/") + span.footer-info Powered by diff --git a/views/header.jade b/views/header.jade index 0178479..56d25b2 100644 --- a/views/header.jade +++ b/views/header.jade @@ -7,7 +7,7 @@ head meta(name="keywords", content="iTunes, music, quiz, binb, beatquest, realtime, multiplayer, listening, game") meta(name="description", content="Simple, realtime, multiplayer, competitive music listening game. Guess the song and prove your music knowledge!") meta(name="author", content="Luigi Pinca") - script(src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js") + script(src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js") script var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-29865853-1']); -- 2.54.0