questlab/www/analytics/plugins/ScheduledReports/javascripts/pdf.js

202 lines
6.8 KiB
JavaScript

/*!
* Piwik - Web Analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
var getReportParametersFunctions = Object();
var updateReportParametersFunctions = Object();
var resetReportParametersFunctions = Object();
function formSetEditReport(idReport) {
var report = {
'type': ReportPlugin.defaultReportType,
'format': ReportPlugin.defaultReportFormat,
'description': '',
'period': ReportPlugin.defaultPeriod,
'hour': ReportPlugin.defaultHour,
'reports': []
};
if (idReport > 0) {
report = ReportPlugin.reportList[idReport];
$('#report_submit').val(ReportPlugin.updateReportString);
}
else {
$('#report_submit').val(ReportPlugin.createReportString);
}
toggleReportType(report.type);
$('#report_description').html(report.description);
$('#report_segment').find('option[value=' + report.idsegment + ']').prop('selected', 'selected');
$('#report_type').find('option[value=' + report.type + ']').prop('selected', 'selected');
$('#report_period').find('option[value=' + report.period + ']').prop('selected', 'selected');
$('#report_hour').val(report.hour);
$('[name=report_format].' + report.type + ' option[value=' + report.format + ']').prop('selected', 'selected');
var selectorReportFormat = 'select[name=report_format].' + $('#report_type').val();
$(selectorReportFormat).change( toggleDisplayOptionsByFormat );
// When CSV is selected, hide "Display options"
toggleDisplayOptionsByFormat();
function toggleDisplayOptionsByFormat() {
var format = $(selectorReportFormat).val();
var displayOptionsSelector = $('#row_report_display_options');
if (format == 'csv') {
displayOptionsSelector.hide();
} else {
displayOptionsSelector.show();
}
}
$('[name=reportsList] input').prop('checked', false);
var key;
for (key in report.reports) {
$('.' + report.type + ' [report-unique-id=' + report.reports[key] + ']').prop('checked', 'checked');
}
updateReportParametersFunctions[report.type](report.parameters);
$('#report_idreport').val(idReport);
}
function getReportAjaxRequest(idReport, defaultApiMethod) {
var parameters = {};
piwikHelper.lazyScrollTo(".centerLargeDiv>h2", 400);
parameters.module = 'API';
parameters.method = defaultApiMethod;
if (idReport == 0) {
parameters.method = 'ScheduledReports.addReport';
}
parameters.format = 'json';
return parameters;
}
function toggleReportType(reportType) {
resetReportParametersFunctions[reportType]();
$('#report_type').find('option').each(function (index, type) {
$('.' + $(type).val()).hide();
});
$('.' + reportType).show();
}
function fadeInOutSuccessMessage(selector, message) {
var UI = require('piwik/UI');
var notification = new UI.Notification();
notification.show(message, {
placeat: selector,
context: 'success',
noclear: true,
type: 'toast',
style: {display: 'inline-block', marginTop: '10px'},
id: 'usersManagerAccessUpdated'
});
piwikHelper.refreshAfter(2);
}
function initManagePdf() {
// Click Add/Update Submit
$('#addEditReport').submit(function () {
var idReport = $('#report_idreport').val();
var apiParameters = getReportAjaxRequest(idReport, 'ScheduledReports.updateReport');
apiParameters.idReport = idReport;
apiParameters.description = $('#report_description').val();
apiParameters.idSegment = $('#report_segment').find('option:selected').val();
apiParameters.reportType = $('#report_type').find('option:selected').val();
apiParameters.reportFormat = $('[name=report_format].' + apiParameters.reportType + ' option:selected').val();
var reports = [];
$('[name=reportsList].' + apiParameters.reportType + ' input:checked').each(function () {
reports.push($(this).attr('report-unique-id'));
});
if (reports.length > 0) {
apiParameters.reports = reports;
}
apiParameters.parameters = getReportParametersFunctions[apiParameters.reportType]();
var ajaxHandler = new ajaxHelper();
ajaxHandler.addParams(apiParameters, 'POST');
ajaxHandler.addParams({period: $('#report_period').find('option:selected').val()}, 'GET');
ajaxHandler.addParams({hour: $('#report_hour').val()}, 'GET');
ajaxHandler.redirectOnSuccess();
ajaxHandler.setLoadingElement();
if (idReport) {
ajaxHandler.setCallback(function (response) {
fadeInOutSuccessMessage('#reportUpdatedSuccess', _pk_translate('ScheduledReports_ReportUpdated'));
});
}
ajaxHandler.send(true);
return false;
});
// Email now
$('a[name=linkSendNow]').click(function () {
var idReport = $(this).attr('idreport');
var parameters = getReportAjaxRequest(idReport, 'ScheduledReports.sendReport');
parameters.idReport = idReport;
var ajaxHandler = new ajaxHelper();
ajaxHandler.addParams(parameters, 'POST');
ajaxHandler.setLoadingElement();
ajaxHandler.setCallback(function (response) {
fadeInOutSuccessMessage('#reportSentSuccess', _pk_translate('ScheduledReports_ReportSent'));
});
ajaxHandler.send(true);
});
// Delete Report
$('a[name=linkDeleteReport]').click(function () {
var idReport = $(this).attr('id');
function onDelete() {
var parameters = getReportAjaxRequest(idReport, 'ScheduledReports.deleteReport');
parameters.idReport = idReport;
var ajaxHandler = new ajaxHelper();
ajaxHandler.addParams(parameters, 'POST');
ajaxHandler.redirectOnSuccess();
ajaxHandler.setLoadingElement();
ajaxHandler.send(true);
}
piwikHelper.modalConfirm('#confirm', {yes: onDelete});
});
// Edit Report click
$('a[name=linkEditReport]').click(function () {
var idReport = $(this).attr('id');
formSetEditReport(idReport);
$('.entityAddContainer').show();
$('#entityEditContainer').hide();
$(document).trigger('ScheduledReport.edit', {});
});
// Switch Report Type
$('#report_type').change(function () {
var reportType = $(this).val();
toggleReportType(reportType);
});
// Add a Report click
$('#linkAddReport').click(function () {
$('.entityAddContainer').show();
$('#entityEditContainer').hide();
formSetEditReport(/*idReport = */0);
});
// Cancel click
$('.entityCancelLink').click(function () {
$('.entityAddContainer').hide();
$('#entityEditContainer').show();
piwikHelper.hideAjaxError();
}).click();
}