Bug 37395: Fix columns visibility on Vue tables
On bug 33066 we reworked a lot of datatables.js to make the JS function
reusable from the Vue component (and especially the KohaTable
component). I guess the regression comes from this change, but I am
surprised that we didn't catch it when testing.
The was a mistake for _dt_visibility, we didn't pass the node. Actually
we cannot pass it as we do not have it yet.
This "node" variable is only used when bKohaColumnsUseNames is passed
(ie. we do not rely on the order of the columns but we need to rely on
their data-colname attributes).
There is then a limitation here: we cannot use bKohaColumnsUseNames from
Vue, but we do not yet.
An ideal fix would be too big for now, especially for an hypothetic use
case.
Test plan:
Confirm that the "Columns" button are now back for the tables of the Vue
apps (ERM, Preservation) and that the settings are taken into account
(hide by default, etc.)
Signed-off-by: Olivier V <olivier.vezina@inLibro.com>
Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 1a8542f05d)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
589cc320fa
commit
106e88f281
|
|
@ -774,16 +774,24 @@ function _dt_buttons(params){
|
|||
return buttons;
|
||||
}
|
||||
|
||||
function _dt_visibility(node, table_settings, settings){
|
||||
function _dt_visibility(table_settings, settings, node){
|
||||
var counter = 0;
|
||||
let hidden_ids = [];
|
||||
let included_ids = [];
|
||||
if ( table_settings ) {
|
||||
var columns_settings = table_settings['columns'];
|
||||
$(columns_settings).each( function() {
|
||||
let selector = '#' + node.attr('id');
|
||||
var named_id = $( 'thead th[data-colname="' + this.columnname + '"]', selector ).index( selector + ' th' );
|
||||
var used_id = settings.bKohaColumnsUseNames ? named_id : counter;
|
||||
let used_id = counter;
|
||||
if ( settings.bKohaColumnsUseNames ) {
|
||||
if (!node){
|
||||
console.err("settings.bKohaColumnsUseNames is set but node not passed");
|
||||
return;
|
||||
}
|
||||
let selector = '#' + node.attr('id');
|
||||
var named_id = $( 'thead th[data-colname="' + this.columnname + '"]', selector ).index( selector + ' th' );
|
||||
used_id = named_id;
|
||||
}
|
||||
|
||||
if ( used_id == -1 ) return;
|
||||
|
||||
if ( this['is_hidden'] == "1" ) {
|
||||
|
|
@ -969,7 +977,7 @@ function _dt_add_delay(table_dt, table_node, delay_ms) {
|
|||
}
|
||||
|
||||
let hidden_ids, included_ids;
|
||||
[hidden_ids, included_ids] = _dt_visibility(this, table_settings, settings)
|
||||
[hidden_ids, included_ids] = _dt_visibility(table_settings, settings, this)
|
||||
|
||||
settings["buttons"] = _dt_buttons({included_ids, settings, table_settings});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue