You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. include('inc/inc.php');
  3. if (!$user->loggedin()) {
  4. header('Location: /login.php');
  5. die();
  6. }
  7. if (!$user->voterId()) {
  8. header('Location: /login.php?denied');
  9. die();
  10. }
  11. $header = new Header("2021 Michigan Flyers Election");
  12. $header->addStyle("/styles/style.css");
  13. $header->addScript("/js/jquery-1.11.3.min.js");
  14. $header->addScript("/js/search.js");
  15. $header->setAttribute('title', 'Michigan Flyers');
  16. $header->setAttribute('tagline', '2021 Online Ballot');
  17. $header->output();
  18. $candidates = $db->fetchAssoc('select skymanager_id, name, username, md5(coalesce(email, "")) as `gravatar_hash` from members where voting_id is not null');
  19. $votes = $db->fetchAssoc("select position from votes where member_id={$user->voterId()}");
  20. foreach ($votes as &$vote) {
  21. $vote = $vote['position'];
  22. }
  23. unset($vote);
  24. $president_voted = in_array("PRESIDENT", $votes);
  25. $director_voted = in_array("DIRECTOR", $votes);
  26. $president_disabled = $president_voted;
  27. $director_disabled = $director_voted || !$president_voted;
  28. $president_disabled_reason = $president_voted ? "You have already voted for President." : "";
  29. $director_disabled_reason = $director_disabled ? ($director_voted ? "You have already voted for Director." : "You must vote for President first.") : "";
  30. ?>
  31. <script type="text/javascript">
  32. var candidates = <?= json_encode($candidates); ?>;
  33. </script>
  34. <form action="vote.php" method="POST">
  35. <div class="form-row">
  36. <div class="selector">
  37. <label class="radio">
  38. <input type="radio" id="vote-president" name="ballot"
  39. value="PRESIDENT" <?= $president_disabled ? "disabled" : "checked"; ?> />
  40. <span class="radio-button-label">President</span>
  41. <?php if ($president_disabled_reason): ?>
  42. <div class="hover-tooltip"><?= $president_disabled_reason; ?></div>
  43. <?php endif; ?>
  44. </label>
  45. <label class="radio">
  46. <input type="radio" id="vote-director" name="ballot"
  47. value="DIRECTOR" <?= $director_disabled ? "disabled" : ($president_disabled ? "checked" : ""); ?> />
  48. <span class="radio-button-label">Director-At-Large</span>
  49. <?php if ($director_disabled_reason): ?>
  50. <div class="hover-tooltip"><?= $director_disabled_reason; ?></div>
  51. <?php endif; ?>
  52. </label>
  53. </div>
  54. </div>
  55. <div class="form-row">
  56. <input type="text" placeholder="Candidate Search" id="searchbox" name="searchbox" value="" />
  57. <div id="results"></div>
  58. <input type="hidden" name="candidate" id="candidate-input" value="0" />
  59. <div id="selectedCandidate" class="selected candidate">
  60. <span class="placeholder">No Candidate Selected</span>
  61. </div>
  62. </div>
  63. <div class="form-row">
  64. <input class="submit" type="submit" name="submit" value="Submit Ballot" />
  65. </div>
  66. </form>
  67. <?php
  68. $footer = new Footer();
  69. $footer->output();