468 lines
16 KiB
PHP
468 lines
16 KiB
PHP
<?php
|
|
require_once("sessionManager.php");
|
|
$numerodeempleado = $_SESSION["numerodeempleado"];
|
|
if( isset($_GET["encuestaid"]) ){
|
|
$pollid = $_GET["encuestaid"];
|
|
}else{
|
|
header("Location: ".$CFG->wwwroot."dashboard.php");
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<?php include "header.php"; ?>
|
|
<link rel="stylesheet" type="text/css" href="css/recursos.css">
|
|
<link rel="stylesheet" type="text/css" href="encuestas/encuestas.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div class="layer-load">
|
|
<div class="lds-ring">
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
</div>
|
|
<nav class="navbar navbar-expand-md bg-dark background-nav sticky-top text-white navbar-dark py-0">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="<?php echo $CFG->wwwroot ?>dashboard.php">
|
|
<img src="img/logo_wh.svg" alt="Logo Universidad Estafeta" height="50" width="150" class="img-fluid">
|
|
</a>
|
|
<button class="navbar-toggler mr-2 p-0" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse navbar-collapse text-white" id="collapsibleNavbar">
|
|
<ul class="navbar-nav">
|
|
<li class="nav-item">
|
|
<span class="navbar-text">
|
|
<i class="fas fa-user"></i>
|
|
<?php echo $numerodeempleado ?>
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
<ul class="nav ml-auto navbar-nav navbar-right">
|
|
<li class="nav-item p-0">
|
|
<a href="<?php echo $CFG->wwwroot ?>runtime/logout.php" class="navbar-brand text-white">
|
|
<span class="small"><i class="far fa-sign-out"></i> Salir</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<section class="cidheader d-none">
|
|
<div id="cidheader" class="carousel slide">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active">
|
|
<img src="img/carusel-header/cursos.jpg" class="card-img">
|
|
</div>
|
|
</div>
|
|
<ol class="carousel-indicators ">
|
|
<li data-target="#cidheader" data-slide-to="0" class="active"></li>
|
|
</ol>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="title-poll">
|
|
<div class="container-fluid py-4">
|
|
<div class="row">
|
|
<div class="col-lg-4 col-md-3 col-3">
|
|
<hr class="line-blue">
|
|
</div>
|
|
<div class="col-lg-4 col-md-6 col-6 text-center">
|
|
<h4 class="col-lg-12" id="pollname"></h4>
|
|
</div>
|
|
<div class="col-lg-4 col-md-3 col-3">
|
|
<hr class="line-blue">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="description-poll mb-4">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-12">
|
|
<div id="descpoll"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="progress-poll mb-5">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-12">
|
|
<!-- Nav tabs -->
|
|
<ul class="nav nav-tabs">
|
|
</ul>
|
|
|
|
<!-- Tab panes -->
|
|
<form class="formcontroller">
|
|
<input type="hidden" name="idencuesta" id="idencuesta" value="<?=$pollid?>">
|
|
<input type="hidden" name="numerodeempleado" id="numerodeempleado" value="<?=$numerodeempleado?>">
|
|
<div class="tab-content gray-bg p-2">
|
|
|
|
</div>
|
|
</form>
|
|
<!--- END TABS PANES -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="result-poll mb-5" style="display: none;">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-lg-12 col-md-12 col-12">
|
|
<h4>Resultados</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container">
|
|
<div class="container-result row"></div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
|
|
<section class="footer-poll">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-4 col-md-3 col-3">
|
|
<hr class="line-blue">
|
|
</div>
|
|
<div class="col-lg-4 col-md-6 col-6 text-center">
|
|
<a class="btn d-inline-flex btn-return" href="#">
|
|
<span class="icon-left mr-2"></span>
|
|
<span> Regresa al menú anterior</span>
|
|
</a>
|
|
</div>
|
|
<div class="col-lg-4 col-md-3 col-3">
|
|
<hr class="line-blue">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<footer class="mt-5">
|
|
<img src="img/login/footer.png" class="background-footer img-fluid" alt="footer">
|
|
</footer>
|
|
<?php include "footer.php"; ?>
|
|
</body>
|
|
|
|
|
|
<script type="text/javascript">
|
|
jQuery(document).ready(function ($) {
|
|
|
|
//---------------------------------------------------------------
|
|
//-------------------- BOTON REGRESAR ---------------------------
|
|
//---------------------------------------------------------------
|
|
$(".btn-return").click(function(){
|
|
let prevUrl = document.referrer;
|
|
window.location=prevUrl;
|
|
});
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
//-------------------- DATA ENCUESTA ---------------------------
|
|
//---------------------------------------------------------------
|
|
function getPoll(encuesta,numeroempl){
|
|
$.ajax({
|
|
url: 'encuestas/getSourcePoll.php',
|
|
type:'POST',
|
|
data:{idencuesta:encuesta,numempl:numeroempl},
|
|
success: function(response) {
|
|
var _data = JSON.parse(response);
|
|
|
|
if (_data.code == '200') {
|
|
|
|
$('#pollname').html(_data.datos.titulo);
|
|
$('#descpoll').html(_data.datos.descripcion);
|
|
|
|
$('.nav-tabs').html('');
|
|
$('.tab-content').html('');
|
|
var navs = '';
|
|
var tabs = '';
|
|
var btn = '';
|
|
var completado;
|
|
|
|
if(_data.datos.estilo == 'libre') {
|
|
completado = 'no completado';
|
|
}else{
|
|
completado = _data.estado;
|
|
}
|
|
|
|
if (completado != 'completed') {
|
|
|
|
//inicio contruccion
|
|
var totaltabs = _data.questions.length;
|
|
$.each(_data.questions, function (index, val) {
|
|
navs = '';
|
|
tabs = '';
|
|
if (index == 0) {
|
|
navs = '<li class="nav-item">'+
|
|
'<a class="nav-link active disabled" data-toggle="tab" href="#poll'+index+'" data-nav="'+index+'" id="nav'+index+'">'+(index+1)+'</a>'+
|
|
'</li>';
|
|
|
|
tabs = '<div class="tab-pane container active" id="poll'+index+'">'+
|
|
'<div class="row">'+
|
|
'<input type="hidden" name="idpregunta[]" id="idpregunta'+index+'" value="'+val.idpregunta+'">'+
|
|
'<div class="col-lg-12 col-md-12 col-12 mt-3">'+
|
|
'<p id="poll'+index+'">'+val.titulo+'</p>'+
|
|
'<p class="polldesc'+index+'">'+val.descripcion_p+'</p>'+
|
|
'<div id="answerspoll'+index+'" class="answers">'+
|
|
'</div>'+
|
|
'</div>'+
|
|
'<div class="col-lg-6 col-md-6 col-6" id="btns_'+index+'">'+
|
|
'</div>'+
|
|
'</div>'+
|
|
'</div>';
|
|
|
|
}else{
|
|
navs = '<li class="nav-item">'+
|
|
'<a class="nav-link disabled" data-toggle="tab" href="#poll'+index+'" data-nav="'+index+'" id="nav'+index+'">'+(index+1)+'</a>'+
|
|
'</li>';
|
|
|
|
tabs = '<div class="tab-pane container fade" id="poll'+index+'">'+
|
|
'<div class="row">'+
|
|
'<input type="hidden" name="idpregunta[]" id="idpregunta'+index+'" value="'+val.idpregunta+'">'+
|
|
'<div class="col-lg-12 col-md-12 col-12 mt-3">'+
|
|
'<p id="poll'+index+'">'+val.titulo+'</p>'+
|
|
'<p class="polldesc'+index+'">'+val.descripcion_p+'</p>'+
|
|
'<div id="answerspoll'+index+'" class="answers">'+
|
|
'</div>'+
|
|
'</div>'+
|
|
'<div class="col-lg-6 col-md-6 col-6" id="btns_'+index+'">'+
|
|
'</div>'+
|
|
'</div>'+
|
|
'</div>';
|
|
|
|
}
|
|
|
|
$('.nav-tabs').append(navs);
|
|
$('.tab-content').append(tabs);
|
|
|
|
$.each(val.respuestas, function (indexanswers, answers) {
|
|
|
|
answers = '<label class="container-check">'+answers.titulo+
|
|
'<input type="radio" data-sec="'+index+'" name="answers'+answers.idpregunta+'" id="answers'+answers.idpregunta+'" value="'+answers.idrespuesta+'">'+
|
|
'<span class="checkmark"></span>'+
|
|
'</label>';
|
|
$('#answerspoll'+index).append(answers);
|
|
});
|
|
|
|
|
|
if (totaltabs == (index+1)) {
|
|
btn = '<button type="submit" name="btnSave" value="terminar" id="btn-'+index+'" data-tab="'+index+'" class="btn-next btn btn-primary btn-sm" style="display:none;">Enviar</button>';
|
|
/*
|
|
$('#btn-'+index).text('Terminar');
|
|
$('#btn-'+index).val('terminar');
|
|
*/
|
|
}else{
|
|
btn = '<button type="button" name="btnSave" value="siguiente" id="btn-'+index+'" data-tab="'+index+'" class="btn-next btn btn-primary btn-sm" style="display:none;">Siguiente</button>';
|
|
}
|
|
$('#btns_'+index).append(btn);
|
|
|
|
$('.answers input').click(function () {
|
|
seccion = $(this).attr('data-sec');
|
|
$('#btn-'+seccion).show();
|
|
});
|
|
});
|
|
|
|
$(".btn-next").click(function(){
|
|
tabant = $(this).attr('data-tab');
|
|
tabsig = parseInt(tabant);
|
|
tabsig = (tabsig+1);
|
|
$('#poll'+tabant).removeClass('active');
|
|
$('#nav'+tabant).removeClass('active');
|
|
//$('#idpregunta'+tabant).attr('disabled',true);
|
|
|
|
$('#poll'+tabsig).tab('show');
|
|
$('#nav'+tabsig).addClass('active');
|
|
|
|
});
|
|
//fin construcción
|
|
|
|
}else{
|
|
result($('#idencuesta').val());
|
|
|
|
}
|
|
$('.layer-load').hide();
|
|
}else{
|
|
|
|
Swal.fire({
|
|
html: _data.msg,
|
|
icon: _data.icon,
|
|
onBeforeOpen: function () {},
|
|
onOpen: function () {
|
|
$('.layer-load').hide();
|
|
},
|
|
onRender: function () {},
|
|
onClose: function () {
|
|
$('.btn-return').click();
|
|
},
|
|
onAfterClose: function () {}
|
|
});
|
|
}
|
|
|
|
},
|
|
error: function() {
|
|
Swal.fire({
|
|
html: 'Hubo un error al procesar los datos',
|
|
icon: 'error',
|
|
onBeforeOpen: function () {},
|
|
onOpen: function () {
|
|
$('.layer-load').hide();
|
|
},
|
|
onRender: function () {},
|
|
onClose: function () {
|
|
$('.btn-return').click();
|
|
},
|
|
onAfterClose: function () {}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
//------------------- RESULT ENCUESTA ---------------------------
|
|
//---------------------------------------------------------------
|
|
function result(encuesta){
|
|
$('.layer-load').show();
|
|
$('.progress-poll').hide(300);
|
|
$('.result-poll').show(300);
|
|
|
|
$.ajax({
|
|
url: 'encuestas/getResult.php',
|
|
type:'POST',
|
|
data:{idencuesta:encuesta},
|
|
success: function(response) {
|
|
var _dataresult = JSON.parse(response);
|
|
|
|
$('.container-result').html('');
|
|
var option = '';
|
|
var grafica = '';
|
|
$.each(_dataresult.questions, function (index, val) {
|
|
option = '';
|
|
|
|
option = '<div class="col-lg-4 col-md-4 col-12 py-2">'+
|
|
'<div class="card cont'+index+' p-3 h-100">'+
|
|
'<p>'+val.titulo+'</p>'+
|
|
'<div class="options'+index+'">'+
|
|
'</div>'+
|
|
'</div>'+
|
|
'</div>';
|
|
$('.container-result').append(option);
|
|
|
|
res = index%2;
|
|
if(res == 0){
|
|
$('.cont'+index).addClass('light-bg');
|
|
}else{
|
|
$('.cont'+index).addClass('dark-bg');
|
|
}
|
|
|
|
$.each(val.respuestas, function (indexanswers, answers) {
|
|
grafica = '';
|
|
|
|
grafica = '<div class="mt-2 mb-2">'+
|
|
'<label>'+answers.titulo+'</label>'+
|
|
'<div class="progress" id="options">'+
|
|
'<div class="progress-bar bg-danger" style="width:'+answers.promedio+'%">'+answers.promedio+'%</div>'+
|
|
'</div>'+
|
|
'</div>';
|
|
|
|
$('.options'+index).append(grafica);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$('.layer-load').hide();
|
|
},
|
|
error: function() {
|
|
$('.layer-load').hide();
|
|
$('.progress-poll .row').html('<div class="col-lg-12 col-md-12 col-12 text-center" style="margin-top: 15%; margin-bottom: 15%;"><h4>No se pudieron obtener los datos de la encuesta intenta más tarde.</h4></div>');
|
|
}
|
|
});
|
|
|
|
}
|
|
//---------------------------------------------------------------
|
|
//-------------------- SEND ENCUESTA ---------------------------
|
|
//---------------------------------------------------------------
|
|
$(".formcontroller").validate({
|
|
submitHandler: function (form) {
|
|
$('.layer-load').show();
|
|
|
|
var controller = 'encuestas/savePoll.php';
|
|
$.ajax({
|
|
url: controller,
|
|
type: 'POST',
|
|
data: $(".formcontroller").serializeArray(),
|
|
})
|
|
.done(function (response) {
|
|
var _data = JSON.parse(response);
|
|
|
|
if (_data.code == '200') {
|
|
/*
|
|
var tabsig;
|
|
var tabant;
|
|
$(".nav-link").each(function() {
|
|
if($(this).hasClass('active')){
|
|
tabsig = $(this).attr('data-nav');
|
|
}
|
|
});
|
|
tabant = parseInt(tabsig)-1;
|
|
$('#idpregunta'+tabant).attr('disabled',true);
|
|
$('#answerspoll'+tabant+' input').attr('disabled',true);
|
|
$('#idpregunta'+tabsig).attr('disabled',false);
|
|
*/
|
|
if (_data.section == 'terminar') {
|
|
result(_data.encuesta);
|
|
}
|
|
}else{
|
|
Swal.fire({
|
|
html: _data.msg,
|
|
icon: _data.icon,
|
|
onBeforeOpen: function () {},
|
|
onOpen: function () {},
|
|
onRender: function () {},
|
|
onClose: function () {},
|
|
onAfterClose: function () {}
|
|
});
|
|
}
|
|
})
|
|
.fail(function () {
|
|
//console.log("error");
|
|
})
|
|
.always(function () {
|
|
//console.log("complete");
|
|
});
|
|
},
|
|
rules: {
|
|
idencuesta: {
|
|
required: true
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
getPoll($('#idencuesta').val(),$('#numerodeempleado').val());
|
|
|
|
|
|
});
|
|
</script>
|
|
|
|
|
|
</html>
|