# HG changeset patch # User veltr # Date 1329822721 -3600 # Node ID 03c54e8c00dc4c48425d55b159366133df93c9a3 # Parent 1cc92b8c3a38bfb84bf10d0e090f4e2869eb6451# Parent a7b169ba0172834acb0ba48d94962f5e08467d93 Merge with a7b169ba0172834acb0ba48d94962f5e08467d93 diff -r 1cc92b8c3a38 -r 03c54e8c00dc client/js/tweetanim.js --- a/client/js/tweetanim.js Tue Feb 21 12:09:36 2012 +0100 +++ b/client/js/tweetanim.js Tue Feb 21 12:12:01 2012 +0100 @@ -3,7 +3,7 @@ var countTweets = 0; var isPlayingTweets = false; // auto start var SPEED_TWEETS = 10; -var MAX_VOTES = 25; +var MAX_VOTES = 5; var DUMP_TWEETS = 10; var toDel = []; @@ -12,6 +12,12 @@ var ts = []; +var candidats = Array(4); + +for(var h= 0; h < 4; h++) { + toDel[h] = []; +} + var b = 0; var defaultTweet = { @@ -51,7 +57,7 @@ }, queueTweet: function(t) { - console.log("Queued " + t.text); + tweetQueue.push({t: t, anim: true}); $('#nbr-mesure-new').html(tweetQueue.length); /* @@ -141,12 +147,11 @@ if(doSshift) TweetAnim.shiftQueue(); -/* - toDel.push(t); - current_past_tweet = toDel.length; - ts[t.candidats[0]]++; - checkSilos(); - */ + + toDel[t.cat].push(t); + checkSilos(); + + } } @@ -172,16 +177,23 @@ function checkSilos() { - for(var j=0; jMAX_VOTES) { - j=ts.length+1; - emptySilos(); + for(var j=0; j<4; j++) { + if(toDel[j].length>MAX_VOTES) { + + var ids = toDel[j].shift(); + world.DestroyBody(b2bod[ids.id_str]); + console.log(b2bod[ids.id_str]); + + $('#'+ids.id_str).delay(10).hide("slow").queue(function() { + $(this).remove(); + }); } } } - +/* function emptySilos() { + console.log("emptySilos"); var toDel2 = []; var m =0; @@ -205,5 +217,5 @@ toDel = toDel2; current_past_tweet=toDel.length; } - +*/ TweetAnim.init(); diff -r 1cc92b8c3a38 -r 03c54e8c00dc client/js/tweetvote-anim.js --- a/client/js/tweetvote-anim.js Tue Feb 21 12:09:36 2012 +0100 +++ b/client/js/tweetvote-anim.js Tue Feb 21 12:12:01 2012 +0100 @@ -44,22 +44,7 @@ TweetAnim.shiftQueue(); */ function init() { -/* - var canvas = document.getElementById('tube-container'); - canvas.onmousedown = onDocumentMouseDown; - canvas.onmouseup = onDocumentMouseUp; - canvas.onmousemove = onDocumentMouseMove; - - var canvas = document.getElementById('canvas'); - canvas.onmousedown = onDocumentMouseDown; - canvas.onmouseup = onDocumentMouseUp; - canvas.onmousemove = onDocumentMouseMove; - var canvas = document.getElementById('btn-tweet-next'); - canvas.onmousedown = onDocumentMouseDown; - canvas.onmouseup = onDocumentMouseUp; - canvas.onmousemove = onDocumentMouseMove; - */ worldAABB = new b2AABB(); worldAABB.minVertex.Set( -200, -200 ); worldAABB.maxVertex.Set( window.innerWidth + 200, window.innerHeight + 200 ); @@ -291,73 +276,44 @@ walls[3] = null; } else { - wall_thickness = 20; - - walls[0] = createBox(world, 1910, 900, wall_thickness, 900); // rightmost wall - walls[1] = createBox(world, 1540, 600, wall_thickness, 300); // wall 4 / 3 - - walls[2] = createBox(world, 1160, 600, wall_thickness, 300); // wall 3 / 2 - walls[3] = createBox(world, 790, 600, wall_thickness, 300); // wall 2 / 1 - walls[4] = createBox(world, 420, 600, wall_thickness, 300); // leftmostwall - - walls[5] = createBox(world, 580, 600, 170, 10); // 4 - walls[6] = createBox(world, 950, 750, 170, 10); // 3 - walls[7] = createBox(world, 1320, 750, 170, 10); // 2 - walls[8] = createBox(world, 1690, 600, 170, 10); // 1 - - setInterval(function() { + wall_thickness = 20; + + walls[0] = createBox(world, 1910, 900, wall_thickness, 900); // rightmost wall + walls[1] = createBox(world, 1540, 600, wall_thickness, 300); // wall 4 / 3 + + walls[2] = createBox(world, 1160, 600, wall_thickness, 300); // wall 3 / 2 + walls[3] = createBox(world, 790, 600, wall_thickness, 300); // wall 2 / 1 + walls[4] = createBox(world, 420, 600, wall_thickness, 300); // leftmostwall + + walls[5] = createBox(world, 580, 600, 170, 10); // 4 + walls[6] = createBox(world, 950, 750, 170, 10); // 3 + walls[7] = createBox(world, 1320, 750, 170, 10); // 2 + walls[8] = createBox(world, 1690, 600, 170, 10); // 1 + + setInterval(function() { + + // Check if div podiums are already loaded + if($('#podium div').size() > 0) { + + $('#podium div').each( function(idx, panel) { + + var idxWall = 5+idx; + var yWall = 920-$(this).height(); + world.DestroyBody(walls[idxWall]); + walls[idxWall] = createBox(world, 580+370*idx, yWall, 170, 10); + + }); + } + }, 1000); - if($('#podium div').size() > 0) { - - $('#podium div').each( function(idx, panel) { - - var idxWall = 5+idx; - var yWall = 945-$(this).height(); - world.DestroyBody(walls[idxWall]); - walls[idxWall] = createBox(world, 580+370*idx, yWall, 170, 10); - - }); - } - }, 1000); - -// walls[6] = createBox(world, 1340, 800, 170, 10); // 3 - - /* - setInterval(function() { - - var tmp = walls[5].m_position.y; - world.DestroyBody(walls[5]); - walls[5] = createBox(world, 1690, tmp-1, 170, 10, true); - - console.log(walls[5].m_position.y); - - }, 1000); - */ - - /* - walls[0] = createBox(world, stage[0] , stage[3] + wall_thickness-32, stage[2], wall_thickness); // bottom wall - - walls[2] = createBox(world, stage[2]-400, 850, 50, 100); // middle wall - - // walls[3] = createBox(world, stage[2]-400, 100, wall_thickness, 700); // right wall - walls[3] = createBox(world, 300, 800, 100, 200); // left wall -/* - for (var i = 0; i < candidats.length; i++) { // drawing silos walls - createBox(world, (stage[2]/candidats.length*i)-(wall_thickness/3), stage[3], wall_thickness/3, 200); - } - */ } } function createBallTweetForce(t) { - - var xpos = 40; - var ypos = 70; - var element = document.createElement( 'div' ); - element.width = BALL_SIZE; - element.height = BALL_SIZE; + element.width = 96; + element.height = 96; element.style.position = 'absolute'; element.style.left = -200 + 'px'; element.style.top = -200 + 'px'; @@ -366,20 +322,124 @@ element.id = t.id_str; var id = "tweet_"+bodies.length; -var canvas = document.getElementById( 'canvas' ); + var canvas = document.getElementById('canvas'); canvas.appendChild(element); elements.push( element ); + BALL_SIZE = 150; + + var circle = document.createElement('canvas'); + circle.width = 96; + circle.height = 96; + + var offset = (48 - BALL_SIZE)/2; + + var graphics = circle.getContext('2d'); + graphics.fillStyle = "white"; + graphics.beginPath(); + graphics.arc(BALL_SIZE* .25+10, BALL_SIZE* .25, BALL_SIZE* .25, 0, PI2, true); + graphics.closePath(); + graphics.fill(); + + graphics.fillStyle = "#E2F0D6"; + graphics.beginPath(); + graphics.arc(BALL_SIZE * .5 +offset+24, BALL_SIZE * .5+offset+14, BALL_SIZE * .20, 0, PI2, true); + graphics.closePath(); + graphics.fill(); + + var img = new Image(); + img.src = t.profile_image_url; + + img.onload = function(){ + + // Resize image + var canvasCopy = document.createElement("canvas"); + var copyContext = canvasCopy.getContext("2d"); + canvasCopy.width = 96; + canvasCopy.height = 96; + copyContext.drawImage(img, 0, 0, 96, 96); + + var ptrn = graphics.createPattern(canvasCopy,'no-repeat'); + graphics.fillStyle = ptrn; + graphics.fill(-5,0,150,150); + } + + element.appendChild(circle); + + text = document.createElement( 'div' ); + text.onSelectStart = null; + text.style.color = "#95AB63"; + text.style.position = 'absolute'; + text.style.left = '0px'; + text.style.top = '0px'; + text.style.fontFamily = 'Georgia'; + text.style.textAlign = 'center'; + text.id = t.id_str; + element.appendChild(text); + + var circle = new b2CircleDef(); + circle.radius = BALL_SIZE/4+2 ; + circle.density = 1; + circle.friction = 0.3; + circle.restitution = 0.3; + + var a, b, xpos, ypos; + + switch (t.cat) { + case 0: // 1 + a = 150; + b = -100; + xpos = 40; + ypos = 90; + break; + case 1: // 2 + a = 250; + b = -150; + xpos = 40; + ypos = 70; + break; + case 2: // 3 + a = 350; + b = -100; + xpos = 40; + ypos = 70; + break; + case 3: // 4 + a = 390; + b = -180; + xpos = 40; + ypos = 70; + break; + default: + a = 390; + b = -180; + xpos = 40; + ypos = 70; + console.log("DEFAULT IMPULS PARAMS! Should not be there.."); + break; + } + + var b2body = new b2BodyDef(); + b2body.AddShape(circle); + b2body.userData = {element: element}; + b2body.position.Set( xpos, ypos); + + b2body.linearVelocity.Set(a, b); + b2bod[t.id_str] = world.CreateBody(b2body); + console.log("created " + t.id_str) + bodies.push(b2bod[t.id_str]); + + $("#"+t.id_str).mouseover(function() { - - $(this).fadeTo(250, 0.1); + console.log(t.id_str); + $("#tooltip-bulle .tweet-screen-name").text(t.from_user); $("#tooltip-bulle .tweet-full-name").text(t.from_user_name); $("#tooltip-bulle .tweet-text").text(t.text); $("#tooltip-bulle .tweet-time").text(t.created_at); $("#tooltip-bulle .tweet-img-avatar").attr( 'src' , t.profile_image_url ); var thisX = parseInt($(this).css('left'),10)+10; -// console.log(thisX);//visibility:hidden + $('#bulle-tooltip-template').css('visibility','visible'); //$('#bulle-tooltip-template').css('top', thisX).css('left', thisY); $(this).css('cursor','pointer'); @@ -392,13 +452,12 @@ }); $("#"+t.id_str).mouseout(function() { - $('#bulle-tooltip-template').css('visibility','hidden'); - $('#accolade-right').css('visibility','hidden'); - $('#accolade-left').css('visibility','hidden'); + $('#bulle-tooltip-template').css('visibility','hidden'); + $('#accolade-right').css('visibility','hidden'); + $('#accolade-left').css('visibility','hidden'); $(this).css('cursor','auto'); - $(this).dequeue(); - $(this).fadeTo(250, 0.8); + //$(this).dequeue(); }); $("#"+t.id_str).click(function() { @@ -406,163 +465,5 @@ fancyBoxTwitter(t.from_user, (t.candidats && t.candidats.length ? candidats[t.candidats[0]].couleur : '#666699')); // window.open("https://twitter.com/#!/"+t.from_user+"/status/"+t.id_str); } - }); - - BALL_SIZE = 150; - - var circle = document.createElement('canvas'); - circle.width = BALL_SIZE; - circle.height = BALL_SIZE; - - var offset = (48 - BALL_SIZE)/2; - - var graphics = circle.getContext('2d'); - graphics.fillStyle = "white"; - graphics.beginPath(); - graphics.arc(BALL_SIZE* .25+10, BALL_SIZE* .25, BALL_SIZE* .25, 0, PI2, true); - graphics.closePath(); - graphics.fill(); - - graphics.fillStyle = "#E2F0D6"; - graphics.beginPath(); - graphics.arc(BALL_SIZE * .5 +offset+24, BALL_SIZE * .5+offset+14, BALL_SIZE * .20, 0, PI2, true); - graphics.closePath(); - graphics.fill(); - - var size = BALL_SIZE; -// for (var i = size; i > 0; i-= (size/10)) { - - - - // } - - /* ORIGIN - graphics.fillStyle = "#E2F0D6"; - graphics.beginPath(); - graphics.arc(BALL_SIZE * .5 +offset, BALL_SIZE * .5+offset, BALL_SIZE * .25, 0, PI2, true); - graphics.closePath(); - graphics.fill(); - - */ - - var img = new Image(); - img.src = t.profile_image_url; - - img.onload = function(){ - - var canvasCopy = document.createElement("canvas"); - var copyContext = canvasCopy.getContext("2d"); - - canvasCopy.width = 96; - canvasCopy.height = 96; - copyContext.drawImage(img, 0, 0, 96, 96); - - var ptrn = graphics.createPattern(canvasCopy,'no-repeat'); - graphics.fillStyle = ptrn; - graphics.fill(-5,0,150,150); - - } - - - - element.appendChild( circle ); - - text = document.createElement( 'div' ); - text.onSelectStart = null; - text.style.color = "#95AB63"; - text.style.position = 'absolute'; - text.style.left = '0px'; - text.style.top = '0px'; - text.style.fontFamily = 'Georgia'; - text.style.textAlign = 'center'; - element.appendChild(text); - - var circle = new b2CircleDef(); - circle.radius = BALL_SIZE/4+2 ; - circle.density = 1; - circle.friction = 0.3; - circle.restitution = 0.3; - - var b2body = new b2BodyDef(); - b2body.AddShape(circle); - b2body.userData = {element: element}; - b2body.position.Set( xpos, ypos); - - var a, b; - - switch (t.cat) { - case 0: // 1 - a = 150; - b = -100; - break; - case 1: // 2 - a = 250; - b = -150; - break; - case 2: // 3 - a = 350; - b = -100; - break; - case 3: // 4 - a = 390; - b = -180; - break; - /* - case 4: // Jean-Pierre Chevènement - a = 390; - b = -180; - break; - - case 5: // Eva Joly - a = 170; - b = -30; - break; - case 6: // Corinne Lepage - a = 200; - b = -40; - break; - case 7: // François Bayrou - a = 200; - b = -60; - break; - case 8: // Hervé Morin - a = 230; - b = -60; - break; - case 9: // Dominique de Villepin - a = 260; - b = -60; - break; - case 10: // Nicolas Sarkozy - a = 290; - b = -60; - break; - case 11: // Nicolas Dupont-Aignan - a = 300; - b = -70; - break; - case 12: // Frederic Nihous - a = 320; - b = -70; - break; - case 13: // Christine Boutin - a = 350; - b = -70; - break; - case 14: // Marine Le pen - a = 390; - b = -80; - break; - - default: - a = 390; - b = -180; - console.log("default impulse!"); - break; - */ - } - - b2body.linearVelocity.Set(a, b); - b2bod[t.id_str] = world.CreateBody(b2body); - bodies.push(b2bod[t.id_str]); + }); } \ No newline at end of file diff -r 1cc92b8c3a38 -r 03c54e8c00dc client/main.html