From 098cbcdc21effeebe7e57fbd912a785e85cbfc5d Mon Sep 17 00:00:00 2001 From: hmhealey Date: Mon, 13 Jul 2015 17:47:57 -0400 Subject: Unify all locations where we determine a user's display named based off of their nickname/username into a helper function --- api/team.go | 7 +------ model/user.go | 8 ++++++++ model/user_test.go | 13 +++++++++++++ web/react/components/member_list_team.jsx | 4 ++-- web/react/components/sidebar.jsx | 4 ++-- web/react/utils/utils.jsx | 8 +++++++- 6 files changed, 33 insertions(+), 11 deletions(-) diff --git a/api/team.go b/api/team.go index dc7804b4d..7a4cabf7e 100644 --- a/api/team.go +++ b/api/team.go @@ -487,12 +487,7 @@ func InviteMembers(team *model.Team, user *model.User, invites []string) { teamUrl = fmt.Sprintf("http://%v.%v", team.Domain, utils.Cfg.ServiceSettings.Domain) } - sender := "" - if len(strings.TrimSpace(user.Nickname)) == 0 { - sender = user.Username - } else { - sender = user.Nickname - } + sender := user.GetDisplayName() senderRole := "" if strings.Contains(user.Roles, model.ROLE_ADMIN) || strings.Contains(user.Roles, model.ROLE_SYSTEM_ADMIN) { diff --git a/model/user.go b/model/user.go index 5422f68a5..5b603cd92 100644 --- a/model/user.go +++ b/model/user.go @@ -237,6 +237,14 @@ func (u *User) AddNotifyProp(key string, value string) { u.NotifyProps[key] = value } +func (u *User) GetDisplayName() string { + if u.Nickname != "" { + return u.Nickname + } else { + return u.Username + } +} + // UserFromJson will decode the input and return a User func UserFromJson(data io.Reader) *User { decoder := json.NewDecoder(data) diff --git a/model/user_test.go b/model/user_test.go index 4db099f97..a0c62676a 100644 --- a/model/user_test.go +++ b/model/user_test.go @@ -107,3 +107,16 @@ func TestUserIsValid(t *testing.T) { t.Fatal(err) } } + +func TestUserGetDisplayName(t *testing.T) { + user := User{FirstName: "first", LastName: "last", Username: "user"} + + if displayName := user.GetDisplayName(); displayName != "user" { + t.Fatal("Display name should be username") + } + + user.Nickname = "nickname" + if displayName := user.GetDisplayName(); displayName != "nickname" { + t.Fatal("Display name should be nickname") + } +} diff --git a/web/react/components/member_list_team.jsx b/web/react/components/member_list_team.jsx index 8d69a36d3..6f1d83193 100644 --- a/web/react/components/member_list_team.jsx +++ b/web/react/components/member_list_team.jsx @@ -85,8 +85,8 @@ var MemberListTeamItem = React.createClass({ return (
- {user.nickname.trim() ? user.nickname : user.username} - {user.nickname.trim() ? user.username : email} + {utils.getDisplayName(user)} + {email}
{currentRoles} diff --git a/web/react/components/sidebar.jsx b/web/react/components/sidebar.jsx index 742720048..65727c597 100644 --- a/web/react/components/sidebar.jsx +++ b/web/react/components/sidebar.jsx @@ -131,7 +131,7 @@ function getStateFromStores() { var channel = ChannelStore.getByName(channelName); if (channel != null) { - channel.display_name = teammate.nickname.trim() != "" ? teammate.nickname : teammate.username; + channel.display_name = utils.getDisplayName(teammate); channel.teammate_username = teammate.username; channel.status = UserStore.getStatus(teammate.id); @@ -150,7 +150,7 @@ function getStateFromStores() { var tempChannel = {}; tempChannel.fake = true; tempChannel.name = channelName; - tempChannel.display_name = teammate.nickname.trim() != "" ? teammate.nickname : teammate.username; + tempChannel.display_name = utils.getDisplayName(teammate); tempChannel.status = UserStore.getStatus(teammate.id); tempChannel.last_post_at = 0; readDirectChannels.push(tempChannel); diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 7186251e7..5a1a7ee73 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -796,7 +796,6 @@ module.exports.getHomeLink = function() { return window.location.protocol + "//" + parts.join("."); } - module.exports.changeColor =function(col, amt) { var usePound = false; @@ -824,5 +823,12 @@ module.exports.changeColor =function(col, amt) { else if (g < 0) g = 0; return (usePound?"#":"") + String("000000" + (g | (b << 8) | (r << 16)).toString(16)).slice(-6); +}; +module.exports.getDisplayName = function(user) { + if (user.nickname && user.nickname.trim().length > 0) { + return user.nickname; + } else { + return user.username; + } }; -- cgit v1.2.3-1-g7c22