Fix editar avisos

This commit is contained in:
2023-05-17 10:24:43 -06:00
parent e0f1b4847d
commit 05020b9d29

View File

@@ -2,30 +2,26 @@
require_once 'class/c_login.php'; require_once 'class/c_login.php';
require_once 'include/bd_pdo.php'; require_once 'include/bd_pdo.php';
if(!isset($_SESSION['user'])){ if (!isset($_SESSION['user'])) {
header('Location: index.php'); header('Location: index.php');
exit; exit;
} } else
else
$user = unserialize($_SESSION['user']); $user = unserialize($_SESSION['user']);
$user->access('Avisos'); $user->access('Avisos');
if(!$user->admin && $user->acceso == 'n'){ if (!$user->admin && $user->acceso == 'n') {
header('Location: main.php?error=1'); header('Location: main.php?error=1');
}else{ } else {
$user->print_to_log('Avisos Editar'); $user->print_to_log('Avisos Editar');
} }
$fac = $user->facultad['facultad_id']; $fac = $user->facultad['facultad_id'];
if($user->admin){ if ($user->admin) {
$fac = null; $fac = null;
} }
$fs_aviso = query('SELECT * FROM fs_aviso(:aviso_id, null, :facultad_id, null, 0, null)', [':aviso_id' => $_GET['id'], ':facultad_id' => $fac], true); $fs_aviso = query('SELECT * FROM fs_aviso(:aviso_id, null, :facultad_id, null, 0, null)', [':aviso_id' => $_GET['id'], ':facultad_id' => $fac], true);
$fs_carreras = query('SELECT * FROM fs_carreras(:fac, null, null)', [':fac' => $fs_aviso['facultad_id']], false); $fs_carreras = query('SELECT * FROM fs_carreras(:fac, null, null)', [':fac' => $fs_aviso['facultad_id']], false);
$fs_usr = query('SELECT * FROM fs_profesor_aviso(:aviso_id)', [':aviso_id' => $_GET['id']], false); $fs_usr = query('SELECT * FROM fs_profesor_aviso(:aviso_id)', [':aviso_id' => $_GET['id']], false);
$today = date('Y-m-d'); $today = date('Y-m-d');
$edit = true; $edit = $today < $fs_aviso['aviso_fecha_inicial'];
if($today >= $fs_aviso['aviso_fecha_inicial']){
$edit = false;
}
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
@@ -61,12 +57,16 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
<div class="form-group row"> <div class="form-group row">
<label for="fecha_inicial" class="col-4 col-form-label">Fecha inicial</label> <label for="fecha_inicial" class="col-4 col-form-label">Fecha inicial</label>
<div class="col-8 col-sm-4"> <div class="col-8 col-sm-4">
<?php if($edit == true){ ?> <?php if ($edit) { ?>
<input id="fecha_inicial" name="fecha_inicial" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php $day = explode("-", $fs_aviso['aviso_fecha_inicial']); $dia_inicial = $day['2'].'/'.$day['1'].'/'.$day[0]; echo $dia_inicial;?>"> <input id="fecha_inicial" name="fecha_inicial" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php $day = explode("-", $fs_aviso['aviso_fecha_inicial']);
$dia_inicial = $day['2'] . '/' . $day['1'] . '/' . $day[0];
echo $dia_inicial; ?>">
<div class="invalid-feedback">No es una fecha valida</div> <div class="invalid-feedback">No es una fecha valida</div>
<?php }else{ ?> <?php } else { ?>
<div> <div>
<?php $day = explode("-", $fs_aviso['aviso_fecha_inicial']); $dia_inicial = $day['2'].'/'.$day['1'].'/'.$day[0]; echo $dia_inicial;?> <?php $day = explode("-", $fs_aviso['aviso_fecha_inicial']);
$dia_inicial = $day['2'] . '/' . $day['1'] . '/' . $day[0];
echo $dia_inicial; ?>
</div> </div>
<?php } ?> <?php } ?>
</div> </div>
@@ -74,21 +74,23 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
<div class="form-group row"> <div class="form-group row">
<label for="fecha_final" class="col-4 col-form-label">Fecha Final *</label> <label for="fecha_final" class="col-4 col-form-label">Fecha Final *</label>
<div class="col-8 col-sm-4"> <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="readonly" value="<?php $day = explode("-", $fs_aviso['aviso_fecha_final']); $dia_final = $day['2'].'/'.$day['1'].'/'.$day[0]; echo $dia_final;?>"> <input id="fecha_final" name="fecha_final" type="text" class="form-control date-picker" placeholder="dd/mm/aaaa" maxlength="10" required="required" readonly="readonly" value="<?php $day = explode("-", $fs_aviso['aviso_fecha_final']);
$dia_final = $day['2'] . '/' . $day['1'] . '/' . $day[0];
echo $dia_final; ?>">
<div class="invalid-feedback">No es una fecha valida</div> <div class="invalid-feedback">No es una fecha valida</div>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="texto" class="col-4 col-form-label">Aviso *</label> <label for="texto" class="col-4 col-form-label">Aviso *</label>
<div class="col-8"> <div class="col-8">
<?php if($edit == true){ ?> <?php if ($edit == true) { ?>
<textarea name="texto" id="texto" class="richtext" rows="10" readonly="readonly"><?= $fs_aviso['aviso_texto'] ?></textarea> <textarea name="texto" id="texto" class="richtext" rows="10" readonly="readonly"><?= $fs_aviso['aviso_texto'] ?></textarea>
<?php }else{ ?> <?php } else { ?>
<p><?= $fs_aviso['aviso_texto'] ?></p> <p><?= $fs_aviso['aviso_texto'] ?></p>
<?php } ?> <?php } ?>
</div> </div>
</div> </div>
<?php if($edit){ ?> <?php if ($edit) { ?>
<div class="form-group row tipo_aviso"> <div class="form-group row tipo_aviso">
<label class="col-4 col-form-label">Enviar aviso:</label> <label class="col-4 col-form-label">Enviar aviso:</label>
<div class="col-4 pt-2"> <div class="col-4 pt-2">
@@ -99,7 +101,7 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
</div> </div>
<div class="col-4 pt-2"> <div class="col-4 pt-2">
<div class="custom-control custom-switch"> <div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input tipo-switch" name="bloque_usr" id="bloque_usr" value="1" data-box="administrativoBox" data-select="usuario_box"> <input type="checkbox" class="custom-control-input tipo-switch" name="bloque_usr" id="bloque_usr" value="1" data-box="administrativoBox" data-select="usuario_box">
<label class="custom-control-label" for="bloque_usr">Por nombre</label> <label class="custom-control-label" for="bloque_usr">Por nombre</label>
</div> </div>
</div> </div>
@@ -114,68 +116,68 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
</select> </select>
</div> </div>
<div class="col-2"> <div class="col-2">
<p><button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#modal_carrera"><span class="ing-mas ing-fw"></span> Asignar</button></p> <p><button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#modal_carrera"><span class="ing-mas ing-fw"></span> Asignar</button></p>
<p><button type="button" class="btn btn-outline-danger btn-quita-tipo"><span class="ing-menos ing-fw"></span> Quitar</button></p> <p><button type="button" class="btn btn-outline-danger btn-quita-tipo"><span class="ing-menos ing-fw"></span> Quitar</button></p>
</div> </div>
</div> </div>
</div> </div>
<div class="collapse" id="administrativoBox"> <div class="collapse" id="administrativoBox">
<h3>Nombre de profesores</h3> <h3>Nombre de profesores</h3>
<p>Utiliza el botón para asignar los profesores que recibirán el aviso.</p> <p>Utiliza el botón para asignar los profesores que recibirán el aviso.</p>
<div class="form-group row"> <div class="form-group row">
<div class="col-10"> <div class="col-10">
<select name="usuario[]" id="usuario_box" class="form-control" multiple="multiple" size="5"> <select name="usuario[]" id="usuario_box" class="form-control" multiple="multiple" size="5">
<?php <?php
foreach($fs_usr as $usuario){ foreach ($fs_usr as $usuario) {
echo "<option value='".$usuario['profesor_id']."'>".$usuario['profesor_nombre']."</option>"; echo "<option value='" . $usuario['profesor_id'] . "'>" . $usuario['profesor_nombre'] . "</option>";
} }
?> ?>
</select> </select>
</div> </div>
<div class="col-2"> <div class="col-2">
<p><button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#modal_usr"><span class="ing-mas ing-fw"></span> Asignar</button></p> <p><button type="button" class="btn btn-outline-primary" data-toggle="modal" data-target="#modal_usr"><span class="ing-mas ing-fw"></span> Asignar</button></p>
<p><button type="button" class="btn btn-outline-danger btn-quita-usr"><span class="ing-menos ing-fw"></span> Quitar</button></p> <p><button type="button" class="btn btn-outline-danger btn-quita-usr"><span class="ing-menos ing-fw"></span> Quitar</button></p>
</div>
</div> </div>
</div> </div>
</div> </div>
<?php }else{ </div>
$num_prof = round(count($fs_usr)/2); <?php } else {
?> $num_prof = round(count($fs_usr) / 2);
<h3>Profesores que recibirán el aviso</h3> ?>
<div class="row" style="max-height:400px; overflow-y:auto; overflow-x:hidden;"> <h3>Profesores que recibirán el aviso</h3>
<div class="col-5"> <div class="row" style="max-height:400px; overflow-y:auto; overflow-x:hidden;">
<div> <div class="col-5">
<ul> <div>
<?php for($i = 0; $i < $num_prof; $i++){ <ul>
echo "<li>".$fs_usr[$i]['profesor_nombre']."</li>"; <?php for ($i = 0; $i < $num_prof; $i++) {
} ?> echo "<li>" . $fs_usr[$i]['profesor_nombre'] . "</li>";
</ul> } ?>
</div> </ul>
</div>
<div class="col-5">
<div>
<ul>
<?php for($i = $i; $i < count($fs_usr); $i++){
echo "<li>".$fs_usr[$i]['profesor_nombre']."</li>";
} ?>
</ul>
</div>
</div>
</div>
<?php } ?>
<div class="form-group row mt-2">
<div class="col-12 text-center">
<button type="submit" class="btn btn-outline-primary" id="submitBtn" data-tipo="1"><span class="ing-aceptar"></span> Guardar</button>
<a href="avisos.php" class="btn btn-outline-danger"><span class="ing-cancelar"></span> Cancelar</a>
</div> </div>
</div> </div>
</form> <div class="col-5">
<div>
<ul>
<?php for ($i = $i; $i < count($fs_usr); $i++) {
echo "<li>" . $fs_usr[$i]['profesor_nombre'] . "</li>";
} ?>
</ul>
</div>
</div>
</div>
<?php } ?>
<div class="form-group row mt-2">
<div class="col-12 text-center">
<button type="submit" class="btn btn-outline-primary" id="submitBtn" data-tipo="1"><span class="ing-aceptar"></span> Guardar</button>
<a href="avisos.php" class="btn btn-outline-danger"><span class="ing-cancelar"></span> Cancelar</a>
</div>
</div> </div>
</form>
</div> </div>
</main> </div>
<!-- Footer --> </main>
<!-- Footer -->
<?php <?php
include "import/html_footer.php"; include "import/html_footer.php";
?> ?>
@@ -201,11 +203,11 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
</thead> </thead>
<tbody> <tbody>
<?php $count = 1; <?php $count = 1;
foreach($fs_carreras as $carrera){ ?> foreach ($fs_carreras as $carrera) { ?>
<tr class="tipo-row" id="arow_<?= $carrera['carrera_id'] ?>"> <tr class="tipo-row" id="arow_<?= $carrera['carrera_id'] ?>">
<td><?= $carrera['carrera_nombre'] ?></td> <td><?= $carrera['carrera_nombre'] ?></td>
<td class="text-center"><button type="button" class="btn btn-outline-primary btn-sm btn-agrega-tipo" data-id="<?= $carrera['carrera_id'] ?>" data-text="<?= $carrera['carrera_nombre'] ?>"><span class="ing-mas"></span></button></td> <td class="text-center"><button type="button" class="btn btn-outline-primary btn-sm btn-agrega-tipo" data-id="<?= $carrera['carrera_id'] ?>" data-text="<?= $carrera['carrera_nombre'] ?>"><span class="ing-mas"></span></button></td>
</tr> </tr>
<?php $count++; <?php $count++;
} ?> } ?>
</tbody> </tbody>
@@ -227,7 +229,7 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form id="forma_buscar-usr" onsubmit="return false"> <form id="forma_buscar-usr" onsubmit="return false">
<input type="hidden" id="facultad" name="facultad" value="<?= $fac ?>"> <input type="hidden" id="facultad" name="facultad" value="<?= $fac ?>">
<div class="form-box"> <div class="form-box">
<div class="form-group row"> <div class="form-group row">
<label for="filter_desc" class="col-4 col-form-label">Nombre</label> <label for="filter_desc" class="col-4 col-form-label">Nombre</label>
@@ -277,7 +279,7 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
<script src="js/datepicker-es.js"></script> <script src="js/datepicker-es.js"></script>
<script src="./js/richtext.js"></script> <script src="./js/richtext.js"></script>
<?php <?php
require_once 'js/messages.php'; require_once 'js/messages.php';
?> ?>
<script> <script>
var today = new Date(); var today = new Date();
@@ -286,58 +288,57 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
dateFormat: "dd/mm/yyyy", dateFormat: "dd/mm/yyyy",
changeMonth: true, changeMonth: true,
}); });
$(document).ready(function(){ $(document).ready(function() {
$('.richtext').richText(); $('.richtext').richText();
$("#fecha_final").datepicker("option", "minDate", today); $("#fecha_final").datepicker("option", "minDate", today);
$("#fecha_inicial").datepicker("option", "minDate", today); $("#fecha_inicial").datepicker("option", "minDate", today);
<?php <?php
if(count($fs_usr) > 0){ ?> if (count($fs_usr) > 0) { ?>
$('#bloque_usr').prop("checked", true); $('#bloque_usr').prop("checked", true);
$('#administrativoBox').collapse('show'); $('#administrativoBox').collapse('show');
<? } <?php } if ($edit == false) { ?>
if($edit == false){ ?>
$('.richText-editor').removeAttr("contentEditable"); $('.richText-editor').removeAttr("contentEditable");
<?php } <?php }
?> ?>
}); });
$(document).on( "change", ".tipo-switch", function(event){ $(document).on("change", ".tipo-switch", function(event) {
if($(this).data("box") !== undefined){ if ($(this).data("box") !== undefined) {
if($(this).prop('checked')){ if ($(this).prop('checked')) {
$('#'+$(this).data("box")).collapse('show'); $('#' + $(this).data("box")).collapse('show');
}else{ } else {
$('#'+$(this).data("box")).collapse('hide'); $('#' + $(this).data("box")).collapse('hide');
} }
} }
$('#bloque_tipo').removeClass("is-invalid"); $('#bloque_tipo').removeClass("is-invalid");
$('#bloque_usr').removeClass("is-invalid"); $('#bloque_usr').removeClass("is-invalid");
}); });
$(document).on( "click", ".btn-agrega-tipo", function(event){ $(document).on("click", ".btn-agrega-tipo", function(event) {
var id = $(this).data("id"); var id = $(this).data("id");
var text = $(this).data("text"); var text = $(this).data("text");
if($('#tipo_box option[value="' + id + '"]').length == 0){ if ($('#tipo_box option[value="' + id + '"]').length == 0) {
$("#tipo_box").append($("<option></option>").attr("value",id).text(text)); $("#tipo_box").append($("<option></option>").attr("value", id).text(text));
} }
$(this).parents("tr").addClass("d-none"); $(this).parents("tr").addClass("d-none");
}); });
$(document).on( "click", ".btn-quita-tipo", function(event){ $(document).on("click", ".btn-quita-tipo", function(event) {
var id = $("#tipo_box option:selected").val(); var id = $("#tipo_box option:selected").val();
$("#arow_"+id).removeClass("d-none"); $("#arow_" + id).removeClass("d-none");
$("#tipo_box option:selected").remove(); $("#tipo_box option:selected").remove();
}); });
$(document).on( "click", ".modal-open", function(event){ $(document).on("click", ".modal-open", function(event) {
$(".area-row").removeClass("d-none"); $(".area-row").removeClass("d-none");
$('#area > option').each(function() { $('#area > option').each(function() {
$("#row_"+$(this).val()).addClass("d-none"); $("#row_" + $(this).val()).addClass("d-none");
}); });
$('#modal').modal("show"); $('#modal').modal("show");
}); });
$(document).on('click', '#btn-busca-usr', function(event){ $(document).on('click', '#btn-busca-usr', function(event) {
var nombre = $('#filter_desc').val(); var nombre = $('#filter_desc').val();
var clave = $('#filter_clave').val(); var clave = $('#filter_clave').val();
var fac = $('#facultad').val(); var fac = $('#facultad').val();
@@ -346,25 +347,29 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
url: 'action/usuario_find.php', url: 'action/usuario_find.php',
type: 'POST', type: 'POST',
dataType: 'json', dataType: 'json',
data: {nombre: nombre, clave: clave, facultad: fac}, data: {
success: function(result){ nombre: nombre,
clave: clave,
facultad: fac
},
success: function(result) {
console.log(result.length); console.log(result.length);
$("#table-result-usr").find(".usr-nombre").html(""); $("#table-result-usr").find(".usr-nombre").html("");
$("#table-result-usr").find(".usr-agrega button").addClass("invisible"); $("#table-result-usr").find(".usr-agrega button").addClass("invisible");
var rows = $("#table-result-usr > tr").length;//limpia tabla actual var rows = $("#table-result-usr > tr").length; //limpia tabla actual
if(rows > result.length){ if (rows > result.length) {
while(rows > result.length && rows > 1){ while (rows > result.length && rows > 1) {
$("#table-result-usr .usr-row:last-child").remove(); $("#table-result-usr .usr-row:last-child").remove();
rows--; rows--;
} }
}else{ } else {
for(var i=rows; i<result.length; i++){ for (var i = rows; i < result.length; i++) {
$("#table-result-usr .usr-row:first-child").clone(true).appendTo("#table-result-usr"); $("#table-result-usr .usr-row:first-child").clone(true).appendTo("#table-result-usr");
} }
} }
if(result.length != 0){ if (result.length != 0) {
$('#table-result-usr').children().each(function(index){ $('#table-result-usr').children().each(function(index) {
if(index < result.length){ if (index < result.length) {
$(this).find('.usr-nombre').html(result[index]['profesor_nombre']); $(this).find('.usr-nombre').html(result[index]['profesor_nombre']);
$(this).find('.usr-agrega button').data("id", result[index]['profesor_id']); $(this).find('.usr-agrega button').data("id", result[index]['profesor_id']);
$(this).find('.usr-agrega button').data("text", result[index]['profesor_nombre']); $(this).find('.usr-agrega button').data("text", result[index]['profesor_nombre']);
@@ -374,53 +379,53 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
}) })
} }
}, },
error: function(){ error: function() {
console.log('error'); console.log('error');
} }
}); });
}); });
$(document).on( "click", ".btn-agrega-usr", function(event){ $(document).on("click", ".btn-agrega-usr", function(event) {
var id = $(this).data("id"); var id = $(this).data("id");
var text = $(this).data("text"); var text = $(this).data("text");
var rows = $("#table-result-usr > tr").length;//limpia tabla actual var rows = $("#table-result-usr > tr").length; //limpia tabla actual
if($('#usuario_box option[value="' + id + '"]').length == 0){ if ($('#usuario_box option[value="' + id + '"]').length == 0) {
$("#usuario_box").append($("<option></option>").attr("value",id).text(text)); $("#usuario_box").append($("<option></option>").attr("value", id).text(text));
} }
if(rows > 1) if (rows > 1)
$(this).parents("tr").remove(); $(this).parents("tr").remove();
else{ else {
$(this).parents("tr").hide(); $(this).parents("tr").hide();
$("#filter_desc-usr").val(""); $("#filter_desc-usr").val("");
} }
}); });
$(document).on( "click", ".btn-quita-usr", function(event){ $(document).on("click", ".btn-quita-usr", function(event) {
$("#usuario_box option:selected").remove(); $("#usuario_box option:selected").remove();
}); });
function validaCampos(){ function validaCampos() {
var error = false; var error = false;
var inicio = $('#fecha_inicial').val(); var inicio = $('#fecha_inicial').val();
var fin = $('#fecha_final').val(); var fin = $('#fecha_final').val();
var aux = inicio.split('/'); var aux = inicio.split('/');
inicio = aux[2]+'-'+aux[1]+'-'+aux[0]; inicio = aux[2] + '-' + aux[1] + '-' + aux[0];
aux = fin.split('/'); aux = fin.split('/');
fin = aux[2]+'-'+aux[1]+'-'+aux[0]; fin = aux[2] + '-' + aux[1] + '-' + aux[0];
if(fin < inicio){ if (fin < inicio) {
$('#fecha_final').addClass('is-invalid'); $('#fecha_final').addClass('is-invalid');
error = true; error = true;
} }
if($('select').find('option').length == 0){ if ($('select').find('option').length == 0) {
error = true; error = true;
$('.tipo_aviso').addClass('is-invalid'); $('.tipo_aviso').addClass('is-invalid');
}else{ } else {
$('.tipo_aviso').removeClass('is-invalid'); $('.tipo_aviso').removeClass('is-invalid');
} }
if(error){ if (error) {
return false; return false;
}else{ } else {
$('#tipo_box option').prop('selected', true); $('#tipo_box option').prop('selected', true);
$('#usuario_box option').prop('selected', true); $('#usuario_box option').prop('selected', true);
$('#formaModal').prp('action', './action/action_avisos_update.php'); $('#formaModal').prp('action', './action/action_avisos_update.php');
@@ -428,4 +433,5 @@ if($today >= $fs_aviso['aviso_fecha_inicial']){
} }
</script> </script>
</body> </body>
</html> </html>