Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. md5(coalesce(MIN(email), "")) as `gravatar_hash`
  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`, md5(coalesce(email, "")) as `gravatar_hash`
  45. from members where members.voting_id is null');
  46. ?>
  47. <script type="text/javascript">
  48. var voters = <?= json_encode($voters); ?>;
  49. </script>
  50. <form action="checkin.php" method="POST">
  51. <div class="form-row">
  52. <div class="selector">
  53. <label class="radio">
  54. <input type="radio" name="button" value="ci" checked />
  55. <a class="radio-button-label" href="#">Check-In</a>
  56. </label>
  57. <label class="radio">
  58. <input type="radio" name="button" value="pe" />
  59. <a class="radio-button-label" href="/admin/paper.php">Paper Entry</a>
  60. </label>
  61. <label class="radio">
  62. <input type="radio" name="button" value="re" />
  63. <a class="radio-button-label" href="/admin/results.php">Results</a>
  64. </label>
  65. </div>
  66. </div>
  67. <div class="form-row">
  68. <input type="text" placeholder="Voter Search" id="voter-searchbox" name="voter-searchbox" value="" />
  69. <div id="voter-results"></div>
  70. <input type="hidden" name="voter" id="voter-input" value="0" />
  71. <div id="selectedVoter" class="selected candidate voter">
  72. <span class="placeholder">No Selected Voter</span>
  73. </div>
  74. </div>
  75. <div class="form-row">
  76. <input class="submit" type="submit" name="submit" value="Check In" />
  77. </div>
  78. </form>
  79. <?php if (isset($voter)): ?>
  80. <div id="vote-result">
  81. <div id="status" class="<?= $result ? "success" : "failure"; ?>"></div>
  82. <div id="message" class="<?= $result ? "success" : "failure"; ?>">
  83. <?= !empty($error) ? $error : ($result ? "The member has been checked in" :
  84. "The member could not be checked in") ?>
  85. </div>
  86. </div>
  87. <?php endif; ?>
  88. <?php
  89. $footer = new Footer();
  90. $footer->output();