Unify all locations where we determine a user's display named based off of their nickname/username into a helper function

This commit is contained in:
hmhealey
2015-07-13 17:47:57 -04:00
parent abcb44089c
commit 098cbcdc21
6 changed files with 34 additions and 12 deletions

View File

@@ -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) {

View File

@@ -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)

View File

@@ -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")
}
}

View File

@@ -85,8 +85,8 @@ var MemberListTeamItem = React.createClass({
return (
<div className="row member-div">
<img className="post-profile-img pull-left" src={"/api/v1/users/" + user.id + "/image?time=" + timestamp} height="36" width="36" />
<span className="member-name">{user.nickname.trim() ? user.nickname : user.username}</span>
<span className="member-email">{user.nickname.trim() ? user.username : email}</span>
<span className="member-name">{utils.getDisplayName(user)}</span>
<span className="member-email">{email}</span>
<div className="dropdown member-drop">
<a href="#" className="dropdown-toggle theme" type="button" id="channel_header_dropdown" data-toggle="dropdown" aria-expanded="true">
<span>{currentRoles} </span>

View File

@@ -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);

View File

@@ -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;
}
};