Commit inicial
This commit is contained in:
6
import/html_css_files.php
Normal file
6
import/html_css_files.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<link rel="icon" type="image/png" href="imagenes/favicon.png" />
|
||||
<link rel="stylesheet" href="css/bootstrap-ulsa.min.css" type="text/css">
|
||||
<link rel="stylesheet" href="css/indivisa.css" type="text/css">
|
||||
<link rel="stylesheet" href="css/sgi.css?rand=<?php echo rand(); ?>" type="text/css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<link rel="stylesheet" href="css/jquery-ui.css">
|
||||
105
import/html_footer.php
Normal file
105
import/html_footer.php
Normal file
@@ -0,0 +1,105 @@
|
||||
<div class="container-fluid">
|
||||
<footer class="footer" >
|
||||
<div class="footerTop">
|
||||
<div class="container marco">
|
||||
<div class="logotipo">
|
||||
<img src="imagenes/lasalle-logo-blanco.png" alt="Universidad La Salle" width="15%">
|
||||
<h3> <span>Profesionales</span>con <strong>Valor</strong></h3>
|
||||
</div>
|
||||
<div class="ubicacion">
|
||||
<div class="address">
|
||||
<div class="tabs">
|
||||
<ul class="nav list-inline" id="tabsFooter" role="tablist">
|
||||
<li class="list-inline-item">
|
||||
<a class="nav-link active" id="unidad1-tab" data-toggle="tab" href="#unidad1" role="tab" aria-controls="calendario" aria-selected="true">Unidad Condesa</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="nav-link " id="unidad2-tab" data-toggle="tab" href="#unidad2" role="tab" aria-controls="lista" aria-selected="false">Unidad Santa Teresa</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="nav-link " id="unidad3-tab" data-toggle="tab" href="#unidad3" role="tab" aria-controls="lista" aria-selected="false">Unidad San Fernando</a>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<a class="nav-link" id="unidad4-tab" data-toggle="tab" href="#unidad4" role="tab" aria-controls="lista" aria-selected="false">Unidad Santa Lucía</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" id="tabsCont">
|
||||
<div class="tab-pane fade show active" id="unidad1" role="tabpanel" aria-labelledby="unidad1-tab">
|
||||
<p>Benjamín Franklin No 45, Col. Condesa, Alc. Cuauhtémoc, CDMX, CP 06140 <span class="tel">Tel. <a href="tel:+525552789500">55 5278-9500</a> / <a href="tel:+8005272553">800 LASALLE</a></span><br>
|
||||
<a class="btnMap " href="https://www.google.com/maps/place/Universidad+La+Salle/@19.4085702,-99.1810039,15z/data=!4m5!3m4!1s0x0:0x3108b5797f9c9ecd!8m2!3d19.4085702!4d-99.1810039" target="_blank"> <span class="fas fa-map-marker-alt mr-1"></span>¿Cómo llegar?</a></p>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="unidad2" role="tabpanel" aria-labelledby="unidad2-tab">
|
||||
<p>Camino a Santa Teresa 811, Col. Rinconada del Pedregal, Alc. Tlalpan, CDMX, CP 14010 <span class="tel">Tel. <a href="tel:5552789500">55 5278-9500</a> / <a href="tel:+8005272553">800 LASALLE</a></span><br>
|
||||
<a class="btnMap " href="https://www.google.com/maps/place/Universidad+La+Salle+Unidad+Santa+Teresa/@19.299013,-99.196093,15z/data=!4m5!3m4!1s0x0:0xdfc2b61c9b67aac2!8m2!3d19.299013!4d-99.196093" target="_blank"> <span class="fas fa-map-marker-alt mr-1"></span>¿Cómo llegar?</a></p>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="unidad3" role="tabpanel" aria-labelledby="unidad3-tab">
|
||||
<p>Av. De Las Fuentes 17, Col. Tlalpan, Alc. Tlalpan, CDMX, CP 14000 <span class="tel">Tel. <a href="tel:+525552789500">55 5278-9500</a> / <a href="tel:+8005272553">800 LASALLE</a></span><br>
|
||||
<a class="btnMap " href="https://www.google.com/maps/place/Universidad+La+Salle+Facultad+de+Medicina/@19.2930318,-99.1720808,15z/data=!4m5!3m4!1s0x0:0x29b7725e5a004277!8m2!3d19.2930318!4d-99.1720808" target="_blank"> <span class="fas fa-map-marker-alt mr-1"></span>¿Cómo llegar?</a></p>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="unidad4" role="tabpanel" aria-labelledby="unidad4-tab">
|
||||
<p>Av. Tamaulipas 3, Col. Zona Federal, Alc. Álvaro Obregón, CDMX, CP 01357 <span class="tel">Tel. <a href="tel:5556021130">55 5602-1130</a> </span><br>
|
||||
<a class="btnMap " href="https://www.google.com/maps/place/Unidad+Deportiva+La+Salle/@19.3662852,-99.2421597,15z/data=!4m5!3m4!1s0x0:0x88e0334f044bc518!8m2!3d19.3662852!4d-99.2421597" target="_blank"> <span class="fas fa-map-marker-alt mr-1"></span>¿Cómo llegar?</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="redes">
|
||||
<h4>Compartir :</h4>
|
||||
<ul>
|
||||
<li><a href="https://www.facebook.com/LaSalleMXIngenieria" target="_blank"><i class="fab fa-facebook-f fa-fw"></i></a></li>
|
||||
<!--<li><a href="https://twitter.com/lasalle_mx" target="_blank"><i class="fab fa-twitter fa-fw"></i></a></li>-->
|
||||
<li><a href="https://www.youtube.com/user/IngenieriaLaSalle/" target="_blank"><i class="fab fa-youtube fa-fw"></i></a></li>
|
||||
<!--<li><a href="https://www.instagram.com/lasalle_mx/" target="_blank"><i class="fab fa-instagram fa-fw"></i></a></li>-->
|
||||
<!--<li><a href="https://www.linkedin.com/school/universidad-la-salle?pathWildcard=24227" target="_blank"><i class="fab fa-linkedin-in fa-fw"></i></a></li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footerMiddle">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center">
|
||||
<nav class="col-12 col-md-10">
|
||||
<a class="footerMore menuMore" href="#">Sistema y Red La Salle</a>
|
||||
<ul>
|
||||
<li><a href="http://bajio.delasalle.edu.mx/" target="_blank">Bajío</a></li>
|
||||
<li><a href="http://www.lasalle.mx/" target="_blank">Ciudad de México</a></li>
|
||||
<li><a href="http://lasallecancun.edu.mx/" target="_blank">Cancún</a></li>
|
||||
<li><a href="http://www.ulsapuebla.mx/" target="_blank">Puebla</a></li>
|
||||
<li><a href="http://www.ulsapuebla.mx/" target="_blank">Chihuahua</a></li>
|
||||
<li><a href="http://www.lasallecuernavaca.edu.mx/wp/" target="_blank">Cuernavaca</a></li>
|
||||
<li><a href="http://www.ulsalaguna.edu.mx/" target="_blank">Laguna</a></li>
|
||||
<li><a href="http://www.lasallemorelia.edu.mx/" target="_blank">Morelia</a></li>
|
||||
<li><a href="http://www.ulsaneza.edu.mx/" target="_blank">Nezahualcóyotl</a></li>
|
||||
<li><a href="http://www.ulsa-noroeste.edu.mx/n2015/" target="_blank">Noroeste</a></li>
|
||||
<li><a href="http://www.ulsaoaxaca.edu.mx/" target="_blank">Oaxaca</a></li>
|
||||
<li><a href="http://www.lasallep.edu.mx/" target="_blank">Pachuca</a></li>
|
||||
<li><a href="https://www.ulsasaltillo.edu.mx/" target="_blank">Saltillo</a></li>
|
||||
<li><a href="https://www.lasallevictoria.edu.mx/" target="_blank">Victoria</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footerBottom">
|
||||
<div class="container">
|
||||
<div class="logotipos">
|
||||
<ul>
|
||||
<li><a href="http://redlasalle.mx/" target="_blank"><img src="imagenes/la-salle-logo-red-universidades.png" alt="La Salle - logotipo" class="img-responsive" width="80"></a></li>
|
||||
<li><a href="http://ialu.org/english/" target="_blank"><img src="imagenes/la-salle-logo-international-ia.png" alt="La Salle - logotipo" class="img-responsive" width="80"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="legales">
|
||||
<a class="footerMore menuMore" href="#">Legales</a>
|
||||
<ul>
|
||||
<li><a href="https://lasalle.mx/globales/contacto.html" target="_blank">Contacto</a></li>
|
||||
<li><a href="https://lasalle.mx/globales/terminos-y-condiciones.html" target="_blank">Términos y condiciones</a></li>
|
||||
<li><a href="https://lasalle.mx/globales/aviso-de-privacidad.html" target="_blank">Aviso de Privacidad</a></li>
|
||||
<!--<li><a href="https://lasalle.mx/globales/mapa-de-sitio.html" target="_blank">Mapa de sitio</a></li>
|
||||
<li><a href="https://lasalle.mx/globales/preguntas-frecuentes/" target="_blank">Preguntas frecuentes</a></li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
22
import/html_forms.php
Normal file
22
import/html_forms.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php // Necesita sesión y BD abiertas
|
||||
require_once "include/constantes.php";
|
||||
?>
|
||||
<link rel="stylesheet" href="css/jquery-ui.css">
|
||||
<link rel="stylesheet" href="css/calendar.css">
|
||||
<?php
|
||||
require_once "import/periodo.php";
|
||||
?>
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/jquery-ui.js"></script>
|
||||
<script src="js/datepicker-es.js"></script>
|
||||
|
||||
<?php include_once "js/messages.php"; ?>
|
||||
|
||||
|
||||
<!-- <script>
|
||||
$(".date-picker").datepicker($.datepicker.regional["es"]);
|
||||
$(".date-picker").datepicker({
|
||||
dateFormat: "dd/mm/yyyy",
|
||||
changeMonth: true,
|
||||
});
|
||||
</script> -->
|
||||
139
import/html_forms_asistencia.php
Normal file
139
import/html_forms_asistencia.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
include_once "import/html_forms.php";
|
||||
?>
|
||||
|
||||
|
||||
<form id="asistencia">
|
||||
<div class="form-box">
|
||||
<input type="hidden" name="facultad" value="<?= $user->facultad['facultad_id']; ?>">
|
||||
<?php
|
||||
$periodo = $db->where('id', $user->periodo)->getOne('fs_periodo');
|
||||
$carreras = $db
|
||||
->where('nivel', $periodo['nivel_id'])
|
||||
->where('facultad', $user->facultad['facultad_id'])
|
||||
->orderBy('carrera')
|
||||
->get('fs_carrera');
|
||||
|
||||
?>
|
||||
<div class="form-group row">
|
||||
<label for="filter_carrera" class="col-4 col-form-label">Carrera</label>
|
||||
<div class="col-6 ">
|
||||
<div id="dlcarrera" class="datalist datalist-select mb-1 w-100">
|
||||
<div class="datalist-input">Seleccionar todas las carreras</div>
|
||||
<span class="ing-buscar icono"></span>
|
||||
<ul style="display:none">
|
||||
<li data-id="">Seleccionar todas las carreras</li>
|
||||
<?php
|
||||
foreach ($carreras as $carrera) {
|
||||
?>
|
||||
<li data-id="<?= $carrera['id'] ?>">
|
||||
<?= $carrera['carrera'] ?>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<input type="hidden" id="filter_carrera" name="carrera" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="filterClave" class="col-4 col-form-label">Clave</label>
|
||||
<div class="col-6 ">
|
||||
<input type="text" class="form-control" id="filterClave" name="clave" placeholder="Clave del profesor (opcional)" value="<?= $clave ?? '' ?>" pattern="(do)?[0-9]{3,6}" title="La clave debe tener 8 caracteres, los primeros 2 deben ser letras y los últimos 6 números" minlength="3" maxlength="8">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="filterNombre" class="col-4 col-form-label">Nombre</label>
|
||||
<div class="col-6 ">
|
||||
<input type="text" class="form-control" id="filterNombre" name="nombre" placeholder="Nombre del profesor (opcional)">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label for="fecha_inicial" class="col-4 col-form-label">Fecha inicial</label>
|
||||
<div class="col-8 col-sm-4">
|
||||
<input id="fecha_inicial" name="fecha_inicial" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
|
||||
<div class="invalid-feedback">No es una fecha válida.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="fecha_final" class="col-4 col-form-label">Fecha final</label>
|
||||
<div class="col-8 col-sm-4">
|
||||
<input id="fecha_final" name="fecha_final" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
|
||||
<div class="invalid-feedback">No es una fecha válida o el rango es incorrecto.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row justify-content-center">
|
||||
<button type="submit" class="btn btn-outline-primary mr-2" id="btn-buscar"><?php echo $ICO["buscar"]; ?> Buscar asistencias</button>
|
||||
<button type="button" class="btn btn-outline-danger" onclick="window.location.href = window.location.href"><?php echo $ICO["borrar"]; ?> Limpiar</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<script>
|
||||
var today = new Date();
|
||||
$(".date-picker").datepicker($.datepicker.regional["es"]);
|
||||
$(".date-picker").datepicker({
|
||||
dateFormat: "dd/mm/yyyy",
|
||||
changeMonth: true,
|
||||
});
|
||||
<?php
|
||||
$periodo = query("SELECT * FROM FS_PERIODO WHERE ID = :periodo", [":periodo" => $user->periodo]);
|
||||
echo "// Período: {$periodo["inicio"]} - {$periodo["fin"]}\n";
|
||||
echo "// Fecha inicial: " . ($fecha_inicial ?? 'n/a') . " - Fecha final: " . ($fecha_final ?? 'n/a') . "\n";
|
||||
?>
|
||||
// $periodo format = Y-m-d
|
||||
const inicio = new Date(<?= date('Y, m-1, d', strtotime($periodo['inicio'])) ?>);
|
||||
var fecha_inicial = new Date(<?= date('Y, m-1, d', strtotime($fecha_inicial ?? $periodo['inicio'])) ?>)
|
||||
var fecha_final = new Date(<?= date('Y, m-1, d', strtotime($fecha_final ?? $periodo['fin'])) ?>)
|
||||
const limit = new Date(Math.min(today, fecha_final));
|
||||
|
||||
console.log(`today: ${today}, fecha_inicial: ${fecha_inicial}, fecha_final: ${fecha_final}`);
|
||||
$("#fecha_inicial").datepicker("option", "minDate", inicio);
|
||||
$("#fecha_inicial").datepicker("option", "maxDate", limit);
|
||||
$("#fecha_final").datepicker("option", "minDate", fecha_inicial);
|
||||
$("#fecha_final").datepicker("option", "maxDate", limit);
|
||||
// if today is in the period, set the initial date to today
|
||||
$("#fecha_inicial").datepicker("setDate", fecha_inicial);
|
||||
$("#fecha_final").datepicker("setDate", today <= fecha_final ? today : fecha_final);
|
||||
|
||||
// if the datepicker is changed, check if the range is valid
|
||||
makeRequiredDatalist("#filter_facultad", true);
|
||||
makeRequiredDatalist("#filter_carrera", true);
|
||||
|
||||
|
||||
$(document).on('click', '#dlFacultad ul li', function() {
|
||||
var id = $(this).data('id');
|
||||
// remove all option
|
||||
$('#dlcarrera ul').empty();
|
||||
disableDatalist("#filter_carrera", false);
|
||||
$.post(
|
||||
'action/action_carreras.php', {
|
||||
facultad: id,
|
||||
periodo: $('#periodo').val()
|
||||
},
|
||||
function(data) {
|
||||
$('#dlcarrera ul').append("<li>Seleccionar todas</li>");
|
||||
for (var i = 0; i < data.length; i++)
|
||||
$('#dlcarrera ul').append(`<li data-id="${data[i].id}">${data[i].carrera}</li>`);
|
||||
setDatalistFirst("#filter_carrera")
|
||||
},
|
||||
'json'
|
||||
)
|
||||
});
|
||||
|
||||
$(document).on('change', '#fecha_inicial', function() {
|
||||
var fi = $(this).datepicker("getDate");
|
||||
$("#fecha_final").datepicker("option", "minDate", fi);
|
||||
});
|
||||
|
||||
$(document).on('change', '#fecha_final', function() {
|
||||
var ff = $(this).datepicker("getDate");
|
||||
$("#fecha_inicial").datepicker("option", "maxDate", ff);
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
111
import/html_forms_justificacion.php
Normal file
111
import/html_forms_justificacion.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
include_once "import/html_forms.php";
|
||||
?>
|
||||
|
||||
<link rel="stylesheet" href="css/clockpicker.css">
|
||||
<form id="justificar">
|
||||
<div class="form-box">
|
||||
<div class="col-md-6 col-sm-12 text-center mb-3">
|
||||
Selecciona la fecha que deseas justificar.
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="filter_fecha" class="col-4 col-form-label">Fecha *</label>
|
||||
<div class="col-6 ">
|
||||
<input id="filter_fecha" name="fecha" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
|
||||
<div class="invalid-feedback">No es una fecha válida.</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Hora inicio CLOCKPICKER -->
|
||||
<div class="form-group row">
|
||||
<label for="filter_hora_inicio" class="col-4 col-form-label">Hora estimada *</label>
|
||||
<div class="input-group clockpicker col-6 ">
|
||||
<input id="filter_hora_inicio" name="hora_inicio" type="text" class="form-control" placeholder="hh:mm" maxlength="5" required="required" readonly>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text" onclick="$('#filter_hora_inicio').focus();">
|
||||
<i class="ing-reloj"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="invalid-feedback">No es una hora válida.</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Hora fin -->
|
||||
<div class="form-group row">
|
||||
<label for="filter_hora_fin" class="col-4 col-form-label">Hora límite</label>
|
||||
<div class="input-group clockpicker col-6">
|
||||
<input id="filter_hora_fin" name="hora_fin" type="text" class="form-control" placeholder="hh:mm" maxlength="5" readonly>
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text" onclick="$('#filter_hora_fin').focus();">
|
||||
<i class="ing-reloj"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="invalid-feedback">No es una hora válida.</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ClaveULSA -->
|
||||
<div class="form-group row">
|
||||
<label for="filter_clave" class="col-4 col-form-label">Clave</label>
|
||||
<div class="col-6">
|
||||
<input id="filter_clave" name="clave" type="text" class="form-control" pattern="(do)?[0-9]{3,6}" placeholder="Clave del profesor (do)" maxlength="8" title="Clave del profesor (do)">
|
||||
<div class="invalid-feedback">No es una clave válida.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Nombre -->
|
||||
<div class="form-group row">
|
||||
<label for="filter_nombre" class="col-4 col-form-label">Nombre</label>
|
||||
<div class="col-6">
|
||||
<input id="filter_nombre" name="nombre" type="text" class="form-control" placeholder="Nombre del profesor" maxlength="50" title="Nombre del profesor">
|
||||
<div class="invalid-feedback">No es un nombre válido.</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- button center -->
|
||||
<div class="form-group row justify-content-center p-3">
|
||||
<button class="btn btn-primary mr-3" id="main-button" type="button">
|
||||
<?= $ICO['buscar'] ?>
|
||||
Buscar profesores
|
||||
</button>
|
||||
<!-- reload page -->
|
||||
<button type="button" class="btn btn-outline-danger" onclick="location.reload();">
|
||||
<span class="ing-borrar icono"></span>
|
||||
Limpiar
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<script src="js/clockpicker.js"></script>
|
||||
<script>
|
||||
$(".date-picker").datepicker($.datepicker.regional["es"]);
|
||||
$(".date-picker").datepicker({
|
||||
dateFormat: "dd/mm/yyyy",
|
||||
changeMonth: true,
|
||||
});
|
||||
|
||||
$('.clockpicker').clockpicker({
|
||||
placement: 'bottom',
|
||||
align: 'right',
|
||||
donetext: 'Aceptar',
|
||||
autoclose: true,
|
||||
'default': 'now',
|
||||
|
||||
afterShow: function() {
|
||||
$('.clockpicker-minutes').find('.clockpicker-tick').filter(function() {
|
||||
return $(this).text() % 5 !== 0;
|
||||
}).remove();
|
||||
|
||||
$('.clockpicker-hours').find('.clockpicker-tick').filter(function(index, element) {
|
||||
let num = parseInt($(element).text());
|
||||
let condition = num < 7 || num > 22;
|
||||
return condition;
|
||||
}).remove();
|
||||
}
|
||||
|
||||
});
|
||||
// only accept from 7:00 to 22:00
|
||||
|
||||
|
||||
</script>
|
||||
163
import/html_forms_vista.php
Normal file
163
import/html_forms_vista.php
Normal file
@@ -0,0 +1,163 @@
|
||||
<section id="message"></section>
|
||||
<?php
|
||||
$target = '/checador_otros/admin_checador/reporte_de_asistencias.php';
|
||||
$id = $_POST['id'];
|
||||
include_once "import/html_forms.php";
|
||||
|
||||
$carreras = queryAll("SELECT DISTINCT carrera, id, facultad FROM FS_CARRERA WHERE ID IN (SELECT distinct CARRERA_ID FROM FS_HORARIO_BASIC WHERE :id IN (SELECT HORARIO_ID FROM HORARIO_PROFESOR WHERE PROFESOR_ID = :id) AND PERIODO_ID = :per)", [':id' => $id, ':per' => $user->periodo]);
|
||||
// materia por carrera
|
||||
#print_r($carreras);
|
||||
$materias = queryAll("SELECT DISTINCT * FROM FS_MATERIA WHERE CARRERA = COALESCE(:car, CARRERA) AND ID IN (SELECT distinct materia_id FROM HORARIO WHERE :id IN (SELECT HORARIO_ID FROM HORARIO_PROFESOR WHERE PROFESOR_ID = :id) AND PERIODO_ID = :per) ORDER BY NOMBRE", [":car" => empty($carrera) ? null : $carrera, ':id' => $id, ':per' => $user->periodo]);
|
||||
#exit();
|
||||
$periodo = query("SELECT inicio, fin FROM FS_PERIODO WHERE ID = :per", [':per' => $user->periodo]);
|
||||
?>
|
||||
|
||||
|
||||
<form action="#" method="post" id="form" class="form-horizontal">
|
||||
<input type="hidden" name="id" value="<?= $id; ?>" />
|
||||
<input type="hidden" name="periodo" value="<?= $user->periodo ?>" />
|
||||
<input type="hidden" name="facultad" value="<?= $user->facultad['facultad_id'] ?>" />
|
||||
<input type="hidden" name="clave" value="<?= $profesor['clave'] ?>" />
|
||||
<div class="form-box">
|
||||
<div class="form-group row">
|
||||
<label for="filter_carrera" class="col-4 col-form-label">Carrera</label>
|
||||
<div class="col-6">
|
||||
<div id="dlcarrera" class="datalist datalist-select mb-1 w-100">
|
||||
<div class="datalist-input">Todas las carreras</div>
|
||||
<span class="ing-buscar icono"></span>
|
||||
<ul style="display:none">
|
||||
<!-- Seleccionar todas -->
|
||||
<li data-value="0">Todas las carreras</li>
|
||||
<?php foreach ($carreras as $car) {
|
||||
?>
|
||||
<li data-id="<?= $car['id'] ?>" class="<?= ($car['id'] == $carrera) ? "selected" : '' ?>" onclick="carreras(<?= $car['id'] ?>)">
|
||||
<?= $car['carrera'] ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<input type="hidden" id="filter_carrera" name="carrera" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Materia -->
|
||||
<div class="form-group row">
|
||||
<label for="filter_materia" class="col-4 col-form-label">Materia</label>
|
||||
<div class="col-6">
|
||||
<div id="dlmateria" class="datalist datalist-select mb-1 w-100">
|
||||
<div class="datalist-input">Todas las materias</div>
|
||||
<span class="ing-buscar icono"></span>
|
||||
<ul style="display:none">
|
||||
<li data-value="0">Todas las materias</li>
|
||||
<?php foreach ($materias as $materia) { ?>
|
||||
<li data-id="<?= $materia['id']; ?>" class="<?= ($materia['id'] == $_POST['materia']) ? "selected" : '' ?>">
|
||||
<?= $materia['nombre']; ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<input type="hidden" id="filter_materia" name="materia" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fecha inicial y fecha final -->
|
||||
<div class="form-group row">
|
||||
<label for="fecha_inicial" class="col-4 col-form-label">Fecha inicial</label>
|
||||
<div class="col-8 col-sm-4">
|
||||
<input id="fecha_inicial" name="fecha_inicial" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
|
||||
<div class="invalid-feedback">No es una fecha válida.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="fecha_final" class="col-4 col-form-label">Fecha final</label>
|
||||
<div class="col-8 col-sm-4">
|
||||
<input id="fecha_final" name="fecha_final" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly>
|
||||
<div class="invalid-feedback">No es una fecha válida o el rango es incorrecto.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ICO-BUSCAR FILTRAR & ICO-BORRAR LIMPIAR -->
|
||||
<div class="form-group row justify-content-center">
|
||||
<button type="button" class="btn btn-outline-primary mr-2" onclick="if(validateForm) submit('vista_profesor.php')">
|
||||
<span class="ing-buscar icono"></span>
|
||||
Filtrar
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-danger" onclick="reset_form(); submit('vista_profesor.php')">
|
||||
<span class="ing-borrar icono"></span>
|
||||
Limpiar
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
include_once "js/messages.php";
|
||||
?>
|
||||
<script>
|
||||
$(".date-picker").datepicker($.datepicker.regional["es"]);
|
||||
$(".date-picker").datepicker({
|
||||
dateFormat: "dd/mm/yyyy",
|
||||
changeMonth: true,
|
||||
});
|
||||
var today = new Date();
|
||||
|
||||
var fecha_inicial = new Date(<?= $fecha_inicial->format("Y, m-1, d") ?>);
|
||||
var fecha_inicial_periodo = new Date(<?= date("Y, m-1, d", strtotime($periodo['inicio'])) ?>);
|
||||
var fecha_final = new Date(<?= $fecha_final->format("Y, m-1, d") ?>);
|
||||
var fecha_final_periodo = new Date(<?= date("Y, m-1, d", strtotime($periodo['fin'])) ?>);
|
||||
var limit = new Date(Math.min(today, fecha_final_periodo));
|
||||
// if today is in the period, set the initial date to today
|
||||
$("#fecha_inicial").datepicker("option", "minDate", fecha_inicial_periodo);
|
||||
$("#fecha_inicial").datepicker("option", "maxDate", limit);
|
||||
$("#fecha_final").datepicker("option", "minDate", fecha_inicial_periodo);
|
||||
$("#fecha_final").datepicker("option", "maxDate", limit);
|
||||
|
||||
$("#fecha_inicial").datepicker("setDate", fecha_inicial);
|
||||
$("#fecha_final").datepicker("setDate", today <= fecha_final ? today : fecha_final);
|
||||
|
||||
function reset_form() {
|
||||
$("#fecha_inicial").datepicker("setDate", fecha_inicial_periodo);
|
||||
$("#fecha_final").datepicker("setDate", today <= fecha_inicial_periodo ? today : fecha_final_periodo);
|
||||
setDatalistFirst("#filter_carrera");
|
||||
setDatalistFirst("#filter_materia");
|
||||
disableDatalist("#filter_materia");
|
||||
}
|
||||
|
||||
<?php if (empty($carrera)) { ?>
|
||||
disableDatalist("#filter_materia", true);
|
||||
<?php } ?>
|
||||
|
||||
|
||||
// $("#fecha_inicial").on("change", function() {
|
||||
// var fecha_inicial = $("#fecha_inicial").datepicker("getDate");
|
||||
// var fecha_final = $("#fecha_final").datepicker("getDate");
|
||||
// if (fecha_final < fecha_inicial) {
|
||||
// $("#fecha_final").datepicker("setDate", fecha_inicial);
|
||||
// }
|
||||
// $("#fecha_final").datepicker("option", "minDate", fecha_inicial);
|
||||
// });
|
||||
|
||||
// $("#fecha_final").on("change", function() {
|
||||
// var fecha_inicial = $("#fecha_inicial").datepicker("getDate");
|
||||
// var fecha_final = $("#fecha_final").datepicker("getDate");
|
||||
// if (fecha_final < fecha_inicial) {
|
||||
// $("#fecha_inicial").datepicker("setDate", fecha_final);
|
||||
// }
|
||||
// $("#fecha_inicial").datepicker("option", "maxDate", fecha_final);
|
||||
// });
|
||||
// Datalist carrera then select materia
|
||||
$(document).on('click', '#dlcarrera li', function() {
|
||||
// if this is empty
|
||||
// console.log($(this).attr('data-value'));
|
||||
if ($(this).attr('data-value') == '0')
|
||||
disableDatalist("#filter_materia", true);
|
||||
});
|
||||
|
||||
$(document).on('change', '#fecha_inicial', function() {
|
||||
let fi = $(this).datepicker("getDate");
|
||||
$("#fecha_final").datepicker("option", "minDate", fi);
|
||||
});
|
||||
|
||||
$(document).on('change', '#fecha_final', function() {
|
||||
let ff = $(this).datepicker("getDate");
|
||||
$("#fecha_inicial").datepicker("option", "maxDate", ff);
|
||||
});
|
||||
</script>
|
||||
139
import/html_header.php
Normal file
139
import/html_header.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<script defer src="js/sidebarmenu.js"></script>
|
||||
|
||||
|
||||
<?php
|
||||
require_once 'class/c_login.php';
|
||||
$ruta = "../";
|
||||
require_once 'include/bd_pdo.php';
|
||||
|
||||
if (!isset($_SESSION['user'])) {
|
||||
if (isset($redirect))
|
||||
$_SESSION['ruta'] = "main.php";
|
||||
|
||||
header('Location: index.php');
|
||||
}
|
||||
|
||||
$user = unserialize($_SESSION['user']);
|
||||
if ($user->admin) {
|
||||
$grupos = queryAll("SELECT * FROM GRUPO ORDER BY grupo_nombre");
|
||||
$paginas = queryAll("SELECT * FROM pagina ORDER BY pagina_ruta");
|
||||
} else {
|
||||
$paginas = queryAll("SELECT * FROM PERMISO_VIEW WHERE id = :id ORDER BY pagina_ruta", array(":id" => $user->user['id']));
|
||||
$grupos = $db->query("SELECT * FROM GRUPO WHERE grupo_id IN (SELECT grupo_id FROM PERMISO_VIEW WHERE id = :id) ORDER BY grupo_nombre", array(":id" => $user->user['id']));
|
||||
}
|
||||
|
||||
function html_header($title, $header = null)
|
||||
{
|
||||
global $grupos, $paginas, $user;
|
||||
?>
|
||||
<aside id="sidebar" class="bg-light defaultShadow d-flex flex-column p-4">
|
||||
<div class="d-flex align-items-center mb-5">
|
||||
<div class="logotipo"><a href="https://lasalle.mx/" target="_blank"><img src="imagenes/logo_lasalle.png"></a>
|
||||
</div>
|
||||
<div class="flex-grow-1 d-flex justify-content-end">
|
||||
<nav class="navbar navbar-expand d-none d-flex">
|
||||
<ul class="navbar-nav">
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<div class="d-flex mainMenu justify-content-center align-items-center">
|
||||
<div class="max-h iconSesion">
|
||||
<a href="salir.php" class="iconOff max-h pl-3 d-flex justify-content-start align-items-center"><i
|
||||
class="ing-salir"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion px-2" id="accordionMenu">
|
||||
<p class="mb-0 mt-3 ml-4 pl-1">
|
||||
<a class="d-block side-menu" href="main.php">
|
||||
<span class="ing-home"></span> Menú
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<?php
|
||||
if ($user->admin) { ?>
|
||||
<p class="mb-0 mt-3 ml-4 pl-1">
|
||||
<a href="permisos.php" class="d-block side-menu">
|
||||
<span class="ing-pass"></span> Permisos
|
||||
</a>
|
||||
</p>
|
||||
<?php }
|
||||
foreach ($grupos as $key => $grupo) {
|
||||
?>
|
||||
<p class="mb-0 mt-3">
|
||||
<a class="d-block side-menu collapsed" data-toggle="collapse" href="#menu_<?= $key ?>" role="button"
|
||||
aria-expanded="false">
|
||||
<i class="ing-caret ing-fw mr-2"></i>
|
||||
<span class="<?= $grupo['grupo_icon'] ?>"></span>
|
||||
<?= ucfirst($grupo['grupo_nombre']) ?>
|
||||
</a>
|
||||
</p>
|
||||
<div id="menu_<?= $key ?>" class="collapse" data-parent="#accordionMenu" style>
|
||||
<ul class="fa-ul">
|
||||
<?php
|
||||
foreach ($paginas as $pagina) {
|
||||
#print_r($paginas);
|
||||
$page = ucfirst(str_replace('_', ' ', $pagina['pagina_ruta']));
|
||||
$user->access($pagina['pagina_ruta'] ?? '');
|
||||
if ($grupo['grupo_id'] == $pagina['grupo_id']) {
|
||||
if ($user->admin || $user->acceso != 'n') {
|
||||
?>
|
||||
<li class="mt-1">
|
||||
<a href="<?= $pagina['pagina_ruta'] ?>.php">
|
||||
<?= $page ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php }
|
||||
}
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</aside>
|
||||
<div class="overlay"></div>
|
||||
<header class="sticky-top bg-white">
|
||||
<div class="container marco menu d-flex align-items-center">
|
||||
<div class="logotipo">
|
||||
<a href="https://lasalle.mx/" target="_blank">
|
||||
<img src="imagenes/logo_lasalle.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex-grow-1 d-flex justify-content-end">
|
||||
<nav class="navbar navbar-expand-lg d-flex">
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
|
||||
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<!-- Add your navigation items here -->
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="d-flex mainMenu justify-content-center align-items-center">
|
||||
<div class="max-h iconSesion">
|
||||
<a href="salir.php" class="iconOff max-h pl-3 d-flex justify-content-start align-items-center">
|
||||
<i class="ing-salir"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="row bg-info mx-0 barra-gris d-flex flex-column">
|
||||
<div class="marco py-3">
|
||||
<?php
|
||||
if ($header != null) { ?>
|
||||
<h3 class="text-muted"><?= $header; ?></h3>
|
||||
<?php } ?>
|
||||
<h2 class="text-uppercase mt-2"><?= $title; ?></h2>
|
||||
</div>
|
||||
</div>
|
||||
<?php }
|
||||
?>
|
||||
34
import/html_header_index.php
Normal file
34
import/html_header_index.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
require "include/constantes.php";
|
||||
if (isset($_SESSION["user"])) {
|
||||
header("location:main.php");
|
||||
}
|
||||
function html_header($title, $header = null, $links = [])
|
||||
{
|
||||
?>
|
||||
<nav class="navbar sticky-top navbar-light bg-white">
|
||||
<header class="container-fluid">
|
||||
<div class="menu">
|
||||
<a class="navbar-brand" href="/"><img id="logo" src="imagenes/logo_lasalle.png" class="img-fluid" /></a>
|
||||
</div>
|
||||
</header>
|
||||
</nav>
|
||||
<!-- Barra azul -->
|
||||
<div class="row bg-info mx-0 barra-gris">
|
||||
<?php
|
||||
if ($header != null) {
|
||||
?>
|
||||
<div class="marco">
|
||||
<div class="col-sm-12">
|
||||
<h2 class="text-muted"><?= $header; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="marco">
|
||||
<div class="col-sm-12 py-3">
|
||||
<h2 class="text-uppercase"><?= $title; ?></h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
47
import/html_navtoggle.php
Normal file
47
import/html_navtoggle.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
# Componente, desplegable para la barra de navegación con los contenidos del menú (i.e. módulos con sus páginas)
|
||||
|
||||
require_once 'class/c_login.php';
|
||||
|
||||
if (!isset($_SESSION['user'])) {
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
$user = $_SESSION['user'];
|
||||
|
||||
$pages = query('SELECT * FROM FS_MODULOS', single: false);
|
||||
$modules = query('SELECT DISTINCT id, titulo FROM FS_MODULOS', single: false);
|
||||
|
||||
?>
|
||||
|
||||
<!-- Cuando se le hace click al hamburguer button se despliega un menú en la derecha -->
|
||||
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<?php
|
||||
foreach ($modules as $module) {
|
||||
?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<?php echo ucfirst($module['titulo']); ?>
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<?php
|
||||
foreach ($pages as $page)
|
||||
if ($page['id'] == $module['id']) {
|
||||
?>
|
||||
<a class="dropdown-item" href="<?php echo $page['ruta'] . ".php"; ?>">
|
||||
<?php echo ucfirst(str_replace('_', ' ', $page['ruta'])); ?>
|
||||
</a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
42
import/html_scroll.php
Normal file
42
import/html_scroll.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
include_once "include/constantes.php";
|
||||
?>
|
||||
|
||||
<a href="#top" id="scroll-up" class="btn btn-primary btn-sm" role="button" aria-pressed="true" style="display: none; position: fixed; bottom: 3rem; right: 1rem;">
|
||||
<?= $ICO['arriba'] ?>
|
||||
</a>
|
||||
<!-- Scroll down -->
|
||||
<a href="#bottom" id="scroll-down" class="btn btn-primary btn-sm" role="button" aria-pressed="true" style="display: none; position: fixed; bottom: 1rem; right: 1rem;">
|
||||
<?= $ICO['abajo'] ?>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$(window).scroll(function() {
|
||||
if ($(this).scrollTop() > 100) {
|
||||
$('#scroll-up').fadeIn();
|
||||
} else {
|
||||
$('#scroll-up').fadeOut();
|
||||
}
|
||||
|
||||
if ($(this).scrollTop() < $(document).height() - $(window).height() - 100) {
|
||||
$('#scroll-down').fadeIn();
|
||||
} else {
|
||||
$('#scroll-down').fadeOut();
|
||||
}
|
||||
});
|
||||
$('#scroll-up').click(function() {
|
||||
$("html, body").animate({
|
||||
scrollTop: 0
|
||||
}, 600);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#scroll-down').click(function() {
|
||||
$("html, body").animate({
|
||||
scrollTop: $(document).height()
|
||||
}, 600);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
64
import/periodo.php
Normal file
64
import/periodo.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<script src="js/jquery.min.js"></script>
|
||||
|
||||
<form action="action/action_periodousuario_update.php" method="post" id="formaPeriodo">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<?php
|
||||
$target = $target ?? strtok($_SERVER["REQUEST_URI"], '?');
|
||||
$niveles = array_map(
|
||||
fn($nivel) => array_merge(
|
||||
$nivel,
|
||||
['periodos' => $db->where('nivel_id', $nivel['nivel_id'])->get('periodo_view')]
|
||||
), $db->get("nivel")
|
||||
);
|
||||
|
||||
// collect facultad_id's with facultad from $periodos
|
||||
?>
|
||||
<input type="hidden" name="target" value="<?= $target ?>">
|
||||
<div class="form-box">
|
||||
<div class="form-group row">
|
||||
<label for="periodo" class="col-4 col-form-label">Cambiar de periodo</label>
|
||||
<div class="col-6">
|
||||
<div id="dlPeriodo" class="datalist datalist-select mb-1 w-100">
|
||||
<div class="datalist-input">Selecciona un periodo</div>
|
||||
<span class="ing-buscar icono"></span>
|
||||
<ul style="display:none">
|
||||
<?php
|
||||
foreach ($niveles as $nivel) {
|
||||
?>
|
||||
<li data-id="<?= $nivel['nivel_id'] ?>" class="not-selectable disable">
|
||||
<?= $nivel['nivel_nombre'] ?>
|
||||
</li>
|
||||
<?
|
||||
$periodos_rs = $db->query(
|
||||
'SELECT * FROM fs_periodo(NULL, :nivel, 4)',
|
||||
[':nivel' => $nivel['nivel_id']]
|
||||
);
|
||||
foreach ($periodos_rs as $per) {
|
||||
?>
|
||||
<li data-id="<?= $per['periodo_id'] ?>" <?php if ($user->periodo == $per["periodo_id"]) {
|
||||
echo 'class="selected"';
|
||||
} ?>>
|
||||
<?= $per['periodo_nombre'] ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<input type="hidden" id="periodo" name="id" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script src="./js/datalist.js"></script>
|
||||
<script>
|
||||
setDatalist('#periodo', <?php echo $user->periodo; ?>)
|
||||
makeRequiredDatalist("#periodo", true);
|
||||
|
||||
$(document).on('click', '#dlPeriodo ul li', function () {
|
||||
$('#formaPeriodo').submit();
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user