PDF export works
This commit is contained in:
parent
dc7faf5e82
commit
fb683874a7
4 changed files with 83 additions and 8 deletions
|
@ -52,6 +52,8 @@ class PlayouthistoryController extends Zend_Controller_Action
|
||||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'js/airtime/buttons/buttons.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/utilities/utilities.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'js/airtime/utilities/utilities.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$this->view->headScript()->appendFile($baseUrl.'js/libs/CSVexport.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'js/libs/CSVexport.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
|
$this->view->headScript()->appendFile($baseUrl.'js/libs/pdfmake.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
|
$this->view->headScript()->appendFile($baseUrl.'js/libs/vfs_fonts.min.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
$this->view->headScript()->appendFile($baseUrl.'js/airtime/playouthistory/historytable.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
$this->view->headScript()->appendFile($baseUrl.'js/airtime/playouthistory/historytable.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
|
||||||
|
|
||||||
$this->view->headLink()->appendStylesheet($baseUrl.'css/bootstrap-datetimepicker.min.css?'.$CC_CONFIG['airtime_version']);
|
$this->view->headLink()->appendStylesheet($baseUrl.'css/bootstrap-datetimepicker.min.css?'.$CC_CONFIG['airtime_version']);
|
||||||
|
|
|
@ -253,19 +253,22 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
"<li class='his-dselect-all'><a href='#'>"+$.i18n._("Deselect all")+"</a></li>" +
|
"<li class='his-dselect-all'><a href='#'>"+$.i18n._("Deselect all")+"</a></li>" +
|
||||||
"</ul>" +
|
"</ul>" +
|
||||||
"</div>");
|
"</div>");
|
||||||
|
|
||||||
|
$menu.append("<div class='btn-group'>" +
|
||||||
|
"<button class='btn btn-small dropdown-toggle' data-toggle='dropdown'>" +
|
||||||
|
$.i18n._("Export")+" <span class='caret'></span>" +
|
||||||
|
"</button>" +
|
||||||
|
"<ul class='dropdown-menu'>" +
|
||||||
|
"<li id='csv_export'><a href='#'>"+$.i18n._("Export as CSV")+"</a></li>" +
|
||||||
|
"<li id='pdf_export'><a href='#'>"+$.i18n._("Export as PDF")+"</a></li>" +
|
||||||
|
"</ul>" +
|
||||||
|
"</div>");
|
||||||
|
|
||||||
$menu.append("<div class='btn-group'>" +
|
$menu.append("<div class='btn-group'>" +
|
||||||
"<button class='btn btn-small' id='his_trash'>" +
|
"<button class='btn btn-small' id='his_trash'>" +
|
||||||
"<i class='icon-white icon-trash'></i>" +
|
"<i class='icon-white icon-trash'></i>" +
|
||||||
"</button>" +
|
"</button>" +
|
||||||
"</div>");
|
"</div>");
|
||||||
|
|
||||||
$menu.append("<div class='btn-group'>" +
|
|
||||||
"<button class='btn btn-small btn-new' id='csv_export'>" +
|
|
||||||
// "<i class='icon-white icon-plus'></i>" +
|
|
||||||
$.i18n._("Export as CSV") +
|
|
||||||
"</button>" +
|
|
||||||
"</div>");
|
|
||||||
|
|
||||||
$el.append($menu);
|
$el.append($menu);
|
||||||
}
|
}
|
||||||
|
@ -575,6 +578,72 @@ var AIRTIME = (function(AIRTIME) {
|
||||||
|
|
||||||
}, "json");
|
}, "json");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$historyContentDiv.on("click", "#pdf_export", async function(){
|
||||||
|
// Get date/time from pickers
|
||||||
|
var startDay = document.querySelector('#his_date_start').value;
|
||||||
|
var startTime = document.querySelector('#his_time_start').value;
|
||||||
|
var endDay = document.querySelector('#his_date_end').value;
|
||||||
|
var endTime = document.querySelector('#his_time_end').value;
|
||||||
|
|
||||||
|
var url = baseUrl + "api/item-history-feed?start=" + startDay + " " + startTime + "&end=" + endDay + " " + endTime;
|
||||||
|
var requestData = await fetch(url);
|
||||||
|
var hisData = await requestData.json();
|
||||||
|
|
||||||
|
if (!hisData.length) {
|
||||||
|
alert("The date range selected doesn't have any items to export.");
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
// Generate PDF template
|
||||||
|
var dd = {
|
||||||
|
content: [
|
||||||
|
{text: 'Libretime', style: 'subheader'},
|
||||||
|
{text: 'Playout History from ' + startDay + ' ' + startTime + ' to ' + endDay + ' ' + endTime, style: 'header'},
|
||||||
|
{
|
||||||
|
style: 'mainTable',
|
||||||
|
table: {
|
||||||
|
headerRows: 1,
|
||||||
|
body: [
|
||||||
|
[{text: 'Start Time', style: 'tableHeader'}, {text: 'End Time', style: 'tableHeader'}, {text: 'Song', style: 'tableHeader'}, {text: 'Artist', style: 'tableHeader'}],
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
styles: {
|
||||||
|
header: {
|
||||||
|
fontSize: 18,
|
||||||
|
bold: true,
|
||||||
|
margin: [0, 0, 0, 10]
|
||||||
|
},
|
||||||
|
subheader: {
|
||||||
|
fontSize: 14,
|
||||||
|
bold: true,
|
||||||
|
margin: [0, 10, 0, 5]
|
||||||
|
},
|
||||||
|
mainTable: {
|
||||||
|
margin: [0, 5, 0, 15]
|
||||||
|
},
|
||||||
|
tableHeader: {
|
||||||
|
bold: true,
|
||||||
|
fontSize: 13,
|
||||||
|
color: 'black'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
defaultStyle: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
hisData.forEach(element => {
|
||||||
|
// Removing extra fields
|
||||||
|
delete element.checkbox;
|
||||||
|
delete element.history_id;
|
||||||
|
delete element.instance_id;
|
||||||
|
dd.content[2].table.body.push(Object.values(element));
|
||||||
|
});
|
||||||
|
// Make PDF and start download
|
||||||
|
pdfMake.createPdf(dd).download();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
$historyContentDiv.on("click", "#csv_export", async function(){
|
$historyContentDiv.on("click", "#csv_export", async function(){
|
||||||
// Get date/time from pickers
|
// Get date/time from pickers
|
||||||
|
|
3
airtime_mvc/public/js/libs/pdfmake.min.js
vendored
Normal file
3
airtime_mvc/public/js/libs/pdfmake.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
airtime_mvc/public/js/libs/vfs_fonts.min.js
vendored
Normal file
1
airtime_mvc/public/js/libs/vfs_fonts.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue