From a203463d576c00bcfcc4b74a58fc6933fde78954 Mon Sep 17 00:00:00 2001 From: Arthur Suzuki Date: Wed, 18 Feb 2026 13:13:12 +0000 Subject: [PATCH] Bug 30221: (QA follow-up) make DOM consistent for modified tables Sponsored-by: BibLibre --- .../bootstrap/en/includes/holds-table.inc | 58 ++--- .../bootstrap/en/modules/opac-holdshistory.tt | 22 +- .../en/modules/opac-readingrecord.tt | 15 +- .../bootstrap/en/modules/opac-user.tt | 231 ++++++++++++++---- .../bootstrap/en/modules/sco/sco-main.tt | 67 ++++- 5 files changed, 287 insertions(+), 106 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc index f2384fe7124..4b4014c3997 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/holds-table.inc @@ -10,28 +10,14 @@ Title - [% IF ( showpriority ) %] - Placed on - [% ELSE %] - Placed on - [% END %] + Placed on Expires on - [% UNLESS( singleBranchMode) %] - Pickup location - [% END %] - [% IF ( showpriority ) %] - Priority - [% END %] - [% IF Koha.Preference('OpacHoldNotes') %] - Notes - [% END %] + Pickup location + Priority + Notes Status - [% IF SuspendHoldsOpac and ! onlyinfo %] - Suspend - [% END %] - [% IF ! onlyinfo %] - Modify - [% END %] + Suspend + Modify @@ -94,8 +80,8 @@ - [% END %] - [% UNLESS( singleBranchMode) %] - + + [% IF !singleBranchMode %] [% HOLD.branch.branchname | html %] [% IF ( HOLD.can_update_pickup_location_opac ) %] @@ -131,14 +117,10 @@ [% END %] - - [% END %] - [% IF ( showpriority ) %] - [% HOLD.priority | html %] - [% END %] - [% IF Koha.Preference('OpacHoldNotes') %] - [% HOLD.reservenotes | html | html_line_break %] - [% END %] + [% END %] + + [% IF showpriority %][% HOLD.priority | html %][% END %] + [% IF Koha.Preference('OpacHoldNotes') %][% HOLD.reservenotes | html | html_line_break %][% END %] [% IF ( HOLD.is_waiting ) %] @@ -180,8 +162,8 @@ [% END %] [% END %] - [% IF SuspendHoldsOpac and ! onlyinfo %] - + + [% IF SuspendHoldsOpac and ! onlyinfo %] [% IF ( HOLD.is_cancelable_from_opac ) %] [% IF HOLD.suspend %]
@@ -211,10 +193,10 @@ [% END # / IF AutoResumeSuspendedHolds %] [% END # / IF HOLD.suspend %] [% END # / IF ( HOLD.is_cancelable_from_opac ) %] - - [% END # / IF SuspendHoldsOpac %] - [% IF ! onlyinfo %] - + [% END # / IF SuspendHoldsOpac %] + + + [% IF ! onlyinfo %] [% IF ( HOLD.is_cancelable_from_opac ) %] [% INCLUDE 'csrf-token.inc' %] @@ -236,8 +218,8 @@ >
[% END %] - - [% END # / IF onlyinfo %] + [% END # / IF onlyinfo %] + [% END # /FOREACH HOLDS %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-holdshistory.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-holdshistory.tt index a25646d4777..7800d430d7d 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-holdshistory.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-holdshistory.tt @@ -71,7 +71,6 @@ [% IF !holds %] No data available [% ELSE %] - [% SET show_itemtype_column = Koha.Preference('AllowHoldItemTypeSelection') %]
@@ -105,9 +104,7 @@ Expiration date Waiting date Cancellation date - [% IF show_itemtype_column %] - Requested item type - [% END %] + Requested item type Status @@ -139,15 +136,15 @@ [% hold.cancellationdate | $KohaDates %] [% END %] - [% IF show_itemtype_column %] - + + [% IF show_itemtype_column %] [% IF hold.itemtype %] [% ItemTypes.GetDescription( hold.itemtype ) | html %] [% ELSE %] Any item type [% END %] - - [% END %] + [% END %] + [% IF hold.found == 'F' %] Fulfilled @@ -196,9 +193,16 @@ $("#sort").change(function () { $("#sortform").submit(); }); - var table_settings = [% TablesSettings.GetColumns( 'opac', 'patron_details', 'table_holdshistory', 'json') | $raw %]; + let table_settings = [% TablesSettings.GetTableSettings( 'opac', 'patron_details', 'table_holdshistory', 'json') | $raw %]; + [% IF ! Koha.Preference('AllowHoldItemTypeSelection') %] + let itemtype_column = table_settings.columns.find(c => c.columnname == 'item_type'); + itemtype_column.is_hidden = 1; + itemtype_column.cannot_be_toggled = 1; + itemtype_column.force_visibility = 1; + [% END %] var table = $("#table_holdshistory").kohaTable({ dom: '<"top"<"table_entries"i><"table_controls"fB>>t', + bKohaColumnsUseNames: true, autoWidth: false, order: [[4, "desc"]], language: { diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt index c10f1743616..3c0d1df5c04 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt @@ -126,9 +126,7 @@ Vol info Date Checkout branch - [% IF Koha.Preference('OPACMySummaryHTML') %] - Links - [% END %] + Links @@ -217,9 +215,7 @@ [% END %] [% checkout.library.branchname | html %] - [% IF Koha.Preference('OPACMySummaryHTML') %] - [% biblio.opac_summary_html | $raw %] - [% END %] + [% IF Koha.Preference('OPACMySummaryHTML') %][% biblio.opac_summary_html | $raw %][% END %] [% END # / FOREACH checkout %] @@ -238,9 +234,16 @@ }); var table_settings = [% TablesSettings.GetTableSettings( 'opac', 'patron_details', 'readingrec', 'json') | $raw %]; + [% IF !Koha.Preference('OPACMySummaryHTML') %] + let opac_summary_column = table_settings.columns.find(c => c.columnname == 'links'); + opac_summary_column.is_hidden = 1; + opac_summary_column.cannot_be_toggled = 1; + opac_summary_column.force_visibility = 1; + [% END %] var table = $("#readingrec").kohaTable( { dom: '<"top"<"table_entries"i><"table_controls"fB>>t', + bKohaColumnsUseNames: true, language: { search: "_INPUT_", searchPlaceholder: _("Search"), diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt index 63288466b0d..8d3bfa687ca 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt @@ -322,19 +322,11 @@ Checked out on Due Checkout branch - [% IF ( Koha.Preference('BiblioItemtypeInfo') || !item_level_itypes ) %] - Item type - [% END %] - [% IF ( show_barcode ) %] - Barcode - [% END %] + Item type + Barcode Call number - [% IF ( OpacRenewalAllowed && !( logged_in_user.is_expired && logged_in_user.category.effective_BlockExpiredPatronOpacActions_contains('renew') ) ) %] - Renew - [% END %] - [% IF ( OPACFinesTab ) %] - Fines - [% END %] + Renew + Fines [% IF Koha.Preference('OPACMySummaryHTML') %] Links [% END %] @@ -415,19 +407,17 @@ [% ISSUE.date_due | $KohaDates as_due_date => 1 %] [% END %] [% ISSUE.branchname | html %] - [% IF ( Koha.Preference('BiblioItemtypeInfo') || !item_level_itypes ) %] - + + [% IF ( Koha.Preference('BiblioItemtypeInfo') || !item_level_itypes ) %] [% IF ( ISSUE.imageurl && !Koha.Preference('OpacNoItemTypeImages') ) %] [% ISSUE.description | html %] [% END %] [% ISSUE.description | html %] - - [% END %] - [% IF ( show_barcode ) %] - [% ISSUE.barcode | html %] - [% END %] + [% END %] + + [% IF ( show_barcode ) %][% ISSUE.barcode | html %][% END %] [% ISSUE.itemcallnumber | html %] - [% IF ( OpacRenewalAllowed && !( logged_in_user.is_expired && logged_in_user.category.effective_BlockExpiredPatronOpacActions_contains('renew') ) ) %] - + + [% IF ( OpacRenewalAllowed && !( logged_in_user.is_expired && logged_in_user.category.effective_BlockExpiredPatronOpacActions_contains('renew') ) ) %] [% IF ISSUE.renewed %]Renewed!
[% END %] [% IF ( ISSUE.status ) %] [% IF ( canrenew ) %] @@ -493,10 +483,10 @@ [% IF ( ISSUE.auto_renew || ISSUE.auto_too_soon ) %]
This item is scheduled for auto renewal. [% END %] - - [% END %] - [% IF ( OPACFinesTab ) %] - + [% END %] + + + [% IF ( OPACFinesTab ) %] [% IF ( ISSUE.charges ) %] Yes (Item overdue or lost) [% ELSIF ( ISSUE.rentalfines ) %] @@ -504,8 +494,8 @@ [% ELSE %] No [% END %] - - [% END %] + [% END %] + [% IF Koha.Preference('OPACMySummaryHTML') %] [% ISSUE.biblio_object.opac_summary_html| $raw %] [% END %] @@ -705,17 +695,13 @@ [% IF ( JacketImages ) %] [% END %] Title - [% UNLESS ( item_level_itypes ) %]Item type[% END %] - [% IF ( show_barcode ) %]Barcode[% END %] + Item type + Barcode Call number Checked out on Due - [% IF ( OpacRenewalAllowed ) %] - Renew - [% END %] - [% IF ( OPACFinesTab ) %] - Fines - [% END %] + Renew + Fines @@ -767,23 +753,21 @@ [% OVERDUE.author | html %] - [% UNLESS ( item_level_itypes ) %] - + + [% IF ( !item_level_itypes ) %] [% IF ( OVERDUE.imageurl && !Koha.Preference('OpacNoItemTypeImages') ) %] [% OVERDUE.description | html %] [% END %] [% OVERDUE.description | html %] - - [% END %] - [% IF ( show_barcode ) %] - [% OVERDUE.barcode | html %] - [% END %] + [% END %] + + [% IF ( show_barcode ) %][% OVERDUE.barcode | html %][% END %] [% OVERDUE.itemcallnumber | html %] [% OVERDUE.issuedate | $KohaDates as_due_date => 1 %] [% OVERDUE.date_due | $KohaDates as_due_date => 1 %] [% OVERDUE.branchname | html %] - [% IF ( OpacRenewalAllowed ) %] - + + [% IF ( OpacRenewalAllowed ) %] [% IF ( OVERDUE.debarred ) %] Account frozen [% ELSIF ( OVERDUE.status ) %] @@ -814,17 +798,17 @@ [% ELSE %] No renewals left [% END %] - - [% END %] - [% IF ( OPACFinesTab ) %] - + [% END %] + + + [% IF ( OPACFinesTab ) %] [% IF ( OVERDUE.charges ) %] Yes [% ELSE %] No [% END %] - - [% END %] + [% END %] + [% END %] @@ -1192,6 +1176,152 @@ [% FOREACH table IN ['checkoutst', 'holdst', 'overduest','opac_user_relative_issues_table'] %] tables_settings.set("[% table | $raw %]", [% TablesSettings.GetTableSettings( 'opac', 'patron_details', table, 'json') | $raw %]); [% END %] + + [% IF !(Koha.Preference('BiblioItemtypeInfo') || !item_level_itypes) %] + var checkoutst_settings = tables_settings.get('checkoutst'); + if (checkoutst_settings && checkoutst_settings.columns) { + var itemtype_column = checkoutst_settings.columns.find(c => c.columnname == 'itemtype'); + if (itemtype_column) { + itemtype_column.is_hidden = 1; + itemtype_column.cannot_be_toggled = 1; + itemtype_column.force_visibility = 1; + } + } + [% END %] + + [% IF !show_barcode %] + var checkoutst_settings = tables_settings.get('checkoutst'); + if (checkoutst_settings && checkoutst_settings.columns) { + var barcode_column = checkoutst_settings.columns.find(c => c.columnname == 'barcode'); + if (barcode_column) { + barcode_column.is_hidden = 1; + barcode_column.cannot_be_toggled = 1; + barcode_column.force_visibility = 1; + } + } + + var overduest_settings = tables_settings.get('overduest'); + if (overduest_settings && overduest_settings.columns) { + var barcode_column = overduest_settings.columns.find(c => c.columnname == 'barcode'); + if (barcode_column) { + barcode_column.is_hidden = 1; + barcode_column.cannot_be_toggled = 1; + barcode_column.force_visibility = 1; + } + } + [% END %] + + [% IF !(OpacRenewalAllowed && !(logged_in_user.is_expired && logged_in_user.category.effective_BlockExpiredPatronOpacActions_contains('renew'))) %] + var checkoutst_settings = tables_settings.get('checkoutst'); + if (checkoutst_settings && checkoutst_settings.columns) { + var renew_column = checkoutst_settings.columns.find(c => c.columnname == 'renew'); + if (renew_column) { + renew_column.is_hidden = 1; + renew_column.cannot_be_toggled = 1; + renew_column.force_visibility = 1; + } + } + [% END %] + + [% IF !OpacRenewalAllowed %] + var overduest_settings = tables_settings.get('overduest'); + if (overduest_settings && overduest_settings.columns) { + var renew_column = overduest_settings.columns.find(c => c.columnname == 'renew'); + if (renew_column) { + renew_column.is_hidden = 1; + renew_column.cannot_be_toggled = 1; + renew_column.force_visibility = 1; + } + } + [% END %] + + [% IF !OPACFinesTab %] + var checkoutst_settings = tables_settings.get('checkoutst'); + if (checkoutst_settings && checkoutst_settings.columns) { + var fines_column = checkoutst_settings.columns.find(c => c.columnname == 'fines'); + if (fines_column) { + fines_column.is_hidden = 1; + fines_column.cannot_be_toggled = 1; + fines_column.force_visibility = 1; + } + } + + var overduest_settings = tables_settings.get('overduest'); + if (overduest_settings && overduest_settings.columns) { + var fines_column = overduest_settings.columns.find(c => c.columnname == 'fines'); + if (fines_column) { + fines_column.is_hidden = 1; + fines_column.cannot_be_toggled = 1; + fines_column.force_visibility = 1; + } + } + [% END %] + + [% IF item_level_itypes %] + var overduest_settings = tables_settings.get('overduest'); + if (overduest_settings && overduest_settings.columns) { + var itemtype_column = overduest_settings.columns.find(c => c.columnname == 'itemtype'); + if (itemtype_column) { + itemtype_column.is_hidden = 1; + itemtype_column.cannot_be_toggled = 1; + itemtype_column.force_visibility = 1; + } + } + [% END %] + + // Hide holds table columns conditionally + var holdst_settings = tables_settings.get('holdst'); + if (holdst_settings && holdst_settings.columns) { + // Hide pickup_location column if singleBranchMode + [% IF singleBranchMode %] + var pickup_location_column = holdst_settings.columns.find(c => c.columnname == 'pickup_location'); + if (pickup_location_column) { + pickup_location_column.is_hidden = 1; + pickup_location_column.cannot_be_toggled = 1; + pickup_location_column.force_visibility = 1; + } + [% END %] + + // Hide priority column if !showpriority + [% IF !showpriority %] + var priority_column = holdst_settings.columns.find(c => c.columnname == 'priority'); + if (priority_column) { + priority_column.is_hidden = 1; + priority_column.cannot_be_toggled = 1; + priority_column.force_visibility = 1; + } + [% END %] + + // Hide notes column if !OpacHoldNotes + [% IF !Koha.Preference('OpacHoldNotes') %] + var notes_column = holdst_settings.columns.find(c => c.columnname == 'notes'); + if (notes_column) { + notes_column.is_hidden = 1; + notes_column.cannot_be_toggled = 1; + notes_column.force_visibility = 1; + } + [% END %] + + // Hide suspend column if !SuspendHoldsOpac or onlyinfo + [% IF !SuspendHoldsOpac || onlyinfo %] + var suspend_column = holdst_settings.columns.find(c => c.columnname == 'suspend'); + if (suspend_column) { + suspend_column.is_hidden = 1; + suspend_column.cannot_be_toggled = 1; + suspend_column.force_visibility = 1; + } + [% END %] + + // Hide modify column if onlyinfo + [% IF onlyinfo %] + var modify_column = holdst_settings.columns.find(c => c.columnname == 'modify'); + if (modify_column) { + modify_column.is_hidden = 1; + modify_column.cannot_be_toggled = 1; + modify_column.force_visibility = 1; + } + [% END %] + } var dTables = $("#checkoutst,#holdst,#overduest,#opac-user-relative-issues-table"); dTables.each(function(){ var thIndex = $(this).find("th.psort").index(); @@ -1201,6 +1331,7 @@ .kohaTable({ order: [[ thIndex, 'asc' ]], dom: '<"top"<"table_entries"><"table_controls"fB>>t', + bKohaColumnsUseNames:true, columnDefs: [ { visible: false, "targets" : [ "hidden" ] }, { className: 'dtr-control', orderable: false, targets: -1 } diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt index 6a7f5d00a23..9c4d1e24522 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt @@ -6,6 +6,7 @@ [% USE To %] [% USE Price %] [% USE AdditionalContents %] +[% USE TablesSettings %] [% USE Branches %] [% SET SCOMainUserBlock = AdditionalContents.get( location => "SCOMainUserBlock", lang => lang, library => logged_in_user.branchcode || default_branch, blocktitle => 0 ) %] [% PROCESS 'html_helpers.inc' %] @@ -385,7 +386,7 @@
[% END # / IF validuser %] - [% ELSE # / UNLESS ( hide_main %] + [% ELSE # / UNLESS ( hide_main ) %]
@@ -476,10 +477,63 @@ dofocus(); [% IF ( patronid ) %]sco_init();[% END %] + // Hide holds table columns conditionally + let holdst_settings = [% TablesSettings.GetTableSettings( 'opac', 'patron_details', 'holdst', 'json') | $raw %]; + if (holdst_settings && holdst_settings.columns) { + // Hide pickup_location column if singleBranchMode + [% IF singleBranchMode %] + var pickup_location_column = holdst_settings.columns.find(c => c.columnname == 'pickup_location'); + if (pickup_location_column) { + pickup_location_column.is_hidden = 1; + pickup_location_column.cannot_be_toggled = 1; + pickup_location_column.force_visibility = 1; + } + [% END %] + + // Hide priority column if !showpriority + [% IF !showpriority %] + var priority_column = holdst_settings.columns.find(c => c.columnname == 'priority'); + if (priority_column) { + priority_column.is_hidden = 1; + priority_column.cannot_be_toggled = 1; + priority_column.force_visibility = 1; + } + [% END %] + + // Hide notes column if !OpacHoldNotes + [% IF !Koha.Preference('OpacHoldNotes') %] + var notes_column = holdst_settings.columns.find(c => c.columnname == 'notes'); + if (notes_column) { + notes_column.is_hidden = 1; + notes_column.cannot_be_toggled = 1; + notes_column.force_visibility = 1; + } + [% END %] + + // Hide suspend column if !SuspendHoldsOpac or onlyinfo + [% IF !SuspendHoldsOpac || onlyinfo %] + var suspend_column = holdst_settings.columns.find(c => c.columnname == 'suspend'); + if (suspend_column) { + suspend_column.is_hidden = 1; + suspend_column.cannot_be_toggled = 1; + suspend_column.force_visibility = 1; + } + [% END %] + + // Hide modify column if onlyinfo + [% IF onlyinfo %] + var modify_column = holdst_settings.columns.find(c => c.columnname == 'modify'); + if (modify_column) { + modify_column.is_hidden = 1; + modify_column.cannot_be_toggled = 1; + modify_column.force_visibility = 1; + } + [% END %] + } var dTables = $("#loanTable, #holdst, #finestable"); dTables.each(function(){ var thIndex = $(this).find("th.psort").index(); - $(this).kohaTable({ + koha_table_def={ order: [[thIndex, "asc"]], dom: '<"top"<"table_entries"><"table_controls"f>>t<"clear">', columnDefs: [ @@ -497,7 +551,14 @@ target: -1, }, }, - }); + }; + if (this.id == 'holdst') { + koha_table_def['bKohaColumnsUseNames'] = true; + $(this).kohaTable(koha_table_def,holdst_settings); + } + else{ + $(this).kohaTable(koha_table_def); + } }); $('a[data-bs-toggle="tab"]').on('shown.bs.tab', function (event) { -- 2.39.5