123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>
- Histórico de horarios
- </title>
- <?php
- include 'import/html_css_files.php';
- ?>
- <style>
- [v-cloak] {
- display: none;
- }
- </style>
- <script src="js/jquery.min.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"
- integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN"
- crossorigin="anonymous"></script>
- <script src="js/bootstrap/bootstrap.min.js"></script>
- </head>
- <body>
- <?
- $redirect = $_SERVER['PHP_SELF'];
- include "import/html_header.php";
- global $user;
- html_header(
- "Histórico de horarios",
- "Sistema de gestión de checador",
- );
- if (!$user->periodo_id) { ?>
- <script defer src="js/jquery.min.js"></script>
- <script src="js/bootstrap/bootstrap.min.js"></script>
- <div class="modal" id="seleccionar-periodo" tabindex="-1">
- <div class="modal-dialog modal-dialog-centered modal-xl">
- <div class="modal-content">
- <div class="modal-header">
- <h2 class="modal-title">Seleccionar periodo</h2>
- </div>
- <div class="modal-body container">
- <? include 'import/periodo.php' ?>
- </div>
- </div>
- </div>
- </div>
- <script>
- $('#seleccionar-periodo').modal({
- backdrop: 'static',
- keyboard: false,
- });
- $('#seleccionar-periodo').modal('show');
- </script>
- <? exit;
- } ?>
- <main class="container-fluid px-4 mt-4" id="app" v-cloak @vue:mounted="mounted" style="min-height: 60vh;"
- v-scope="">
- <?php include "import/periodo.php" ?>
- <form class="marco" v-scope="{profesor: null}">
- <!-- datalist profesores -->
- <div class="row">
- <div class="col-12">
- <div class="form-box">
- <div class="form-group row">
- <label for="profesor" class="col-form-label col-4">Profesor</label>
- <input list="profesores" class="form-control col-6 mx-3" id="profesor" v-model="profesor"
- @input="buscarHorarios(profesor)">
- <datalist id="profesores">
- <option v-for="profesor in profesores" :value="profesor.profesor_clave">
- {{profesor.profesor_nombre}}
- </option>
- </datalist>
- </div>
- </div>
- </div>
- </div>
- </form>
- <div class="table-responsive marco" v-if="horarios.length > 0" v-scope="">
- <table class="table table-hover table-striped table-bordered table-sm">
- <thead class="thead-dark">
- <tr>
- <th scope="col" class="text-center align-middle px-2">
- Carrera
- </th>
- <th scope="col" class="text-center align-middle px-2">
- Materia
- </th>
- <th scope="col" class="text-center align-middle px-2">
- Grupo
- </th>
- <th scope="col" class="text-center align-middle px-2">
- Horario
- </th>
- <th scope="col" class="text-center align-middle px-2">
- Alta
- </th>
- <th scope="col" class="text-center align-middle px-2">
- Baja
- </th>
- </tr>
- </thead>
- <tbody>
- <tr v-for="horario in horarios" :key="`horario-${horario.horario_id}`">
- <td class="align-middle px-2">
- <small>
- <strong>{{horario.facultad_nombre}}</strong>
- </small>
- {{horario.carrera_nombre}}
- </td>
- <td class="align-middle px-2 text-center">
- {{horario.materia_nombre}}
- </td>
- <td class="align-middle px-2 text-center">
- {{horario.horario_grupo}}
- </td>
- <td class="align-middle px-2 text-center"
- v-scope="{días: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']}">
- {{días[horario.horario_dia]}} - {{horario.horario_hora}} - {{horario.horario_fin}}
- </td>
- <td class="align-middle px-2 text-center">
- {{horario.horario_fecha_inicio}}
- </td>
- <td class="align-middle px-2 text-center">
- {{horario.horario_fecha_fin}}
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="modal" tabindex="-1" id="cargando" data-backdrop="static" data-keyboard="false">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <div class="modal-header">
- <h4 class="modal-title">Cargando datos...</h4>
- </div>
- <div class="modal-body container">
- <div class="row">
- <div class="col-12 text-center">
- <span class="spinner-border spinner-border-lg"></span>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="modal" tabindex="-1" id="mensaje">
- <div class="modal-dialog modal-dialog-centered">
- <div class="modal-content">
- <div class="modal-header">
- <h4 class="modal-title">{{mensaje.titulo}}</h4>
- <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </div>
- <div class="modal-body container">
- <div class="row">
- <div class="col-12 text-center">
- {{mensaje.texto}}
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </main>
- <!-- <script src=" js/datalist.js"></script> -->
- <script type="module">
- import { createApp } from 'https://unpkg.com/petite-vue?module'
- createApp({
- horarios: [],
- profesores: [],
- async buscarHorarios(profesor_clave) {
- // if existe la clave del profesor
- if (!this.profesores.find(profesor => profesor.profesor_clave === profesor_clave)) {
- this.horarios = []
- return
- }
- const horarios = await fetch(`/action/horario_profesor.php?profesor=${profesor_clave}`)
- this.horarios = await horarios.json()
- },
- async mounted() {
- const profesores = await fetch('/action/action_profesor.php')
- this.profesores = await profesores.json()
- },
- }).mount('#app')
- </script>
- <script src="js/scrollables.js"></script>
- </body>
- </html>
|