results.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. "use strict";
  2. var connection = new signalR.HubConnectionBuilder().withUrl("/resultsHub").build();
  3. connection.on("UpdateResults", function (results) {
  4. document.body.style.opacity=1;
  5. var a = parseInt(results.optionA || 0);
  6. var b = parseInt(results.optionB || 0);
  7. var percentages = getPercentages(a, b);
  8. document.getElementById("optionA").innerText = percentages.a + "%";
  9. document.getElementById("optionB").innerText = percentages.b + "%";
  10. if (results.voteCount > 0) {
  11. var totalVotes = results.voteCount + (results.voteCount > 1 ? " votes" : " vote");
  12. document.getElementById("totalVotes").innerText = totalVotes;
  13. }
  14. var bg1 = document.getElementById('background-stats-1');
  15. var bg2 = document.getElementById('background-stats-2');
  16. bg1.style.width = (percentages.a-0.2) + "%";
  17. bg2.style.width = (percentages.b-0.2) + "%";
  18. });
  19. connection.start().catch(function (err) {
  20. return console.error(err.toString());
  21. });
  22. function getPercentages(a, b) {
  23. var result = {};
  24. if (a + b > 0) {
  25. result.a = Math.round(a / (a + b) * 100);
  26. result.b = 100 - result.a;
  27. } else {
  28. result.a = result.b = 50;
  29. }
  30. return result;
  31. }