HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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">&times;</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">&times;</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>