From e528bb87c7375eaecf11f265b258e2b7ec5ce202 Mon Sep 17 00:00:00 2001 From: Marius Mandrescu Date: Tue, 28 Mar 2023 12:04:49 -0400 Subject: [PATCH] Bug 33335: Fix JavaScript error on the MARC overlay rules page The "MARC overlay rules" page doesn't display or work correctly if a patron category code contains a "-". This happens because of the JavaScript function in "marc-overlay-rules.tt" line 469. This causes an error "Uncaught SyntaxError: missing : after property id". Test plan: 1. Go to Administration > Patron categories. 2. Make sure you don't have a patron category code that contains a "-". 3. Go to Administration > Record overlay rules. 4. The table should display correctly, and you can add, edit and delete rules. 5. Return to Patron categories. 6. Add a new patron category with a "-" in the patron category code. 7. Return to Record overlay rules page: => The page doesn't display and load correctly (see the attached image) - the normal DataTables header and footer aren't displayed, and you can't add, edit or delete overlay rules. => If you turn on web developer tools, an error is displayed in the console: "Uncaught SyntaxError: missing : after property id". 8. Apply the patch. 9. Repeat the step 7, the Record overlay rules page should now display correctly and you should be able to add, edit and delete rules. 10. Sign off. Signed-off-by: David Nind Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 351e380a1468562fe579e53d85389ccc9a53418e) Signed-off-by: Matt Blenkinsop --- .../en/modules/admin/marc-overlay-rules.tt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc-overlay-rules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc-overlay-rules.tt index a88c1b452b..898a4cac02 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc-overlay-rules.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/marc-overlay-rules.tt @@ -454,8 +454,14 @@ } }); + var $category = {}; + + [% FOR categorycode IN categorycodes %] + $category["[% categorycode.categorycode %]"] = "[% categorycode.description | html %]"; + [% END %] + var module_filter_options = { - source: { + source: { '*': '*', batchmod: _("Batch record modification"), intranet: _("Staff interface MARC editor"), @@ -463,13 +469,9 @@ z3950: _("Z39.50"), /* bulkmarcimport: _("bulkmarcimport.pl"), */ import_lexile: _("import_lexile.pl") - }, - categorycode: { - '*': '*', - [% FOREACH categorycode IN categorycodes %] - [% categorycode.categorycode | html %]: "[% categorycode.description | html %]", - [% END %] - } + }, + + categorycode: $category }; //Kind of hack: Replace filter value with label when one exist -- 2.39.5