202 lines
6.8 KiB
JavaScript
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();
|
|
}
|