diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm index 37a705e6671ec94819eeebdea6cebeea5ce2086f..8ca6632118400a87ba54d0b488b2097750af4120 100644 --- a/lib/IdPAccountManager/SAMLMetadata.pm +++ b/lib/IdPAccountManager/SAMLMetadata.pm @@ -246,6 +246,14 @@ sub _parse_saml_metadata { foreach my $displayname ($child->getElementsByLocalName('DisplayName')) { $extracted_data->{'display_name'}{$displayname->getAttribute('xml:lang')} = &IdPAccountManager::Tools::encode_utf8($displayname->textContent()); + + ## Set a default displayName in case no English version is provided + ## However there is no way to determine the native displayName + ## We take the first one as default + if (! $extracted_data->{'default_display_name'} || $displayname->getAttribute('xml:lang')) { + $extracted_data->{'default_display_name'} = &IdPAccountManager::Tools::encode_utf8($displayname->textContent()); + } + } foreach my $description ($child->getElementsByLocalName('Description')) { diff --git a/templates/web/account_wizard.tt2.html b/templates/web/account_wizard.tt2.html index 34f43683d9b0d5843c70404d3c9c878f015dab14..a57cab6e9a13fff116243e7880d6febd7662d142 100644 --- a/templates/web/account_wizard.tt2.html +++ b/templates/web/account_wizard.tt2.html @@ -107,8 +107,8 @@ in eduGAIN inter-federation. Note that only a Service Provider administrator can <select id="sp_entityid" name="sp_entityid" class="required"> <option value="">Select your Service Provider below</option> - [% FOREACH entity IN federation_metadata_as_hashref.sort('entityid') %] -<option value="[% entity.entityid %]">[% IF entity.display_name && entity.display_name.en %][% entity.display_name.en %] - [% END %][% entity.entityid %]</option> + [% FOREACH entity IN federation_metadata_as_hashref.sort('default_display_name') %] +<option value="[% entity.entityid %]">[% IF entity.default_display_name %][% entity.default_display_name %] [% END %]([% entity.entityid %])</option> [% END %] </select> <br/>