N°4347 - Fix JS errors in custom dashboards for list dahslets

This commit is contained in:
acognet
2021-10-04 15:56:21 +02:00
parent e38ca54691
commit eb239843aa
3 changed files with 66 additions and 58 deletions

View File

@@ -1,9 +1,9 @@
{% if oUIBlock.GetOption("select_mode") is not empty %}
var oSelectedItems{{ oUIBlock.GetOption('sListId') }} = [];
{% if oUIBlock.GetOption("sSelectedRows") is not empty %}
oSelectedItems{{ oUIBlock.GetOption('sListId') }} = {{ oUIBlock.GetOption('sSelectedRows')|raw }};
{% endif %}
var oSelectedItems{{ oUIBlock.GetOption('sListId') |sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) }} = [];
{% if oUIBlock.GetOption("sSelectedRows") is not empty %}
oSelectedItems{{ oUIBlock.GetOption('sListId') |sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) }} = {{ oUIBlock.GetOption('sSelectedRows')|raw }};
{% endif %}
{% endif %}
var bSelectAllowed{{ oUIBlock.GetId() }} = false;
var bSelectAllowed{{ oUIBlock.GetId()|sanitize(constant('utils::ENUM_SANITIZATION_FILTER_VARIABLE_NAME')) }} = false;

View File

