From 61cd3f91bece430928493595cdd721dbf43b5b9b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 14 Oct 2025 11:13:04 +0200 Subject: [PATCH] Bug 30633: Hide columns when needed We can use the force_visibility flag to hide column when they are empty or should not be displayed because of syspref. Signed-off-by: Michaela --- .../bootstrap/en/modules/opac-detail.tt | 43 +++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt index 3e2e5ec465..3d16146ea6 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -63,6 +63,7 @@ [% INCLUDE 'bodytag.inc' bodyid='opac-detail' bodyclass='scrollto' %] [% INCLUDE 'masthead.inc' %] +[% SET hidden_columns_force = {} %]
[% WRAPPER breadcrumbs %] [% WRAPPER breadcrumb_item bc_active= 1 %] @@ -1291,6 +1292,7 @@ [%# End of template %] [% BLOCK items_table %] + [% SET hidden_columns_force.$table_id = [] %] @@ -1334,6 +1336,7 @@ [% ELSE %] + [% hidden_columns_force.$table_id.push('item_cover') %] [% END %] @@ -1347,6 +1350,7 @@ [% ITEM_RESULT.description | html %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_itemtype') %] [% END %] [% IF ( OpacLocationBranchToDisplay == 'holding' || OpacLocationBranchToDisplay == 'both' ) %] @@ -1372,6 +1376,7 @@ [% END %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_current_location') %] [% END %] @@ -1398,18 +1403,21 @@ [% END %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_home_location') %] [% END %] [% IF ( itemdata_ccode ) %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_ccode') %] [% END %] [% IF ( Koha.Preference('OpacLocationOnDetail') == 'column' && itemdata_location ) %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_shelving_location') %] [% END %] @@ -1436,12 +1444,14 @@ [% END %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_callnumber') %] [% END %] [% IF ( itemdata_materials ) %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_materials') %] [% END %] @@ -1464,6 +1474,7 @@ [% END %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_enumchron') %] [% END %] @@ -1509,12 +1520,14 @@ [% END %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_url') %] [% END # /IF itemdata_uri %] [% IF ( itemdata_copynumber ) %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_copy') %] [% END %] @@ -1523,18 +1536,21 @@ [% IF ( itemdata_itemnotes ) %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_notes') %] [% END %] [% IF item_checkouts %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_datedue') %] [% END %] [% IF ( itemdata_barcode ) %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_barcode') %] [% END %] @@ -1549,12 +1565,16 @@ [% END %] [% END %] + [% hidden_columns_force.$table_id.push('item_priority') %] [% ELSIF show_priority %] + [% hidden_columns_force.$table_id.push('item_holds') %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_holds') %] + [% hidden_columns_force.$table_id.push('item_priority') %] [% END %] @@ -1576,6 +1596,7 @@ [% END %] [% ELSE %] + [% hidden_columns_force.$table_id.push('item_coursereserves') %] [% END # /IF ShowCourseReservesHeader %] @@ -1892,7 +1913,23 @@ }); [% END # /IF OpacBrowseResults %] - var table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %]; + var holdingst_table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %]; + var otherholdingst_table_settings = JSON.parse(JSON.stringify(holdingst_table_settings)); // Clone + + let column; + [% FOR k IN hidden_columns_force.holdingst %] + column = holdingst_table_settings.columns.find(c => c.columnname == '[% k | html %]'); + column.is_hidden = 1; + column.cannot_be_toggled = 1; + column.force_visibility = 1; + [% END %] + + [% FOR k IN hidden_columns_force.otherholdingst %] + column = otherholdingst_table_settings.columns.find(c => c.columnname == '[% k | html %]'); + column.is_hidden = 1; + column.cannot_be_toggled = 1; + column.force_visibility = 1; + [% END %] $("#holdingst").kohaTable( { @@ -1902,7 +1939,7 @@ details: { type: "column", target: -1 }, }, }, - table_settings + holdingst_table_settings, ); $("#otherholdingst").kohaTable( { @@ -1912,7 +1949,7 @@ details: { type: "column", target: -1 }, }, }, - table_settings + otherholdingst_table_settings, ); var serial_table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'subscriptionst', 'json' ) | $raw %]; -- 2.39.5
Holdings
[% ITEM_RESULT.ccode | html %][% ITEM_RESULT.location_description | html %][% ITEM_RESULT.materials | html %][% ITEM_RESULT.copynumber | html %][% ITEM_RESULT.itemnotes | $raw %][% ITEM_RESULT.checkout.date_due | $KohaDates as_due_date => 1 %][% ITEM_RESULT.barcode | html %] [% priority | html %]