2016-03-18 02:44:58 -04:00
|
|
|
var $ = window.$ = require('jquery');
|
|
|
|
var jQuery = window.jQuery = $;
|
|
|
|
|
2016-04-04 19:12:28 -04:00
|
|
|
require('datatables.net-bs');
|
2016-03-18 02:44:58 -04:00
|
|
|
require('./pivot_table.css');
|
|
|
|
require('../node_modules/datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.css');
|
2016-06-22 19:16:27 -04:00
|
|
|
var utils = require('../javascripts/modules/utils');
|
2016-03-18 02:44:58 -04:00
|
|
|
|
|
|
|
module.exports = function (slice) {
|
|
|
|
var container = slice.container;
|
|
|
|
|
|
|
|
function refresh() {
|
|
|
|
$.getJSON(slice.jsonEndpoint(), function (json) {
|
2016-05-10 14:49:32 -04:00
|
|
|
var form_data = json.form_data;
|
2016-03-18 02:44:58 -04:00
|
|
|
container.html(json.data);
|
|
|
|
if (form_data.groupby.length === 1) {
|
2016-06-22 19:16:27 -04:00
|
|
|
var height = container.height();
|
2016-03-18 02:44:58 -04:00
|
|
|
var table = container.find('table').DataTable({
|
|
|
|
paging: false,
|
2016-04-11 15:11:47 -04:00
|
|
|
searching: false,
|
2016-06-22 19:16:27 -04:00
|
|
|
bInfo: false,
|
|
|
|
scrollY: height + "px",
|
|
|
|
scrollCollapse: true,
|
|
|
|
scrollX: true
|
2016-03-18 02:44:58 -04:00
|
|
|
});
|
|
|
|
table.column('-1').order('desc').draw();
|
2016-06-22 19:16:27 -04:00
|
|
|
utils.fixDataTableBodyHeight(
|
|
|
|
container.find('.dataTables_wrapper'), height);
|
2016-03-18 02:44:58 -04:00
|
|
|
}
|
|
|
|
slice.done(json);
|
|
|
|
}).fail(function (xhr) {
|
2016-06-21 12:42:44 -04:00
|
|
|
slice.error(xhr.responseText, xhr);
|
2016-03-18 02:44:58 -04:00
|
|
|
});
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
render: refresh,
|
|
|
|
resize: refresh
|
|
|
|
};
|
|
|
|
};
|