From bbd02ac6d8d549de95afde9e89f626df595329fa Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Mon, 24 Jun 2024 17:37:43 +0000 Subject: [PATCH] Bug 16721: Add table configuration to serial claims table This patch adds table configuration options to the serial claims table, including the option to set a default sort column. The patch also moves the table column filter row to the top, which I think is more standard in the staff interface. To test, apply the patch and restart services. - You'll need to have subscription issues which are missing, claimed, or late. - Go to Serials -> Claims, and select a vendor. - In the table of missing issues, confirm that all DataTable controls work correctly: Column visibility, export, and configuration options. - Confirm that you can use Administration -> Table settings -> Serials -> Claims to hide columns by default or set the default order. - Confirm that the column header filter forms work correctly. Sponsored-by: Athens County Public Libraries Signed-off-by: Michaela Sieber --- admin/columns_settings.yml | 28 +++++++++ .../prog/en/modules/serials/claims.tt | 57 ++++++++++--------- 2 files changed, 58 insertions(+), 27 deletions(-) diff --git a/admin/columns_settings.yml b/admin/columns_settings.yml index cf3beff558..bed84fc3f0 100644 --- a/admin/columns_settings.yml +++ b/admin/columns_settings.yml @@ -2254,6 +2254,34 @@ modules: columnname: link serials: + claims: + claimst: + default_sort_order: 7 + columns: + - + columnname: selection + cannot_be_toggled: 1 + cannot_be_modified: 1 + - + columnname: vendor + - + columnname: library + - + columnname: title + - + columnname: issn + - + columnname: issue_number + - + columnname: status + - + columnname: since + - + columnname: publication_date + - + columnname: claims_count + - + columnname: claim_date subscription-detail: orders: columns: diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt index 77f26e556e..6b665f6431 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt @@ -4,6 +4,7 @@ [% USE Branches %] [% USE KohaDates %] [% PROCESS 'i18n.inc' %] +[% USE TablesSettings %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] [% FILTER collapse %] @@ -107,7 +108,23 @@ <th>Claims count</th> <th>Claim date</th> [% FOR field IN additional_fields_for_subscription %] - <th>[% field.name | html %]</th> + <th>[% field.name | html %]</th> + [% END %] + </tr> + <tr> + <td></td> + <td><input type="text" class="filter" data-column_num="1" placeholder="Search vendor" /></td> + <td><input type="text" class="filter" data-column_num="2" placeholder="Search library" /></td> + <td><input type="text" class="filter" data-column_num="3" placeholder="Search title" /></td> + <td><input type="text" class="filter" data-column_num="4" placeholder="Search ISSN" /></td> + <td><input type="text" class="filter" data-column_num="5" placeholder="Search issue number" /></td> + <td><input type="text" class="filter" data-column_num="6" placeholder="Search status" /></td> + <td><input type="text" class="filter" data-column_num="7" placeholder="Search since" /></td> + <td><input type="text" class="filter" data-column_num="8" placeholder="Search publication date" /></td> + <td><input type="text" class="filter" data-column_num="9" placeholder="Search claim count" /></td> + <td><input type="text" class="filter" data-column_num="10" placeholder="Search claim date" /></td> + [% FOR field IN additional_fields_for_subscription %] + <td><input type="text" class="filter" data-column_num="[% loop.count + 10 | html %]" placeholder="Search [% field.name | html %]" /></td> [% END %] </tr> </thead> @@ -115,9 +132,9 @@ [% FOREACH missingissue IN missingissues %] <tr> <td> - [% UNLESS missingissue.cannot_claim %] - <input type="checkbox" class="select_serial" name="serialid" value="[% missingissue.serialid | html %]" /> - [% END %] + [% UNLESS missingissue.cannot_claim %] + <input type="checkbox" class="select_serial" name="serialid" value="[% missingissue.serialid | html %]" /> + [% END %] </td> <td>[% missingissue.name | html %]</td> <td> @@ -151,24 +168,6 @@ </tr> [% END # /FOREACH missingissue %] </tbody> - <tfoot> - <tr> - <td></td> - <td><input type="text" class="filter" data-column_num="1" placeholder="Search vendor" /></td> - <td><input type="text" class="filter" data-column_num="2" placeholder="Search library" /></td> - <td><input type="text" class="filter" data-column_num="3" placeholder="Search title" /></td> - <td><input type="text" class="filter" data-column_num="4" placeholder="Search ISSN" /></td> - <td><input type="text" class="filter" data-column_num="5" placeholder="Search issue number" /></td> - <td><input type="text" class="filter" data-column_num="6" placeholder="Search status" /></td> - <td><input type="text" class="filter" data-column_num="7" placeholder="Search since" /></td> - <td><input type="text" class="filter" data-column_num="8" placeholder="Search publication date" /></td> - <td><input type="text" class="filter" data-column_num="9" placeholder="Search claim count" /></td> - <td><input type="text" class="filter" data-column_num="10" placeholder="Search claim date" /></td> - [% FOR field IN additional_fields_for_subscription %] - <td><input type="text" class="filter" data-column_num="[% loop.count + 10 | html %]" placeholder="Search [% field.name | html %]" /></td> - [% END %] - </tr> - </tfoot> </table> <!-- /#claimst --> </div> <!-- /.page-section --> @@ -302,19 +301,23 @@ [% MACRO jsinclude BLOCK %] [% INCLUDE 'calendar.inc' %] [% INCLUDE 'datatables.inc' %] + [% INCLUDE 'columns_settings.inc' %] <script> - var sTable; $(document).ready(function() { enableSelectedActions(); - sTable = $("#claimst").dataTable($.extend(true, {}, dataTablesDefaults, { - "dom": 't', + + var table_settings = [% TablesSettings.GetTableSettings( 'serials', 'claims', 'claimst', 'json' ) | $raw %]; + var sTable = KohaTable("claimst", { + "autoWidth": false, + "dom": '<"dt-info"><"top pager"<"table_entries"lip><"table_controls"B>>tr<"bottom pager"ip>', "order": [[ 7, "asc" ]], "columnDefs": [ { 'sortable': false, 'targets': [ 'NoSort' ] }, { "type": "anti-the", "targets": [ 'anti-the'] } ], - "paginate": false - })); + "paginate": false, + "orderCellsTop": true + }, table_settings); // Checkboxes : Select All / None $("span.checkall").html("<input type=\"checkbox\" name=\"CheckAll\"> "+_("Check all")+"</input>"); -- 2.39.5