From 922eed4c327c3ffd2ce52b4c854d55a8a7f7b7e1 Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Wed, 17 Jun 2015 13:22:49 -0300 Subject: [PATCH] Bug 12616: Locale in subscriptions not preselecting correctly There is a problem if a language is present but don't have ISO639-2 code. Locale pulldown on serial suscription is malformed. To reproduce on master: a) remove some entries on language_rfc4646_to_iso639 b) go to Serials > New suscription c) Put any value on Vendor and record, press Next>> d) Look at locale pulldown, it must default to last removed lang from a), also other langs has no value and are also 'selected' on html To test: 1) Reproduce the problem 2) Apply the patch 3) Add New suscription, pulldown must be fixed NOTE: Deleted Urdu and Chinese. Master had both "selected" in the HTML. Applied patch, neither were added. Defaults to first item, which is blank meaning English. Signed-off-by: Mark Tompsett Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi (cherry picked from commit b9c4061479235d0d79ecbd917b015db5441d8118) Signed-off-by: Chris Cormack --- C4/Languages.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/C4/Languages.pm b/C4/Languages.pm index be907ee8ef..384fd7a750 100644 --- a/C4/Languages.pm +++ b/C4/Languages.pm @@ -249,7 +249,8 @@ sub getLanguages { $language_subtag_registry->{language_description} = $language_descriptions->{description}; } } - if ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) { + # Do not push unless valid iso639-2 code + if ( $language_subtag_registry->{ iso639_2_code } and ( !$language_list || index ( $language_list, $language_subtag_registry->{ iso639_2_code } ) >= 0) ) { push @languages_loop, $language_subtag_registry; } } -- 2.39.5