Advertisement
Guest User

Untitled

a guest
Dec 7th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var socket = io.connect('localhost:3000');
  2. var ctx;
  3. var canvas;
  4. var eraseMode = false;
  5. var data = {};
  6. var scrollItems;
  7.  
  8. $(document).ready(function()
  9. {
  10.   canvas = document.getElementById('canvas');
  11.   ctx = canvas.getContext('2d');
  12.   scrollItems = 0;
  13.   initCanvas();
  14.  
  15.   $('#chat_input').width($('.chat').width() - 3 * $('#send').width());
  16.  
  17.   socket.on('draw', draw);
  18.   socket.on('clear', clear);
  19. });
  20.  
  21. var welcome = function(data)
  22. {
  23.   $('#future').append("Welcome " + socket.id + "!<br/>"); //hier nog naam invullen, argument data is naam
  24. }
  25.  
  26. $(window).on('resize', function()
  27. {
  28.   socket.emit('clear', "");
  29.   canvas.style.width='100%';
  30.   canvas.style.height='100%';
  31.   canvas.width  = canvas.offsetWidth;
  32.   canvas.height = canvas.offsetHeight;
  33.   $('#chat_input').width($('.chat').width() - 3 * $('#send').width());
  34. });
  35.  
  36. function resizeCanvas()
  37. {
  38.   $('#canvas').attr("width", $('.canvas').width());
  39.   $('#canvas').attr("height", $('.canvas').height());
  40. }
  41.  
  42. var draw = function(data)
  43. {
  44.   ctx.fillStyle = data.kleur;
  45.   ctx.beginPath();
  46.   ctx.arc(data.x, data.y, data.dikte, 0, 2 * Math.PI);
  47.   ctx.fill();
  48. };
  49.  
  50. var clear = function()
  51. {
  52.   ctx.clearRect(0, 0, canvas.width, canvas.height);
  53. }
  54.  
  55. var clearChat = function()
  56. {
  57.   $("#future").empty();
  58.   scrollItems = 0;
  59. }
  60.  
  61. var scrollChatDown = function()
  62. {
  63.   scrollItems++;
  64.   var chat = $('#future');
  65.   chat.animate({scrollTop: (chat.prop('scrollHeight') * scrollItems)});
  66. }
  67.  
  68. var initCanvas = function()
  69. {
  70.   var mouseClicked;
  71.   var kleur;
  72.  
  73.   data.dikte = 5;
  74.   data.kleur = "black";
  75.  
  76.   welcome("");
  77.   $('#small').attr("style", "background-color: blue; color: white;");
  78.  
  79.   $('.kleurButtons').on('click', 'button', function(){
  80.     if(!eraseMode) data.kleur = $(this).attr('value');
  81.  
  82.     //Als de eraser wordt uitgeschakeld => weer standaardkleur = zwart
  83.     if($(this).attr("id") === "eraser") {
  84.       eraseMode = eraseMode ? false : true;
  85.       if(eraseMode === true) {
  86.         $(this).attr("style", "background-color: blue; color: white;");
  87.       } else {
  88.         $(this).attr("style", "background-color: white;");
  89.         data.kleur = "black";
  90.       }
  91.     }
  92.   });
  93.  
  94.   $('.dikteButtons').on('click', 'button', function(){
  95.     data.dikte = $(this).attr('value');
  96.     $('.dikteButtons').children().css("background-color", "white");
  97.     $('.dikteButtons').children().css("color", "black");
  98.     $(this).attr("style", "background-color: blue; color: white;");
  99.   });
  100.  
  101.   canvas.addEventListener('mousedown', function(event) {
  102.     mouseClicked = true;
  103.   });
  104.  
  105.   canvas.addEventListener('mouseup', function(event) {
  106.     mouseClicked = false;
  107.   });
  108.  
  109.   canvas.addEventListener('mousemove', function(event) {
  110.     var parentOffset = $(this).offset();
  111.     data.x = event.pageX - parentOffset.left;
  112.     data.y = event.pageY - parentOffset.top;
  113.     if (mouseClicked == true) {
  114.       draw(data);
  115.       socket.emit('draw', data);
  116.     };
  117.   });
  118.  
  119.   $('.clear').click(function() {
  120.     clear();
  121.     socket.emit('clear', "");
  122.   });
  123.  
  124.   socket.on('broad', function(data) {
  125.     $('#future').append("<p style='margin: 0 0 0 0;'>" + data + "</p>");
  126.     scrollChatDown();
  127.   });
  128.  
  129.   socket.on('join', function(data) {
  130.     $('#future').append("<p style='color:green'>" + data + " joined!</p>");
  131.     scrollChatDown();
  132.   });
  133.  
  134.   socket.on('left', function(data) {
  135.     $('#future').append("<p style='color:red'>" + data + " left!</p>");
  136.     scrollChatDown();
  137.   });
  138.  
  139.   $('#chat_form').submit(function(e){
  140.       e.preventDefault();
  141.       var message = $('#chat_input').val();
  142.       $('#chat_input').val('');
  143.       socket.emit('messages', message);
  144.   });
  145. }
  146.  
  147. //alles ivm REST
  148. var getAllUsers = function()
  149. {
  150.   $.ajax({
  151.     type: "GET",
  152.     url: 'http://localhost:3000/users',
  153.     dataType: "json",
  154.     success: function(data) {
  155.       console.log(data);
  156.     },
  157.     error: function(jqXHR, textStatus, errorThrown) {
  158.       console.log('error ' + textStatus + " " + errorThrown);
  159.     }
  160.   });
  161. }
  162.  
  163. var deleteUser = function(name)
  164. {
  165.   $.ajax({
  166.     type: "DELETE",
  167.     url: 'http://localhost:3000/user/' + name,
  168.     success: function() {
  169.       console.log("Delete Successful");
  170.     },
  171.     error: function(jqXHR, textStatus, errorThrown) {
  172.       console.log('error ' + textStatus + " " + errorThrown);
  173.     }
  174.   });
  175. }
  176.  
  177. var addUser = function(name, password)
  178. {
  179.   console.log(getUser(name));
  180.   if(getUser(name) === undefined) {
  181.     var postData = {username: name, password: password, highscore: 0};
  182.     $.ajax({
  183.       type: "POST",
  184.       data: postData,
  185.       url: 'http://localhost:3000/user',
  186.       success: function(data) {
  187.         console.log(data);
  188.       },
  189.       error: function(jqXHR, textStatus, errorThrown) {
  190.         console.log('error ' + textStatus + " " + errorThrown);
  191.       }
  192.     });
  193.   } else {
  194.     console.log("username already taken");
  195.   }
  196. }
  197.  
  198. var getUser = function(name)
  199. {
  200.   $.ajax({
  201.     type: "GET",
  202.     url: 'http://localhost:3000/user/' + name,
  203.     dataType: "json",
  204.     success: function(data) {
  205.       console.log(data);
  206.       return data;
  207.     },
  208.     error: function(jqXHR, textStatus, errorThrown) {
  209.       console.log('error ' + textStatus + " " + errorThrown);
  210.     }
  211.   });
  212. }
  213.  
  214. //hieronder alles ivm beurten
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement