Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. include('../inc/inc.php');
  3. if (!$user->loggedin()) {
  4. header('Location: /login.php');
  5. die();
  6. }
  7. if ($user->getRole() !== "admin") {
  8. header('Location: /index.php');
  9. die();
  10. }
  11. if (isset($_POST['voter'])) {
  12. $voter = (int) $_POST['voter'];
  13. if (!empty($_POST['voter']) && ((int) $_POST['voter']) == $_POST['voter']) {
  14. $result = $db->query("update members set checkedin=true where voting_id=$voter");
  15. } else {
  16. $result = false;
  17. $error = "The selected voter is not eligible";
  18. }
  19. }
  20. $header = new Header("Michigan Flyers Election : Poll Worker");
  21. $header->addStyle("/styles/style.css");
  22. $header->addStyle("/styles/admin.css");
  23. $header->addStyle("/styles/vote.css");
  24. $header->addScript("/js/jquery-1.11.3.min.js");
  25. $header->addScript("/js/admin-search.js");
  26. $header->setAttribute('title', 'Michigan Flyers');
  27. $header->setAttribute('tagline', 'Election Poll Worker Tools');
  28. $header->output();
  29. $voters = $db->fetchAssoc('
  30. select
  31. MIN(skymanager_id) as `skymanager_id`,
  32. MIN(members.voting_id) as `voting_id`,
  33. MIN(name) as `name`,
  34. MIN(username) as `username`,
  35. group_concat(proxy.voting_id) as `proxies`,
  36. MIN(upstream_proxy.delegate_id) as `delegate`,
  37. coalesce(MIN(email), "") as `gravatar_email`
  38. from members
  39. left join proxy on (members.voting_id=proxy.delegate_id)
  40. left join proxy as upstream_proxy on (upstream_proxy.voting_id=members.voting_id)
  41. where members.voting_id is not null
  42. group by members.voting_id
  43. UNION
  44. select skymanager_id, voting_id, name, username, NULL as `proxies`, NULL as `delegate`, coalesce(email, "") as `gravatar_email`
  45. from members where members.voting_id is null');
  46. get_gravatar_assoc($voters);
  47. ?>
  48. <script type="text/javascript">
  49. var voters = <?= json_encode($voters); ?>;
  50. </script>
  51. <form action="checkin.php" method="POST">
  52. <div class="form-row">
  53. <div class="selector">
  54. <label class="radio">
  55. <input type="radio" name="button" value="ci" checked />
  56. <a class="radio-button-label" href="#">Check-In</a>
  57. </label>
  58. <label class="radio">
  59. <input type="radio" name="button" value="pe" />
  60. <a class="radio-button-label" href="/admin/paper.php">Paper Entry</a>
  61. </label>
  62. <label class="radio">
  63. <input type="radio" name="button" value="re" />
  64. <a class="radio-button-label" href="/admin/results.php">Results</a>
  65. </label>
  66. </div>
  67. </div>
  68. <div class="form-row">
  69. <input type="text" placeholder="Voter Search" id="voter-searchbox" name="voter-searchbox" value="" />
  70. <div id="voter-results"></div>
  71. <input type="hidden" name="voter" id="voter-input" value="0" />
  72. <div id="selectedVoter" class="selected candidate voter">
  73. <span class="placeholder">No Selected Voter</span>
  74. </div>
  75. </div>
  76. <div class="form-row">
  77. <input class="submit" type="submit" name="submit" value="Check In" />
  78. </div>
  79. </form>
  80. <?php if (isset($voter)): ?>
  81. <div id="vote-result">
  82. <div id="status" class="<?= $result ? "success" : "failure"; ?>"></div>
  83. <div id="message" class="<?= $result ? "success" : "failure"; ?>">
  84. <?= !empty($error) ? $error : ($result ? "The member has been checked in" :
  85. "The member could not be checked in") ?>
  86. </div>
  87. </div>
  88. <?php endif; ?>
  89. <?php
  90. $footer = new Footer();
  91. $footer->output();