mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 02:04:11 +01:00 
			
		
		
		
	Improve user search display name (#29002)
I tripped over this strange method and I don't think we need that workaround to fix the value. old:  new:  --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		
							parent
							
								
									3a66762130
								
							
						
					
					
						commit
						c3e462921e
					
				@ -11,14 +11,6 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RemoveUsernameParameterSuffix returns the username parameter without the (fullname) suffix - leaving just the username
 | 
			
		||||
func RemoveUsernameParameterSuffix(name string) string {
 | 
			
		||||
	if index := strings.Index(name, " ("); index >= 0 {
 | 
			
		||||
		name = name[:index]
 | 
			
		||||
	}
 | 
			
		||||
	return name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SanitizeFlashErrorString will sanitize a flash error string
 | 
			
		||||
func SanitizeFlashErrorString(x string) string {
 | 
			
		||||
	return strings.ReplaceAll(html.EscapeString(x), "\n", "<br>")
 | 
			
		||||
 | 
			
		||||
@ -11,12 +11,6 @@ import (
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestRemoveUsernameParameterSuffix(t *testing.T) {
 | 
			
		||||
	assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar (Foo Bar)"))
 | 
			
		||||
	assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar"))
 | 
			
		||||
	assert.Equal(t, "", RemoveUsernameParameterSuffix(""))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestIsExternalURL(t *testing.T) {
 | 
			
		||||
	setting.AppURL = "https://try.gitea.io/"
 | 
			
		||||
	type test struct {
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,6 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/modules/web"
 | 
			
		||||
	"code.gitea.io/gitea/routers/utils"
 | 
			
		||||
	shared_user "code.gitea.io/gitea/routers/web/shared/user"
 | 
			
		||||
	"code.gitea.io/gitea/services/convert"
 | 
			
		||||
	"code.gitea.io/gitea/services/forms"
 | 
			
		||||
@ -127,7 +126,7 @@ func TeamsAction(ctx *context.Context) {
 | 
			
		||||
			ctx.Error(http.StatusNotFound)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		uname := utils.RemoveUsernameParameterSuffix(strings.ToLower(ctx.FormString("uname")))
 | 
			
		||||
		uname := strings.ToLower(ctx.FormString("uname"))
 | 
			
		||||
		var u *user_model.User
 | 
			
		||||
		u, err = user_model.GetUserByName(ctx, uname)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,6 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	repo_module "code.gitea.io/gitea/modules/repository"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/routers/utils"
 | 
			
		||||
	"code.gitea.io/gitea/services/mailer"
 | 
			
		||||
	org_service "code.gitea.io/gitea/services/org"
 | 
			
		||||
	repo_service "code.gitea.io/gitea/services/repository"
 | 
			
		||||
@ -52,7 +51,7 @@ func Collaboration(ctx *context.Context) {
 | 
			
		||||
 | 
			
		||||
// CollaborationPost response for actions for a collaboration of a repository
 | 
			
		||||
func CollaborationPost(ctx *context.Context) {
 | 
			
		||||
	name := utils.RemoveUsernameParameterSuffix(strings.ToLower(ctx.FormString("collaborator")))
 | 
			
		||||
	name := strings.ToLower(ctx.FormString("collaborator"))
 | 
			
		||||
	if len(name) == 0 || ctx.Repo.Owner.LowerName == name {
 | 
			
		||||
		ctx.Redirect(setting.AppSubURL + ctx.Req.URL.EscapedPath())
 | 
			
		||||
		return
 | 
			
		||||
@ -144,7 +143,7 @@ func AddTeamPost(ctx *context.Context) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	name := utils.RemoveUsernameParameterSuffix(strings.ToLower(ctx.FormString("team")))
 | 
			
		||||
	name := strings.ToLower(ctx.FormString("team"))
 | 
			
		||||
	if len(name) == 0 {
 | 
			
		||||
		ctx.Redirect(ctx.Repo.RepoLink + "/settings/collaboration")
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
@ -196,10 +196,14 @@ a.label,
 | 
			
		||||
.ui.search > .results {
 | 
			
		||||
  background: var(--color-body);
 | 
			
		||||
  border-color: var(--color-secondary);
 | 
			
		||||
  overflow-wrap: anywhere; /* allow text to wrap as fomantic limits this to 18em width */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ui.search > .results .result {
 | 
			
		||||
  background: var(--color-body);
 | 
			
		||||
  border-color: var(--color-secondary);
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ui.search > .results .result .title {
 | 
			
		||||
 | 
			
		||||
@ -2128,14 +2128,16 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#search-user-box .results .result .image {
 | 
			
		||||
  float: left;
 | 
			
		||||
  margin-right: 8px;
 | 
			
		||||
  order: 0;
 | 
			
		||||
  margin-right: 12px;
 | 
			
		||||
  width: 2em;
 | 
			
		||||
  height: 2em;
 | 
			
		||||
  min-width: 2em;
 | 
			
		||||
  min-height: 2em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#search-user-box .results .result .content {
 | 
			
		||||
  margin: 6px 0; /* this trick is used to align with the sibling avatar image */
 | 
			
		||||
  margin: 0; /* remove margin reserved for avatar because we move it to left via `order: 0` */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ui.menu .item > img:not(.ui) {
 | 
			
		||||
 | 
			
		||||
@ -17,14 +17,13 @@ export function initCompSearchUserBox() {
 | 
			
		||||
        const searchQuery = $searchUserBox.find('input').val();
 | 
			
		||||
        const searchQueryUppercase = searchQuery.toUpperCase();
 | 
			
		||||
        $.each(response.data, (_i, item) => {
 | 
			
		||||
          let title = item.login;
 | 
			
		||||
          if (item.full_name && item.full_name.length > 0) {
 | 
			
		||||
            title += ` (${htmlEscape(item.full_name)})`;
 | 
			
		||||
          }
 | 
			
		||||
          const resultItem = {
 | 
			
		||||
            title,
 | 
			
		||||
            title: item.login,
 | 
			
		||||
            image: item.avatar_url
 | 
			
		||||
          };
 | 
			
		||||
          if (item.full_name) {
 | 
			
		||||
            resultItem.description = htmlEscape(item.full_name);
 | 
			
		||||
          }
 | 
			
		||||
          if (searchQueryUppercase === item.login.toUpperCase()) {
 | 
			
		||||
            items.unshift(resultItem);
 | 
			
		||||
          } else {
 | 
			
		||||
 | 
			
		||||
@ -52,9 +52,9 @@ export function initRepoSettingSearchTeamBox() {
 | 
			
		||||
      onResponse(response) {
 | 
			
		||||
        const items = [];
 | 
			
		||||
        $.each(response.data, (_i, item) => {
 | 
			
		||||
          const title = `${item.name} (${item.permission} access)`;
 | 
			
		||||
          items.push({
 | 
			
		||||
            title,
 | 
			
		||||
            title: item.name,
 | 
			
		||||
            description: `${item.permission} access` // TODO: translate this string
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user