index.php 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
  3. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  4. header('Cache-Control: no-store, no-cache, must-revalidate');
  5. header('Cache-Control: post-check=0, pre-check=0', false);
  6. header('Pragma: no-cache');
  7. date_default_timezone_set('America/Mexico_City');
  8. require_once 'include/bd_pdo.php';
  9. $admin_password = '7ipgl3fp03l03fa7j6l8';
  10. ?>
  11. <html>
  12. <head>
  13. <meta charset="UTF-8" />
  14. <meta name="viewport" content="width=device-width, initial-scale=1">
  15. <title>Sistema de auditoría asistencial</title>
  16. <link rel="icon" href="imagenes/favicon.ico" />
  17. <link rel="stylesheet" href="./css/bootstrap-ulsa.min.css">
  18. <link rel="stylesheet" href="./css/indivisa.css">
  19. <link rel="stylesheet" href="./css/checador.css">
  20. </head>
  21. <body>
  22. <header class="py-4 px-4 text-white">
  23. <div class="d-flex">
  24. <div class="my-auto mr-auto"><img id="logo" src="./imagenes/lasalle-blanco.svg" alt="La Salle"
  25. class="img-fluid" /></div>
  26. <div class="my-auto hora pr-3 text-nowrap text-left indivisa-display"><span id="hr">00</span>:<span
  27. id="min">00</span> h</div>
  28. <div class="my-auto ml-4 fecha text-left"><span id="fecha">00 xxx</span><br><span id="ano"
  29. class="indivisa-display-italic">20XX</span></div>
  30. </div>
  31. </header>
  32. <main class="d-flex flex-row justify-content-around">
  33. <div id="registro" class="sub-bloque w-100">
  34. <div class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  35. <img src="imagenes/registrar.svg" alt="registrar" class="align-self-end mr-4 juanita">
  36. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  37. <form class="checa-box" id="formaChecador" autocomplete="off">
  38. <div class="text-primary indivisa-text-black text-center mb-5 text-big titRegistro">Registro de
  39. asistencia</div>
  40. <div class="input-group inputChecar mx-auto">
  41. <input type="text" id="cve" placeholder="Clave de empleado" class="form-control text-center"
  42. autofocus="" autocomplete="off" maxlength="6">
  43. <div class="input-group-append">
  44. <button type="submit" id="btnChecar" class="btn btn-primary">Checar</button>
  45. </div>
  46. </div>
  47. </form>
  48. </div>
  49. </div>
  50. </div>
  51. <div id="result_ok" class="sub-bloque d-none w-100">
  52. <div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  53. <img src="imagenes/asistencia.svg" alt="registrar" class="align-self-end mr-4 juanita">
  54. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  55. <div class="checa-box">
  56. <div class="indivisa-text-black text-center text-big mb-4">Asistencia</div>
  57. <h3 class="indivisa-text-bold subtitle text-center text-uppercase" id="nombre">Nombre</h3>
  58. <ul class="text-danger" id="list-result">
  59. <h4 class="text-secondary indivisa-text-bold mb-3 mt-4 text-info text-uppercase">Facultad
  60. </h4>
  61. <li class="">
  62. <span class="text-secondary font-weight-bold text-uppercase mat-desc">Materia</span><br>
  63. <span class="text-secondary mat-fecha font-weight-bold">hh:mm</span>
  64. <br>
  65. <span class="text-secondary mat-salon ml-3">SALÓN: <span class="salon">SAL</span></span>
  66. <span class="text-secondary ml-3">GRUPO: <span class="mat-gpo">GPO</span></span>
  67. </li>
  68. </ul>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. <div id="result_no" class="sub-bloque d-none w-100">
  74. <div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  75. <img src="imagenes/no_horario.svg" alt="no_horario" class="align-self-end mr-4 juanita">
  76. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  77. <div class="checa-box">
  78. <div class="text-center text-big indivisa-text-black text-primary my-4" id="nombre"><strong
  79. class="text-danger">No</strong> tienes clases en este horario</div>
  80. <div class="text-center sin-servicio">No hay ninguna clase registrada en este horario para
  81. <h3 id="nombre-profesor" class="indivisa-text-bold my-3"></h3>
  82. <h6 class="indivisa-text-italic mt-5"><strong class="text-danger">Recuerda:</strong> Solo se
  83. puede registrar entre <strong class="text-secondary">20</strong> minutos antes y <strong
  84. class="text-secondary">30</strong> minutos después.</h6>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. <div id="internet" class="sub-bloque d-none w-100">
  91. <div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  92. <img src="imagenes/no_internet.svg" alt="no_internet" class="align-self-end mr-4 juanita">
  93. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  94. <div class="checa-box">
  95. <div class="text-big indivisa-text-black text-center">Se perdió la conexión a internet</div>
  96. <h4 class="text-secondary text-center sin-servicio my-5">Por el momento la conexión a internet
  97. está fallando, por favor inténtelo más tarde.</h4>
  98. <!-- Código de error: <span class="clave font-weight-bold">000</span> -->
  99. <div class="text-center">
  100. <div class="spinner-grow text-warning" role="status"><span class="sr-only">Loading...</span>
  101. </div>
  102. <em class="text-info">Conectando</em>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div id="error_bd" class="sub-bloque d-none w-100">
  109. <div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  110. <img src="imagenes/error.svg" alt="error" class="align-self-end mr-4 juanita">
  111. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  112. <div class="checa-box">
  113. <div class="text-big text-center indivisa-text-black text-danger mb-5">Error en el sistema</div>
  114. <h4 class="text-secondary text-center sin-servicio">Se ha presentado un error en el sistema, por
  115. favor inténtelo más tarde y repórtelo al <strong>CAS</strong>.</h4>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div id="not_in_db" class="sub-bloque d-none w-100">
  121. <div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  122. <img src="imagenes/no_clave.svg" alt="no_clave" class="align-self-end mr-4 juanita">
  123. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  124. <div class="checa-box">
  125. <div class="indivisa-text-black subtitle mb-5 text-center text-big">La clave <strong
  126. class="text-danger" id="clave-no-encontrada"></strong> no está registrada</div>
  127. <h4 class="text-center mb-4">Revisa que la clave sea la correcta</h4>
  128. <div class="text-center indivisa-text-italic text-info">No se pudo registrar asistencia</div>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. <div id="avisos" class="sub-bloque d-none w-100">
  134. <div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
  135. <img src="imagenes/aviso.svg" alt="aviso" class="align-self-end mr-4 juanita">
  136. <div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
  137. <div class="checa-box">
  138. <div class="indivisa-text-black subtitle mb-4 text-big">Avisos</div>
  139. <div class="text-secondary" id="lista-avisos"></div>
  140. <div class="text-center mt-4"><button type="button" class="btn btn-success"
  141. id="btn-aceptar-avisos">Aceptar</button></div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. <p id="last-error" class="d-none">-</p>
  147. </main>
  148. <script>
  149. var d, h, m, s, animate;
  150. var started_at = new Date().getTime();
  151. var server_time = <?= time(); ?>;
  152. var ultimosMax = 6;
  153. </script>
  154. <script src="./js/jquery.min.js"></script>
  155. <script src="./js/bootstrap/popper.min.js"></script>
  156. <script src="./js/bootstrap/bootstrap.min.js"></script>
  157. <script type="text/javascript" src="js/checador.js"></script>
  158. <script>
  159. $(document).ready(function () {
  160. init();
  161. });
  162. </script>
  163. </body>
  164. </html>