Bug 19655: Make To.json escape doesn't escape newlines to create valid JSON
JSON does not allow real line-breaks. If a field contains them and they are not escaped, a JSON parser will be unable to convert the stringified JSON back into an object. This is clearly exemplified by the guarantor search, where a multi-line note on the guarantor's record will break the ability to select that guarantor. Test Plan: 1) Create Patron A with a "Circulation note" that has multiple lines in it 2) Create Patron B 3) Attempt to set Patron A to be the guarantor for Patron B 4) Note selecting the patron does nothing 5) Apply this patch 6) Repeat step 3 7) Selecting the guarantor now works! Signed-off-by: Simon Pouchol <simon.pouchol@biblibre.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
8d7dd0c69d
commit
9cd9240c36
|
|
@ -29,6 +29,8 @@ sub json {
|
|||
my $json = JSON->new->allow_nonref(1);
|
||||
$json = $json->encode($value);
|
||||
$json =~ s/^"|"$//g; # Remove quotes around the strings
|
||||
$json =~ s/\\r/\\\\r/g; # Convert newlines to escaped newline characters
|
||||
$json =~ s/\\n/\\\\n/g;
|
||||
return $json;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue