Rev 16891 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?php$routeOverview = $this->url('discovery-contacts/progress-by-day');$routeDownload = $this->url('discovery-contacts/progress-by-day/download');$this->headLink()->appendStylesheet($this->basePath('assets/vendors/nprogress/nprogress.css'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/nprogress/nprogress.js'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/jsrender/jsrender.js'));$this->headLink()->appendStylesheet($this->basePath('assets/vendors/daterangepicker/daterangepicker.css'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/moment/moment.min.js'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/daterangepicker/daterangepicker.js'));$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net/jquery.dataTables.js'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.js'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/chart.js/chart.js'));$this->inlineScript()->appendFile($this->basePath('assets/vendors/chartjs-plugin-datalabels/chartjs-plugin-datalabels.js'));/*$this->headStyle()->captureStart();echo <<<CSS#tableUsers {display: flex;flex-flow: column;width: 100%;}#tableUsers thead {flex: 0 0 auto;}#tableUsers tbody {flex: 1 1 auto;display: block;overflow-y: auto;overflow-x: hidden;}#tableUsers tr {width: 100%;display: table;table-layout: fixed;}CSS;$this->headStyle()->captureEnd();*/$this->inlineScript()->captureStart();echo <<<JSjQuery( document ).ready(function( $ ) {var startDate = moment().format('YYYY-MM-DD');var endDate = moment().format('YYYY-MM-DD');var ctxchartProgressByDay = document.getElementById("chartProgressByDay").getContext("2d");var chartProgressByDay = new Chart(ctxchartProgressByDay, {type: 'line',data: {labels: [],datasets: [{label : 'LABEL_PROGRESS_BY_DAY',backgroundColor: '#E69090',borderColor: '#E69090',borderWidth: 1,fill: false,data : []},]},options: {tooltips: {mode: 'index',intersect: false},scales: {yAxes: [{ticks: {beginAtZero:true}}]}}});$.fn.reload = function() {NProgress.start();$.ajax({'dataType' : 'json','accept' : 'application/json','method' : 'get','url' : '$routeOverview','data' : {'startDate' : startDate,'endDate' : endDate},}).done(function(response) {if(response['success']) {chartProgressByDay.data.labels = response.data.graph.labels;chartProgressByDay.data.datasets[0].data = response.data.graph.values;chartProgressByDay.update()$('#tableUsers').html($('#tableTemplate').render(response.data.table));}else{$.fn.showError(response);}}).fail(function( jqXHR, textStatus, errorThrown) {$.fn.showError(textStatus);}).always(function() {NProgress.done();});return false;}$('#filterdate').daterangepicker({maxDate: new Date(),ranges: {'LABEL_DATE_RANGE_TODAY': [moment(), moment()],'LABEL_DATE_RANGE_YESTERDAY': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],'LABEL_DATE_RANGE_LAST_7_DAYS': [moment().subtract(6, 'days'), moment()],'LABEL_DATE_RANGE_LAST_30_DAYS': [moment().subtract(29, 'days'), moment()],'LABEL_DATE_RANGE_THIS_MONTH': [moment().startOf('month'), moment().endOf('month')],'LABEL_DATE_RANGE_LAST_MONTH': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]},locale: {format: 'DD/MM/YYYY',applyLabel: 'LABEL_ACCEPT',cancelLabel: 'LABEL_CANCEL',customRangeLabel: 'LABEL_DATE_RANGE_CUSTOM',daysOfWeek: ['LABEL_SUNDAY_TWO_CHARACTER_CALENDAR','LABEL_MONDAY_TWO_CHARACTER_CALENDAR','LABEL_TUESDAY_TWO_CHARACTER_CALENDAR','LABEL_WEDNESDAY_TWO_CHARACTER_CALENDAR','LABEL_THURSDAY_TWO_CHARACTER_CALENDAR','LABEL_FRIDAY_TWO_CHARACTER_CALENDAR','LABEL_SATURDAY_TWO_CHARACTER_CALENDAR'],monthNames: ['LABEL_MONTH_JANUARY','LABEL_MONTH_FEBRUARY','LABEL_MONTH_MARCH','LABEL_MONTH_APRIL','LABEL_MONTH_MAY','LABEL_MONTH_JUNE','LABEL_MONTH_JULY','LABEL_MONTH_AUGUST','LABEL_MONTH_SEPTEMBER','LABEL_MONTH_OCTOBER','LABEL_MONTH_NOVEMBER','LABEL_MONTH_DECEMBER',],}});$('#filterdate').on('apply.daterangepicker', function(ev, picker) {startDate = picker.startDate.format('YYYY-MM-DD');endDate =picker.endDate.format('YYYY-MM-DD');$.fn.reload();});$('button.btn-download').click(function(e) {e.preventDefault();NProgress.start();$.ajax({'dataType' : 'json','method' : 'get','url' : '$routeDownload','data' : {'startDate' : startDate,'endDate' : endDate},}).done(function(response) {if(response['success']) {var anchor = window.document.createElement("a");anchor.href = 'data:application/octet-stream;charset=utf-8;base64,' + response['data']['content'] ;anchor.download = response['data']['basename'];document.body.appendChild(anchor);anchor.click(); // IE: "Access is denied"; see: https://connect.microsoft.com/IE/feedback/details/797361/ie-10-treats-blob-url-as-cross-origin-and-denies-accessdocument.body.removeChild(anchor);} else {$.fn.showError(response['data']);}}).fail(function( jqXHR, textStatus, errorThrown) {showError(textStatus);}).always(function() {NProgress.done();});});$.fn.reload();});JS;$this->inlineScript()->captureEnd();?><div class="container"><div class="card"><div class="card-header"><h6 class="card-title">LABEL_DAILY_PROGRESS_CHART</h6></div><div class="card-body"><div class="row"><div class="col-12 mt-3"><label>LABEL_DATE_RANGE</label><div class="input-group mb-3"><span class="input-group-text" id="basic-addon1"><i class="far fa-calendar"></i></span><input type="text" class="form-control" name="filterdate" id="filterdate"></div></div></div><div class="row"><div class="col-12 mt-3 chart"><canvas id="chartProgressByDay" style="min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;"></canvas></div></div><div class="row"><div class="col-12 mt-3" id="row-table"><div style="height: 300px;overflow: scroll;"><table id="tableUsers" style="width: 100%" class="table table-bordered"></table></div></div></div></div><div class="card-footer text-right"><button class="btn btn-primary btn-download">LABEL_DOWNLOAD</button></div></div></div><script id="tableTemplate" type="text/x-jsrender"><thead><tr><th>LABEL_FIRST_NAME</th><th>LABEL_LAST_NAME</th><th>LABEL_EMAIL</th>{{for labels}}<th>{{:date}}</th>{{/for}}</tr></thead><tbody>{{for users}}<tr><td>{{:first_name}}</td><td>{{:last_name}}</td><td>{{:email}}</td>{{for values}}<td class="text-right">{{:value}}</td>{{/for}}</tr>{{/for}}</tbody></script>