From 30b5ad5e65a8f4c3a0871d4c6473120ed5f7a128 Mon Sep 17 00:00:00 2001 From: "renater.salaun" <renater.salaun@047e039d-479c-447e-8a29-aa6bf4a09bab> Date: Mon, 13 Oct 2014 07:40:35 +0000 Subject: [PATCH] Show displayName in any language if no English version is provided. Sorting by displayNAme git-svn-id: https://svn.geant.net/GEANT/edugain_testidp_account_manager/trunk@22 047e039d-479c-447e-8a29-aa6bf4a09bab --- lib/IdPAccountManager/SAMLMetadata.pm | 8 ++++++++ templates/web/account_wizard.tt2.html | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm index 37a705e..8ca6632 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 34f4368..a57cab6 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/> -- GitLab