mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
92 lines
4.1 KiB
Twig
92 lines
4.1 KiB
Twig
{# @copyright Copyright (C) 2010-2021 Combodo SARL #}
|
|
{# @license http://opensource.org/licenses/AGPL-3.0 #}
|
|
{% set sListId = oUIBlock.GetId() %}
|
|
{% set sListIDForVarSuffix = ('' ~ sListId)|sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) %}
|
|
{% if oUIBlock.GetOption("iPageSize") is not empty %}
|
|
{% set iPageSize = oUIBlock.GetOption("iPageSize") %}
|
|
{% else %}
|
|
{% set iPageSize = 10 %}
|
|
{% endif %}
|
|
|
|
var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
|
|
language: {
|
|
processing: "{{ 'UI:Datatables:Language:Processing'|dict_s }}",
|
|
search: "{{ 'UI:Datatables:Language:Search'|dict_s }}",
|
|
lengthMenu: "{{ 'UI:Datatables:Language:LengthMenu'|dict_s }}",
|
|
zeroRecords: "{{ 'UI:Datatables:Language:ZeroRecords'|dict_s }}",
|
|
info: "{{ 'UI:Datatables:Language:Info'|dict_s }}",
|
|
infoEmpty: "",
|
|
infoFiltered: "({{ 'UI:Datatables:Language:InfoFiltered'|dict_s }})",
|
|
emptyTable: "{{ 'UI:Datatables:Language:EmptyTable'|dict_s }}",
|
|
paginate: {
|
|
first: "<i class=\"fas fa-angle-double-left\"></i>",
|
|
previous: "<i class=\"fas fa-angle-left\"></i>",
|
|
next: "<i class=\"fas fa-angle-right\"></i>",
|
|
last: "<i class=\"fas fa-angle-double-right\"></i>"
|
|
},
|
|
aria: {
|
|
sortAscending: ": {{ 'UI:Datatables:Language:Sort:Ascending'|dict_s }}",
|
|
sortDescending: ": {{ 'UI:Datatables:Language:Sort:Descending'|dict_s }}"
|
|
}
|
|
},
|
|
scrollX: true,
|
|
{% if oUIBlock.GetOption('sMaxHeight') is not empty %}
|
|
scrollY: "{{ oUIBlock.GetOption('sMaxHeight') }}",
|
|
{% endif %}
|
|
scrollCollapse: true,
|
|
order: [],
|
|
rowId: "id",
|
|
filter: false,
|
|
{% if oUIBlock.GetOption("pageLength") is not empty %}
|
|
pageLength: {{ oUIBlock.GetOption("pageLength") }},
|
|
{% endif %}
|
|
{% if oUIBlock.GetOption("dom") is not empty %}
|
|
dom: "<'ibo-datatable--toolbar'{{ oUIBlock.GetOption("dom") }}>t",
|
|
{% else %}
|
|
dom: "<'ibo-datatable--toolbar'<'ibo-datatable--toolbar-left' pl><'ibo-datatable--toolbar-right' i>>t<'ibo-datatable--toolbar'<'ibo-datatable--toolbar-left' pl><'ibo-datatable--toolbar-right' i>>",
|
|
{% endif %}
|
|
lengthMenu: [[ {{ iPageSize }}, {{ iPageSize*2 }}, {{ iPageSize*3 }}, {{ iPageSize*4 }}, -1], [ {{ iPageSize }}, {{ iPageSize*2 }}, {{ iPageSize*3 }}, {{ iPageSize*4 }}, "{{ 'UI:Datatables:Language:DisplayLength:All'|dict_s }}"]],
|
|
columns: [
|
|
{% for key, column in oUIBlock.GetColumns() %}
|
|
{
|
|
data: "{{ key }}",
|
|
width: "auto",
|
|
sortable: true
|
|
},
|
|
{% endfor %}
|
|
],
|
|
drawCallback: function (settings) {
|
|
$(this).closest('.ibo-panel').find('.ibo-datatable--result-count').html(settings.json.recordsTotal);
|
|
// Hiding pagination if only one page
|
|
if ($(this).closest('.dataTables_wrapper').find('.dataTables_paginate:last .paginate_button:not(.previous):not(.next)').length < 2)
|
|
{
|
|
$(this).closest('.dataTables_wrapper').find('.dataTables_paginate, .dataTables_info').hide();
|
|
}
|
|
else
|
|
{
|
|
$(this).closest('.dataTables_wrapper').find('.dataTables_paginate, .dataTables_info').show();
|
|
}
|
|
if ($(this).closest('.ibo-panel--body').find('[name=selectionMode]').val() === "negative")
|
|
{
|
|
$(this).closest('.dataTables_wrapper').find('.checkAll')[0].checked = true;
|
|
}
|
|
},
|
|
initComplete: function () {
|
|
if (this.api().page.info().pages < 2)
|
|
{
|
|
this.closest('.dataTables_wrapper').find('.dataTables_length').hide();
|
|
}
|
|
}
|
|
});
|
|
|
|
if (window.ResizeObserver)
|
|
{
|
|
let oStaticTable{{ sListIDForVarSuffix }}ResizeTimeout = null;
|
|
const oStaticTable{{ sListIDForVarSuffix }}Resize = new ResizeObserver(function(){
|
|
clearTimeout(oStaticTable{{ sListIDForVarSuffix }}ResizeTimeout);
|
|
oStaticTable{{ sListIDForVarSuffix }}ResizeTimeout = setTimeout(function(){
|
|
$('#{{ oUIBlock.GetId() }}').DataTable().columns.adjust();
|
|
}, 120);
|
|
});
|
|
oStaticTable{{ sListIDForVarSuffix }}Resize.observe($('#{{ oUIBlock.GetId() }}')[0]);
|
|
} |