File: /var/www/vhost/disk-apps/alq-cali.bikenow.co/resources/views/results/detail_users/list.blade.php
@extends('modules.head') @section('contenido')
<a class="btn btn-app btnReportProducts" href="{{url('/results/export/'.$form_id)}}">
<i class="fa fa-cloud-download"></i> {{ Lang::get('messages.answers.title_19')}}
</a>
<a class="btn btn-app btnReportProducts" data-toggle="modal" data-target="#modalExportResults" onclick="resetModalExportResults()">
<i class="fa fa-cloud-download"></i> {{ Lang::get('messages.answers.title_20')}}
</a>
<h3>
<a class="ruta" class="" href="{{url('/results')}}">{{ __('messages.answers.title_17') }}</a>
</h3>
<!-- List answers-->
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ __('messages.answers.title_13') }}</h3>
</div>
<!-- /.box-header -->
<div class="box-body table-responsive ">
<table id="example2" class="table table-bordered table-hover dataTable" role="grid" aria-describedby="example2_info">
<thead>
<tr role="row">
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ __('messages.answers.title_3') }}
</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ __('messages.answers.title_4') }}
</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ __('messages.answers.title_21') }}
</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ __('messages.answers.document_type') }}
</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ __('messages.answers.document') }}
</th>
<th class="sorting" tabindex="0" aria-controls="example2" rowspan="1" colspan="1" aria-label="Browser: activate to sort column ascending">
{{ __('messages.answers.title_7') }}
</th>
</tr>
</thead>
</table>
</div>
<!-- /.box-body -->
<div class="modal fade" id="modal_results">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span></button>
<h4 class="modal-title">{{ __('messages.answers.title_18') }}</h4>
</div>
<div class="modal-body">
<div class="box-body" id="body_seat">
HOLI
</div>
</div>
</div>
</div>
</div>
<input type="hidden" class="form-control" id="headers" value="{{ json_encode($headers,TRUE) }}">
</div>
<!-- /.MODAL Download Tickets admin -->
<div class="modal fade" id="modalExportResults">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span></button>
<h4 class="modal-title">{{ Lang::get('messages.answers.title_20')}}</h4>
</div>
<div class="modal-body">
<div class="row">
<form id="downloadExportResults">
<div class="col-xs-12">
<div class="form-group">
<div class="row">
<div class="col-xs-6">
<label for="from_date">{{ Lang::get('messages.screen_report_tag3')}}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" value="" name="from_date" class="form-control pull-right" autocomplete="off">
</div>
</div>
<div class="col-xs-6">
<label for="to_date">{{ Lang::get('messages.screen_report_tag4')}}</label>
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" value="" name="to_date" class="form-control pull-right" autocomplete="off">
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">{{ Lang::get('messages.screen_products_tag38')}}</button>
<button type="button" id="downloadExportResultsButton" onclick="exportResults()" class="btn btn-primary">{{ Lang::get('messages.answers.title_19')}}</button>
<button type="button" class="btn btn-primary displayNone" id="downloadExportResultsSpinner">
<i class="fa fa-spinner fa-spin"></i> Generando boletas ...
</button>
</div>
</div>
</div>
</div>
@endsection
<script src="{{ asset('js/jQuery/jquery-2.2.3.min.js') }}"></script>
<script src="{{ asset('js/results.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/bootstrap/js/bootstrap.min.js') }}"></script>
<script type="text/javascript">
$(document).ready(function() {
let headers = document.getElementById('headers').value;
headers = JSON.parse(headers);
let table = document.getElementById('example2');
for (let i = 0; i < headers.length; i++) {
// Create an empty <thead> element and add it to the table:
var thead = table.createTHead();
thead.firstElementChild.appendChild(document.createElement("th")).
appendChild(document.createTextNode(headers[i].name));
headers[i].render = function(data, type, row) {
return data ?? '';
};
}
headers.unshift({
data: 'form.name',
name: 'form_id'
}, {
data: "user.first_name",
render: function(data, type, row) {
return row.user.first_name + ' ' + row.user.last_name;
},
name: 'user.first_name' || 'user.last_name'
}, {
data: "user.email",
name: 'user.email'
}, {
data: "user.document_type.name",
render: function(data, type, row) {
return row.user.document_type ? row.user.document_type.name : '';
},
name: 'user.document_type.name'
}, {
data: "user.document",
name: 'user.document'
}, {
data: 'created_at',
name: 'created_at'
});
var sort_col = $('#example2').find("th:contains(" + Lang.get("messages.report_redemptions.title_7")+ ")")[0] ?? $('#example2').find("th:contains('Fecha')")[0];
sort_col = sort_col.cellIndex;
_table = $('#example2').DataTable({
responsive: true,
processing: true,
serverSide: true,
order: [
[sort_col, 'desc']
],
language: {
url: window.DATATABLES_LANGUAGE_URL,
},
ajax: {
url: '{{ route("answers.table", ["form_id" => $form_id]) }}',
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
type: "POST"
},
columns: headers
});
var info = '<i class="fa fa-info-circle" id="btn-info-busqueda"></i><div class="dropdown-menu" id="menuBusqueda" style="left: 50%; padding: 5px; background-color: #f9fb8f;"><p data-toggle="modal">Busqueda por Nombre, Orden y Link</p></div>';
$('#example2_filter').append(info);
$('#btn-info-busqueda').on('click', function() {
$('#menuBusqueda').toggle();
});
$.fn.datepicker.dates['en'] = {
days: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
daysShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
daysMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre',
'Octubre', 'Noviembre', 'Diciembre'
],
monthsShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
today: "Hoy",
clear: "Clear",
format: "yyyy-mm-dd",
titleFormat: "MM yyyy",
weekStart: 0
};
$("input[name='from_date']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
$("input[name='to_date']").datepicker({
dateFormat: 'yyyy-mm-dd'
});
});
function exportResults() {
var formId = document.location.href.match(/[0-9]+/)[0];
var validateDownloadUrl = document.location.origin + "/results/validateExport/" + formId;
var downloadUrl = document.location.origin + "/results/export/" + formId;
var fromDate = document.forms["downloadExportResults"]["from_date"];
var toDate = document.forms["downloadExportResults"]["to_date"];
if (!fromDate.value || !toDate.value) {
swal("Error", "Por favor, ingresa los datos de fecha para generar el reporte", "error").then((val) => {
fromDate.focus();
toDate.focus();
});
return false;
} else {
var d1 = Date.parse(fromDate.value);
var d2 = Date.parse(toDate.value);
if (d1 > d2) {
swal("Error", "Por favor, la fecha Desde no debe estar posterior a la fecha Hasta", "error").then((val) => {
fromDate.focus();
});
return false;
}
validateDownloadUrl += "/" + fromDate.value + "/" + toDate.value;
downloadUrl += "/" + fromDate.value + "/" + toDate.value;
}
$("#downloadExportResultsButton").addClass("displayNone");
$("#downloadExportResultsSpinner").removeClass("displayNone");
$.ajax({
type: "GET",
dataType: "json",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content")
},
data: {},
url: validateDownloadUrl,
success: function(response) {
if (response.success) {
window.location.assign(downloadUrl);
let waitTime = 5; // Espera de 5 segundos para volver activar el botón de descarga.
setTimeout(function() {
$("#downloadExportResultsButton").removeClass("displayNone");
$("#downloadExportResultsSpinner").addClass("displayNone");
}, waitTime * 1000);
} else {
swal("Error", response.message, "error");
$("#downloadExportResultsButton").removeClass("displayNone");
$("#downloadExportResultsSpinner").addClass("displayNone");
}
},
error: function(response) {
swal("Error", response.responseJSON.message, "error");
$("#downloadExportResultsButton").removeClass("displayNone");
$("#downloadExportResultsSpinner").addClass("displayNone");
}
});
}
function resetModalExportResults() {
$('#downloadExportResults')[0].reset();
}
</script>