From 2fe3f9c4aacf92bb40aaa1bccf6ed8d7cc53fdb4 Mon Sep 17 00:00:00 2001 From: Lari Taskula Date: Tue, 16 Jul 2024 16:01:45 +0000 Subject: [PATCH] Bug 37375: Fix holdings table not loading if MARC framework is missing certain 952 subfields When you've catalogued a record with MARC framework that is for some reason missing certain 952 subfields (8, a, b, c, or y), holdings table is no longer loading but stuck in the "Processing..." loader. To test, open Koha in two browser tabs: IN TAB 1 (framework configuration): 1. Create a new MARC framework "TEST", based on the default MARC framework IN TAB 2 (record view): 2. Create a new record using MARC framework "TEST" 3. Add an item to the newly created record 4. Observe item visible on the record's holdings list IN TAB 1 (framework configuration): 5. Delete all 952 subfields in framework "TEST" except: 8, a, b, c, y IN TAB 2 (record view): 6. Refresh page 7. Observe item visible on the record's holdings list 8. Open your browser's console for upcoming error messages Iterating remaining subfields in following order, | | ------------------------------------------------------ | 952$8 | row._strings.collection_code | 952$c | row._strings.location | 952$a | row._strings.home_library_id | 952$b | row._strings.holding_library_id | 952$y | row._strings.item_type_id IN TAB 1 (framework configuration): 9. Delete subfield in framework "TEST" IN TAB 2 (record view): 10. Refresh page 11. Observe error "Uncaught TypeError: is undefined" 12. Apply patch IN TAB 2: 13. Refresh page 14. Observe item visible on the record's holdings list --- .../html_helpers/tables/items/catalogue_detail.inc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc index c1771d0cfb..6c24f4c59e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc @@ -345,7 +345,7 @@ orderable: true, render: function (data, type, row, meta) { let node = ''; - let item_type_description = row._strings.item_type_id.str; + let item_type_description = row._strings.item_type_id ? row._strings.item_type_id.str : row.item_type_id; [% UNLESS noItemTypeImages %] let image_location = item_type_image_locations[row.item_type_id]; node += image_location @@ -363,7 +363,7 @@ searchable: true, orderable: true, render: function (data, type, row, meta) { - return escape_str(row._strings.holding_library_id.str); + return escape_str(row._strings.holding_library_id ? row._strings.holding_library_id.str : row.holding_library_id); } }, { @@ -372,12 +372,12 @@ searchable: true, orderable: true, render: function (data, type, row, meta) { - let nodes = '%s'.format(escape_str(row._strings.home_library_id.str)); + let nodes = '%s'.format(escape_str(row._strings.home_library_id ? row._strings.home_library_id.str : row.home_library_id)); nodes += '' [%# If permanent location is defined, show description or code and %] [%# display current location in parentheses. If not, display current location. %] [%# Note that permanent location is a code, and location may be an authval. %] - let loc_str = row._strings.location.str; + let loc_str = row._strings.location ? row._strings.location.str : row.location; if ( row.permanent_location && row.permanent_location != row.location ) { let permanent_loc_str = av_loc.get(row.permanent_location); nodes += '%s (%s)'.format(escape_str(permanent_loc_str), escape_str(loc_str)); @@ -393,7 +393,7 @@ searchable: true, orderable: true, render: function (data, type, row, meta) { - return escape_str(row._strings.collection_code.str); + return escape_str(row._strings.collection_code ? row._strings.collection_code.str : row.collection_code); } }, [% IF Koha.Preference('EnableItemGroups') %] -- 2.34.1