@@ -66,7 +66,7 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
rowCallback: function (oRow, oData) {
if ($(this).closest('.ibo-panel--body').find('[name=selectionMode]').val() === "negative")
{
if (oSelectedItems{{ sListId }}.indexOf(oData.id) === -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(oData.id) === -1)
{
this.api().row($(oRow)).select();
// $(oRow).addClass('selected');
@@ -75,42 +75,50 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
}
else
{
if (oSelectedItems{{ sListId }}.indexOf(oData.id) > -1) {
this.api().row($(oRow)).select();
$(oRow).find('td:first-child input').prop('checked', true);
}
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(oData.id) > -1)
{
this.api().row($(oRow)).select();
$(oRow).find('td:first-child input').prop('checked', true);
}
},
drawCallback: function () {
if ($(this).closest('.ibo-panel--body').find('[name=selectionMode]').val() === "negative") {
$(this).closest('.dataTables_wrapper').find('.checkAll')[0].checked = true;
}
bSelectAllowed{{ oUIBlock.GetId() }} = true;
}
},
drawCallback: function () {
if ($(this).closest('.ibo-panel--body').find('[name=selectionMode]').val() === "negative")
{
$(this).closest('.dataTables_wrapper').find('.checkAll')[0].checked = true;
}
bSelectAllowed{{ sListIDForVarSuffix }} = true;
// 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();
}
// 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();
}
$(this).closest('.dataTables_wrapper').unblock();
$("#{{ oUIBlock.GetId() }} a").on('click', function (e) {
//disable select action when there is a link
e.stopPropagation();
});
},
$(this).closest('.dataTables_wrapper').unblock();
$("#{{ oUIBlock.GetId() }} a").on('click', function (e) {
//disable select action when there is a link
e.stopPropagation();
});
},
{% else %}
drawCallback: function () {
$(this).closest('.dataTables_wrapper').unblock();
// 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();
}
},
{% endif %}
drawCallback: function () {
$(this).closest('.dataTables_wrapper').unblock();
// 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();
}
},
{% endif %}
rowId: "id",
filter: false,
retrieve: true,
@@ -196,8 +204,8 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
{% if oUIBlock.GetOption("select_mode") is not empty %}
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
{% if oUIBlock.GetOption("select_mode") != "single" %}
this.api().on('select', function (oEvent, dt, type, indexes) {
if (bSelectAllowed{{ oUIBlock.GetId() }})
this.api().on('select', function (oEvent, dt, type, indexes) {
if (bSelectAllowed{{ sListIDForVarSuffix }})
{
let aData = oTable{{ sListIDForVarSuffix }}.rows(indexes).data().toArray();
if ($(this).closest('.ibo-panel--body').find('[name=selectionMode]').val() === "negative")
@@ -208,9 +216,9 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
for (let i in aData)
{
let iItemId = aData[i].id;
if (oSelectedItems{{ sListId }}.indexOf(iItemId) > -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId) > -1)
{
oSelectedItems{{ sListId }}.splice(oSelectedItems{{ sListId }}.indexOf(iItemId), 1);
oSelectedItems{{ sListIDForVarSuffix }}.splice(oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId), 1);
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
}
}
@@ -223,9 +231,9 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
for (let i in aData)
{
let iItemId = aData[i].id;
if (oSelectedItems{{ sListId }}.indexOf(iItemId) === -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId) === -1)
{
oSelectedItems{{ sListId }}.push(iItemId);
oSelectedItems{{ sListIDForVarSuffix }}.push(iItemId);
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
}
}
@@ -234,7 +242,7 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
});
this.api().off('deselect').on('deselect', function (oEvent, dt, type, indexes) {
if (bSelectAllowed{{ oUIBlock.GetId() }} )
if (bSelectAllowed{{ sListIDForVarSuffix }} )
{
let aData = oTable{{ sListIDForVarSuffix }}.rows(indexes).data().toArray();
// Checking input
@@ -245,9 +253,9 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
for (let i in aData)
{
let iItemId = aData[i].id;
if (oSelectedItems{{ sListId }}.indexOf(iItemId) === -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId) === -1)
{
oSelectedItems{{ sListId }}.push(iItemId);
oSelectedItems{{ sListIDForVarSuffix }}.push(iItemId);
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
}
}
@@ -257,9 +265,9 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
for (let i in aData)
{
let iItemId = aData[i].id;
if (oSelectedItems{{ sListId }}.indexOf(iItemId) > -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId) > -1)
{
oSelectedItems{{ sListId }}.splice(oSelectedItems{{ sListId }}.indexOf(iItemId), 1);
oSelectedItems{{ sListIDForVarSuffix }}.splice(oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId), 1);
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
}
}
@@ -268,7 +276,7 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
});
{% else %}
this.api().off('select').on('select', function (oEvent, dt, type, indexes) {
if (bSelectAllowed{{ oUIBlock.GetId() }} )
if (bSelectAllowed{{ sListIDForVarSuffix }} )
{
let aData = oTable{{ sListIDForVarSuffix }}.rows(indexes).data().toArray();
// Checking input
@@ -277,9 +285,9 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
for (let i in aData)
{
let iItemId = aData[i].id;
if (oSelectedItems{{ sListId }}.indexOf(iItemId) === -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId) === -1)
{
oSelectedItems{{ sListId }}.push(iItemId);
oSelectedItems{{ sListIDForVarSuffix }}.push(iItemId);
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
}
}
@@ -287,7 +295,7 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
});
this.api().off('deselect').on('deselect', function (oEvent, dt, type, indexes) {
if (bSelectAllowed{{ oUIBlock.GetId() }} )
if (bSelectAllowed{{ sListIDForVarSuffix }} )
{
let aData = oTable{{ sListIDForVarSuffix }}.rows(indexes).data().toArray();
@@ -297,9 +305,9 @@ var oTable{{ sListIDForVarSuffix }} = $('#{{ oUIBlock.GetId() }}').DataTable({
for (let i in aData)
{
let iItemId = aData[i].id;
if (oSelectedItems{{ sListId }}.indexOf(iItemId) > -1)
if (oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId) > -1)
{
oSelectedItems{{ sListId }}.splice(oSelectedItems{{ sListId }}.indexOf(iItemId), 1);
oSelectedItems{{ sListIDForVarSuffix }}.splice(oSelectedItems{{ sListIDForVarSuffix }}.indexOf(iItemId), 1);
updateDataTableSelection('{{ sListId }}', '{{ oUIBlock.GetId() }}');
}
}
@@ -348,7 +356,7 @@ var aOptions{{ sListIDForVarSuffix }} = {
sListId: '{{ oUIBlock.GetId() }}',
oColumns: {{ oUIBlock.GetResultColumnsAsJson()|raw }},
sSelectMode: "{{ oUIBlock.GetOption("select_mode") }}",
sSelectedItemsName: "oSelectedItems{{ sListId }}",
sSelectedItemsName: "oSelectedItems{{ sListIDForVarSuffix }}",
sViewLink: '{{ oUIBlock.GetOption("bViewLink") }}',
iPageSize: ' {{ iPageSize }}',
oClassAliases: JSON.parse('{{ oUIBlock.GetOption("oClassAliases") |raw }}'),