From 800e3ae8eb0cc58bea1f58690ba3683e730fa764 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Thu, 31 Jan 2019 09:12:13 +0100 Subject: [PATCH] Bug 22242: Javascript error in value builder cased by Select2 Same as Bug 17780 but in value builders. Select2 (Bug 13501) introduced divs and inputs that broke some assumptions about the expected HTML structure. This patch checks if input has name attribute, because some inputs in Select2 have not. It brakes value builders marc21_linking_section.tt and unimarc_field_4XX.tt. Test plan : 1) On a MARC21 database 2) Define 774$0 as a regular subfield 3) Define 774$4 with an authorised value category 4) Define 774$t with value builder marc21_linking_section 5) Create a new record 6) Use value builder in 774$t 7) Search for a record and click choose 8) Without patch : a popup window does not close and show a blank screen 9) With patch : popup windows get close and you see in field 774 $0 and $t field with values 10) Same tests with a UNIMARC database on field 461 with value builder unimarc_field_4XX.tt Signed-off-by: Owen Leonard Tested successfully with MARC21 Signed-off-by: Josef Moravec Signed-off-by: Nick Clemens (cherry picked from commit 3ca0234d34ac9708a8335cfa97805fb7498201bf) Signed-off-by: Martin Renvoize (cherry picked from commit 55b20ad1a7b8afa5c385bd3f9825014d40936ba1) Signed-off-by: Lucas Gass --- .../modules/cataloguing/value_builder/marc21_linking_section.tt | 1 + .../en/modules/cataloguing/value_builder/unimarc_field_4XX.tt | 1 + 2 files changed, 2 insertions(+) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_linking_section.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_linking_section.tt index 0b498d5d9d..7a71813a3b 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_linking_section.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_linking_section.tt @@ -144,6 +144,7 @@ var re = /^tag_\d*_code_/; for (var i = 0, len = subfields.length; i < len; i++) { + if (subfields[i].hasAttribute('name') == 0) { continue; } // div elements specific to Select2 if (subfields[i].getAttribute('name').match(re)) { // it s a subfield var code = subfields[i]; var subfield = subfields[i + 1]; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt index 95e70ab569..947b776b2c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt @@ -161,6 +161,7 @@ var re = /^tag_\d*_code_/; for(var i=0, len = subfields.length ; i< len ; i++) { + if(subfields[i].hasAttribute('name') == 0) { continue; } // div elements specific to Select2 if(subfields[i].getAttribute('name').match(re)){ // it s a subfield var code = subfields[i]; var subfield = subfields[i+1]; -- 2.39.5