Browse Source

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 <oleonard@myacpl.org>

Tested successfully with MARC21

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
19.05.x
Fridolin Somers 4 years ago
committed by root
parent
commit
3ca0234d34
  1. 1
      koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_linking_section.tt
  2. 1
      koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt

1
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];

1
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];

Loading…
Cancel
Save