fix(user): format userDisplayNames having umlaut substitutes with respect to userSurname correctly
we often have displayNames like "Steffen Joest" and surname "Jöst" which were previously displayed as "Steffen Joest (**Jöst**)" and which are now displayed as "Steffen **Jöst**". Also, the case of surname is left unchanged, while the displayName is converted to title
This commit is contained in:
parent
ab00a4f665
commit
e35a5e99a6
@ -94,12 +94,19 @@ nameHtml displayName surname
|
|||||||
| null surname = toHtml displayName
|
| null surname = toHtml displayName
|
||||||
| otherwise = case reverse $ T.splitOn surname displayName of
|
| otherwise = case reverse $ T.splitOn surname displayName of
|
||||||
[_notContained]
|
[_notContained]
|
||||||
| (suffix:prefixes) <- reverse $ T.splitOn (T.toTitle surname) (T.toTitle displayName) ->
|
| (suffix:prefixes) <- reverse $ T.splitOn (T.toTitle surname) (T.toTitle displayName), notNull prefixes ->
|
||||||
let prefix = T.intercalate surname $ reverse prefixes
|
let prefix = T.intercalate surname $ reverse prefixes
|
||||||
in [shamlet|$newline never
|
in [shamlet|$newline never
|
||||||
#{prefix}
|
#{prefix} #
|
||||||
<b .surname>#{surname}
|
<b .surname>#{surname}
|
||||||
#{suffix}
|
\ #{suffix}
|
||||||
|
|]
|
||||||
|
| (suffix:prefixes) <- reverse $ T.splitOn (fullyNormalize surname) (fullyNormalize displayName), notNull prefixes ->
|
||||||
|
let prefix = T.intercalate surname $ reverse prefixes
|
||||||
|
in [shamlet|$newline never
|
||||||
|
#{prefix} #
|
||||||
|
<b .surname>#{surname}
|
||||||
|
\ #{suffix}
|
||||||
|]
|
|]
|
||||||
| otherwise -> [shamlet|$newline never
|
| otherwise -> [shamlet|$newline never
|
||||||
#{displayName} (
|
#{displayName} (
|
||||||
@ -108,11 +115,14 @@ nameHtml displayName surname
|
|||||||
(suffix:prefixes) ->
|
(suffix:prefixes) ->
|
||||||
let prefix = T.intercalate surname $ reverse prefixes
|
let prefix = T.intercalate surname $ reverse prefixes
|
||||||
in [shamlet|$newline never
|
in [shamlet|$newline never
|
||||||
#{prefix}
|
#{prefix} #
|
||||||
<b .surname>#{surname}
|
<b .surname>#{surname}
|
||||||
#{suffix}
|
\ #{suffix}
|
||||||
|]
|
|]
|
||||||
[] -> error "Data.Text.splitOn returned empty list in violation of specification."
|
[] -> error "Data.Text.splitOn returned empty list in violation of specification."
|
||||||
|
where
|
||||||
|
fullyNormalize :: Text -> Text
|
||||||
|
fullyNormalize = T.toTitle . T.unwords . map text2asciiAlphaNum . T.words
|
||||||
|
|
||||||
nameHtml' :: HasUser u => u -> Html
|
nameHtml' :: HasUser u => u -> Html
|
||||||
nameHtml' u = nameHtml (u ^. _userDisplayName) (u ^. _userSurname)
|
nameHtml' u = nameHtml (u ^. _userDisplayName) (u ^. _userSurname)
|
||||||
|
|||||||
Reference in New Issue
Block a user