diff --git a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js index f71916747c..eea14770f2 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js @@ -36,36 +36,29 @@ function LoadIssuesTable() { $("#issues-table").show(); $("#issues-table-actions").show(); var msg_loading = __("Loading... you may continue scanning."); + let renew_column = table_settings_issues_table.columns.find( c => c.columnname == "renew" ); - - if (!AllowCirculate) { - renew_column.is_hidden = 1; - renew_column.force_visibility = 1; - } else { - renew_column.is_hidden = 0; - } + renew_column.visibility_condition = AllowCirculate; renew_column.force_visibility = 1; + let checkin_column = table_settings_issues_table.columns.find( + c => c.columnname == "checkin" + ); + checkin_column.visibility_condition = AllowCirculate; + checkin_column.force_visibility = 1; + let claims_returned_column = table_settings_issues_table.columns.find( c => c.columnname == "claims_returned" ); - if (!ClaimReturnedLostValue) { - claims_returned_column.is_hidden = 1; - } else { - claims_returned_column.is_hidden = 0; - } + claims_returned_column.visibility_condition = ClaimReturnedLostValue; claims_returned_column.force_visibility = 1; let export_column = table_settings_issues_table.columns.find( c => c.columnname == "export" ); - if (!exports_enabled) { - export_column.is_hidden = 1; - } else { - export_column.is_hidden = 0; - } + export_column.visibility_condition = exports_enabled; export_column.force_visibility = 1; issuesTable = $("#issues-table").kohaTable( diff --git a/koha-tmpl/intranet-tmpl/prog/js/datatables.js b/koha-tmpl/intranet-tmpl/prog/js/datatables.js index 05a4491c1a..47dd85de2d 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js +++ b/koha-tmpl/intranet-tmpl/prog/js/datatables.js @@ -1000,14 +1000,18 @@ function _dt_force_visibility(table_settings, table_dt, state) { .join(",") ) .every(function () { - state.columns[this.index()].visible = - table_settings.columns.find( - c => - c.columnname == - this.header().getAttribute("data-colname") - ).is_hidden - ? false - : true; + let column = table_settings.columns.find( + c => + c.columnname == + this.header().getAttribute("data-colname") + ); + if ( + !column.visibility_condition || + (column.is_hidden && column.cannot_be_toggled) + ) { + state.columns[this.index()].visible = false; + state.columns[this.index()].cannot_be_toggled = true; + } }); } else { throw new Error(