[% USE ColumnsSettings %]
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/buttons.dataTables.min.css" />
-<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/dataTables.buttons.min.js"></script>
-<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/buttons.colVis.min.js"></script>
-
-<script type="text/javascript">
-function KohaTable(selector, dt_parameters, columns_settings) {
- var id = 0;
+<script>
+function KohaTable(id_selector, dt_parameters, columns_settings, add_filters) {
+ var counter = 0;
var hidden_ids = [];
var included_ids = [];
+ var selector = '#' + id_selector;
+
$(columns_settings).each( function() {
var named_id = $( 'thead th[data-colname="' + this.columnname + '"]', selector ).index( 'th' );
- var used_id = dt_parameters.bKohaColumnsUseNames ? named_id : id;
+ var used_id = dt_parameters.bKohaColumnsUseNames ? named_id : counter;
if ( used_id == -1 ) return;
if ( this['is_hidden'] == "1" ) {
if ( this['cannot_be_toggled'] == "0" ) {
included_ids.push( used_id );
}
- id++;
+ counter++;
});
+
+ var exportColumns = ":visible";
+ if( dt_parameters.hasOwnProperty("exportColumns") ){
+ // A custom buttons configuration has been passed from the page
+ exportColumns = dt_parameters["exportColumns"];
+ }
+
+ var export_buttons = [
+ {
+ extend: 'excelHtml5',
+ text: _("Excel"),
+ exportOptions: {
+ columns: exportColumns
+ },
+ },
+ {
+ extend: 'csvHtml5',
+ text: _("CSV"),
+ exportOptions: {
+ columns: exportColumns
+ },
+ },
+ {
+ extend: 'copyHtml5',
+ text: _("Copy"),
+ exportOptions: {
+ columns: exportColumns
+ },
+ },
+ {
+ extend: 'print',
+ text: _("Print"),
+ exportOptions: {
+ columns: exportColumns
+ },
+ }
+ ];
+
dt_parameters[ "buttons" ] = [
{
extend: 'colvis',
+ fade: 100,
columns: included_ids,
- text: _("Column visibility"),
+ className: "columns_controls",
+ titleAttr: _("Columns settings"),
+ text: '<i class="fa fa-lg fa-gear"></i>',
+ exportOptions: {
+ columns: exportColumns
+ },
+ },
+ {
+ extend: 'collection',
+ fade: 100,
+ className: "export_controls",
+ titleAttr: _("Export or print"),
+ text: '<i class="fa fa-lg fa-download"></i>',
+ buttons: export_buttons
}
+
];
- var table = $(selector).dataTable($.extend(true, {}, dataTablesDefaults, dt_parameters));
+
+ var table = $(selector);
+ if ( add_filters ) {
+ // Duplicate the table header row for columnFilter
+ thead_row = table.find('thead tr');
+ clone = thead_row.clone().addClass('filters_row');
+ clone.find("th.NoSort").html('');
+ thead_row.before(clone);
+ }
+
+ table.dataTable($.extend(true, {}, dataTablesDefaults, dt_parameters));
$(hidden_ids).each(function(index, value) {
table.fnSetColumnVis( value, false );
});
+ if ( add_filters ) {
+ // show a link to activate filtering
+ link = $('<a>')
+ .attr('href', '#')
+ .attr('id', id_selector + '_activate_filters');
+ $("." + id_selector + "_table_controls").prepend(link);
+ deactivate_filters(id_selector);
+ }
+
+ $(".columns_controls,.export_controls").tooltip();
+
return table;
}