From e1778dfef6674a1b72dd4fce892c7207f651fda8 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" (Firefox) (or Cannot read properties of undefined (reading 'str') (Chromium)) 12. Apply patch IN TAB 2: 13. Refresh page 14. Observe item visible on the record's holdings list Signed-off-by: David Nind Signed-off-by: Lucas Gass Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer (cherry picked from commit 4c93ed758f95af0d5e06d3125ae3c6f19f937a6a) Signed-off-by: Lucas Gass --- .../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 c3df0736f0..338296467b 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.39.5