You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

197 lines
7.6 KiB

var recherches_tab_is_active = false;
/* GET OLD WIDTH tab data */
var old_el_width = $('#tab-data').width();
var statExport = (function ($, window, jQuery) {
return {
"set_vars": function (options) {
$.extend(_vars_, options || {});
},
"get_vars" : function(){
return _vars_;
},
"setExportWidth": function(reset){
$('#tab-data').attr(
'style',(reset == 1)?old_el_width:'width:900px'
);
},
/**
* Export statistics as PDF
* Initial testing
*/
export_to_pdf: function() {
// insert breaks before exporting
$('.br').removeClass('hidden');
var cur_date_range = $("#ga_date_range").val();
$('.cur_date_range').html('Date: '+ cur_date_range);
cur_date_range = cur_date_range.replace('-', 'au');
/* SET FIXED ELEMENT WIDTH FOR EXPORT TEMPORARILY TO AVOID OVERLAPPING*/
statExport.setExportWidth(0);
/*Delay the preparation of the export so that it can catch the fixed set width*/
setTimeout(function(){
// show third tab to include the pie graph in the
var element = statExport.cloneElement('#tab-data');
statExport.general(element);
// Données statistiques - 2019_03_01 04_08_16 (Du 30_01_2019 au 28_02_2019)
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
var cur_date = `${yyyy}_${mm}_${dd}`;
var opt = {
margin: [.5,.5,.5,-1.7],
filename: `Données statistiques - ${cur_date} (Du ${cur_date_range}).pdf`,
// pagebreak: { before: '.br_before', after: '.br_after'},
pagebreak: { before: '.br_before', after: '.br_after'},
image: { type: 'jpeg', quality: 1, },
html2canvas: {dpi: 90, letterRendering: false, width: 1180, removeContainer: false, scale: 1, y:0},
jsPDF: { unit: 'in', format: 'A4', orientation: 'portrait'}
};
try {
html2pdf()
.from(element.get(0))
.set(opt)
.toPdf()
.get('pdf')
.then(function (pdf) {
statExport.addHeaderAndFooter(pdf);
})
.save();
}catch(e){
console.log(e);
}
if (!recherches_tab_is_active) {
$('#recherches-tab').removeClass('active');
}
// $('.page-loader').remove();
app.rmbtn_loader('#export_dashboard_to_pdf');
// remove breaks before exporting
$('.br').addClass('hidden');
}, 500);
/* RESET ELEMENT WIDTH (delay so that export pdf width the fixed width will work properly)*/
setTimeout(function(){
statExport.setExportWidth(1);
app.remove_loader();
}, 500);
},
/**
* Adjust content before printing
*
*/
general : function(el) {
// $('<br/> <br/> <br/>').insertBefore(el.find('.margin-topp'));
// el.find('.page2').css('margin-bottom', "253px");
// el.find('.page3').css('margin-bottom', "-413px");
// el.find('.page4').css('margin-bottom', "-159px"); //neg pababa,
// el.find('.page5').css('margin-bottom', "40px");
//
// el.find('.abonnes-page6').css('margin-bottom', "-571px");
// el.find('.abonnes-page7').css('margin-bottom', "-317px");
// el.find('.recherches-page8').css('margin-bottom', "-64px");
},
/**
* Clone element before changing it
* Can add page breaks to any element
*/
cloneElement : function(el){
var originalContent = $(el);
var newContent = originalContent.clone();
newContent.find('.tab-pane:not(#glossary-tab)').show();
var originalCanvas = originalContent.find('canvas');
try {
if(originalCanvas.length > 0) {
var cloneCanvas = newContent.find("canvas");
var style = 'width:100%;height:100%';
$.each(originalCanvas, function(index, value) {
var originalContext = originalCanvas[index].getContext("2d");
var canvas = originalContext.canvas;
$(cloneCanvas[index]).replaceWith('<img src="'+(canvas.toDataURL('image/png'))+'" style="'+style+'" />');
});
}
} catch(e){
console.log(e);
}
/* RESET TO ORIGINAL WIDTH*/
// $(el).width(old_el_width+'px');
return newContent;
},
/**
* Add Header on the first page and Footer to every canvas
* Mimic the header
*/
addHeaderAndFooter : function(pdf) {
var totalPages = pdf.internal.getNumberOfPages();
var header = $("#ga_date_range").val();
var page_title = "Général";
for (page = 1; page <= totalPages; page++) {
pdf.setPage(page);
// switch (page) {
// case 1:
// pdf.fromHTML(
// `<h3 class="no_margin" style="margin:none!important; color: #153853 !important;">
// Statistiques - ${ page_title } <br />
// <small>Date: ${ header } </small>
// </h3>`, 12, 2);
// break;
// case 2:
// case 3:
// case 4:
// case 5:
// case 6:
// page_title = "Général";
// case 2:
// page_title = "Abonnés"
// break;
// default:
//
// }
// if(i >= 6 && i <=7 ) page_title = "Abonnés";
// else if (i > 7 ) page_title="Recherches"
// console.log(pdf.internal.pageSize.getWidth(), pdf.internal.pageSize.getHeight());
pdf.setFontSize(10);
pdf.setTextColor(150);
pdf.text(7.1, 11.4, 'Page '+page+' of '+totalPages);
}
},
};//end of return
// Pass in jQuery.
})(jQuery, this);
$(document).ready(function() {
$('a#export_dashboard_to_pdf').on('click', function(event) {
$('.loader-container').prepend(app.get_loader2('Exporting...'));
if ($('#recherches-tab').hasClass('active')) {
recherches_tab_is_active = true;
}
if (!recherches_tab_is_active) {
$('#recherches-tab').addClass('active');
}
// $('#page-wrapper').append(app.get_loader());
app.btn_loader('#export_dashboard_to_pdf');
setTimeout(statExport.export_to_pdf, 1000);
return false;
});
});