OpenXE/classes/Modules/Report/www/js/report_view.js
2021-05-21 08:49:41 +02:00

128 lines
3.6 KiB
JavaScript

/**
* Input Parameters
*/
var ParameterInput = (function ($) {
'use strict';
var me = {
isInitialized: false,
init: function () {
if (me.isInitialized === true) {
return;
}
if (typeof ReportParameterInputDialog.open !== "function") {
throw 'ReportParameterInputDialog required';
}
var id = $('#tabs-1').data('id');
var onClose = function (data, command) {
var url = 'index.php?module=report&action=view&cmd=view&id=' + id;
if(data !== null) {
var paramString = $.param(data);
url = url + '&' + paramString
}
window.location.href = url;
};
ReportParameterInputDialog.open(id, 'report-view', onClose, 'Parameter', 'WEITER');
me.isInitialized = true;
},
};
return {
init: me.init,
};
})(jQuery);
/**
* Input Parameters
*/
var LiveParameter = (function ($) {
'use strict';
var me = {
isInitialized: false,
selector: {
inputFields: '.report .live-filter-input',
selectFields: '.report .live-filter-select',
dataTable: '#report_table',
},
init: function () {
if (me.isInitialized === true) {
return;
}
me.registerEvents();
me.isInitialized = true;
},
registerEvents: function () {
$(document).on('blur', me.selector.inputFields, function (event) {
console.log('some param changed');
var varname = $(event.currentTarget).attr('name');
var value = $(event.currentTarget).val();
console.log('start filter for ' + varname + '='+ value);
me.setTableFilter(varname, value);
});
$(document).on('xhr.dt', me.selector.dataTable, function (e, settings) {
var api = new $.fn.dataTable.Api(settings);
var $table = $(api.table().node());
console.log('xhr data', api.ajax.params());
console.log(settings );
});
},
setTableFilter: function (varname, value) {
if ($.fn.DataTable.isDataTable(me.selector.dataTable)) {
var $table = $(me.selector.dataTable);
var table = $table.DataTable();
var url = table.ajax.url();
console.log('old url', url);
var urlSplit = url.split('?');
var path = urlSplit[0];
var urlParams = new URLSearchParams(urlSplit[1]);
var postfixB64 = urlParams.get('postfix');
var postfix = atob(postfixB64);
var oPostfix = JSON.parse(postfix);
oPostfix[varname.toLowerCase()] = value;
var nPostfix = JSON.stringify(oPostfix);
var nPostFixB64 = btoa(nPostfix);
urlParams.set('postfix', nPostFixB64);
var nUrl = path + '?'+ urlParams.toString();
console.log('new url ' + nUrl);
table.ajax.url( 'foooooo' ).load();
}
},
refreshTable: function () {
if ($.fn.DataTable.isDataTable(me.selector.dataTable)) {
$(me.selector.dataTable).DataTable().ajax.reload();
}
},
};
return {
init: me.init,
};
})(jQuery);
$(document).ready(function () {
// LiveParameter.init(); //Does not work for some reason
});