This PR adds the ability to search both fullname and username for
assignees, reviewers and author search boxes when the config
[`DEFAULT_SHOW_FULL_NAME`](6ff5400af9/custom/conf/app.example.ini (L1238))
in `app.ini` is set to `true`. Which is originally raised
[here](https://projects.blender.org/infrastructure/blender-projects-platform/issues/14)
And if `DEFAULT_SHOW_FULL_NAME` is set to `false`(default value), these
search boxes will only show username.
Example:
When `DEFAULT_SHOW_FULL_NAME = true`
<img width="1220" alt="截屏2023-03-14 14 28 06"
src="https://user-images.githubusercontent.com/17645053/224914546-80ef2837-ab72-4d66-9f00-6eb77ed4baaa.png">
When `DEFAULT_SHOW_FULL_NAME = false` (default value)
<img width="1243" alt="截屏2023-03-14 14 29 37"
src="https://user-images.githubusercontent.com/17645053/224914798-f69ec8a2-0929-4330-827c-3e30188f9b47.png">
The specific search boxes that adapts these changes include:
1. Author, Assignee search boxes in pull requests tab and issues tab in
repository
<img width="1283" alt="截屏2023-03-14 14 35 01"
src="https://user-images.githubusercontent.com/17645053/224916250-8e452525-71d6-4b48-bf1c-bf7a176abaaa.png">
2. Assigee and Author on milestones issue page (Added missing search box
for author here)
<img width="1261" alt="截屏2023-03-14 14 38 20"
src="https://user-images.githubusercontent.com/17645053/224916569-d3105619-7824-4bb8-a6d0-1a600eaa9963.png">
3. Assignee on issues and PR Sidebar, Reviewer on PR Sidebar
<img width="976" alt="截屏2023-03-14 14 41 06"
src="https://user-images.githubusercontent.com/17645053/224917431-c45d821e-9660-4f58-a196-5979a0bb64ce.png">
<img width="1027" alt="截屏2023-03-14 14 41 58"
src="https://user-images.githubusercontent.com/17645053/224917290-ad4dbc52-0c20-45c4-9fce-9dcd59ad7d47.png">
4. Assignee when creating new issue
<img width="961" alt="截屏2023-03-14 14 44 33"
src="https://user-images.githubusercontent.com/17645053/224917694-34bee5a7-e975-4f37-8862-56ebc2556808.png">
5. Whitelisted users for pushing, Whitelisted users for merging and
Whitelisted reviewers in Protected branch settings
<img width="920" alt="截屏2023-03-14 14 48 56"
src="https://user-images.githubusercontent.com/17645053/224918551-9b46b44e-b075-4895-8d33-1aafc7d3c8e5.png">
<img width="901" alt="截屏2023-03-14 14 49 02"
src="https://user-images.githubusercontent.com/17645053/224918584-efa66f23-a593-4e26-a3eb-bb1fbc5516ae.png">
<img width="944" alt="截屏2023-03-14 14 49 21"
src="https://user-images.githubusercontent.com/17645053/224918591-be60455d-0513-4f66-84f6-b5e1bc40ff91.png">
6. "Allowed users" in tags settings
<img width="935" alt="截屏2023-03-14 14 50 11"
src="https://user-images.githubusercontent.com/17645053/224918701-797699aa-c7e5-4290-b3fe-27dcead1c6c7.png">
tags/v1.20.0-rc0
@@ -109,6 +109,9 @@ func NewFuncMap() []template.FuncMap { | |||
"CustomEmojis": func() map[string]string { | |||
return setting.UI.CustomEmojisMap | |||
}, | |||
"IsShowFullName": func() bool { | |||
return setting.UI.DefaultShowFullName | |||
}, | |||
"Safe": Safe, | |||
"SafeJS": SafeJS, | |||
"JSEscape": JSEscape, |
@@ -134,7 +134,7 @@ | |||
<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&project={{$.ProjectID}}&assignee={{$.AssigneeID}}">{{.locale.Tr "repo.issues.filter_poster_no_select"}}</a> | |||
{{range .Posters}} | |||
<a class="{{if eq $.PosterID .ID}}active selected{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&project={{$.ProjectID}}&assignee={{$.AssigneeID}}&poster={{.ID}}"> | |||
{{avatar $.Context .}} {{.GetDisplayName}} | |||
{{avatar $.Context .}}{{template "repo/search_name" .}} | |||
</a> | |||
{{end}} | |||
</div> | |||
@@ -154,7 +154,7 @@ | |||
<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&project={{$.ProjectID}}&poster={{$.PosterID}}">{{.locale.Tr "repo.issues.filter_assginee_no_select"}}</a> | |||
{{range .Assignees}} | |||
<a class="{{if eq $.AssigneeID .ID}}active selected{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&project={{$.ProjectID}}&assignee={{.ID}}&poster={{$.PosterID}}"> | |||
{{avatar $.Context .}} {{.GetDisplayName}} | |||
{{avatar $.Context .}}{{template "repo/search_name" .}} | |||
</a> | |||
{{end}} | |||
</div> |
@@ -70,10 +70,14 @@ | |||
{{svg "octicon-triangle-down" 14 "dropdown icon"}} | |||
</span> | |||
<div class="menu"> | |||
<div class="ui icon search input"> | |||
<i class="icon gt-df gt-ac gt-jc">{{svg "octicon-search" 16}}</i> | |||
<input type="text" placeholder="{{.locale.Tr "repo.issues.filter_poster"}}"> | |||
</div> | |||
<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&assignee={{$.AssigneeID}}">{{.locale.Tr "repo.issues.filter_poster_no_select"}}</a> | |||
{{range .Posters}} | |||
<a class="{{if eq $.PosterID .ID}}active selected{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&assignee={{$.AssigneeID}}&poster={{.ID}}"> | |||
{{avatar $.Context .}} {{.GetDisplayName}} | |||
{{avatar $.Context .}}{{template "repo/search_name" .}} | |||
</a> | |||
{{end}} | |||
</div> | |||
@@ -93,8 +97,7 @@ | |||
<a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&poster={{$.PosterID}}">{{.locale.Tr "repo.issues.filter_assginee_no_select"}}</a> | |||
{{range .Assignees}} | |||
<a class="{{if eq $.AssigneeID .ID}}active selected{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&assignee={{.ID}}&poster={{$.PosterID}}"> | |||
{{avatar $.Context . 28 "gt-mr-2"}} | |||
{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "gt-mr-2"}}{{template "repo/search_name" .}} | |||
</a> | |||
{{end}} | |||
</div> |
@@ -186,7 +186,7 @@ | |||
<a class="item muted" href="#" data-id="{{.ID}}" data-id-selector="#assignee_{{.ID}}"> | |||
<span class="octicon-check invisible">{{svg "octicon-check"}}</span> | |||
<span class="text"> | |||
{{avatar $.Context . 28 "gt-mr-3"}}{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "gt-mr-3"}}{{template "repo/search_name" .}} | |||
</span> | |||
</a> | |||
{{end}} |
@@ -26,8 +26,7 @@ | |||
<a class="{{if not .CanChange}}ui tooltip{{end}} item {{if .Checked}} checked {{end}} {{if not .CanChange}}ban-change{{end}}" href="#" data-id="{{.ItemID}}" data-id-selector="#review_request_{{.ItemID}}" {{if not .CanChange}} data-content="{{$.locale.Tr "repo.issues.remove_request_review_block"}}"{{end}}> | |||
<span class="octicon-check {{if not .Checked}}invisible{{end}}">{{svg "octicon-check"}}</span> | |||
<span class="text"> | |||
{{avatar $.Context .User 28 "gt-mr-3"}} | |||
{{.User.GetDisplayName}} | |||
{{avatar $.Context .User 28 "gt-mr-3"}}{{template "repo/search_name" .User}} | |||
</span> | |||
</a> | |||
{{end}} | |||
@@ -258,8 +257,7 @@ | |||
{{end}} | |||
<span class="octicon-check {{if not $checked}}invisible{{end}}">{{svg "octicon-check"}}</span> | |||
<span class="text"> | |||
{{avatar $.Context . 28 "gt-mr-3"}} | |||
{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "gt-mr-3"}}{{template "repo/search_name" .}} | |||
</span> | |||
</a> | |||
{{end}} |
@@ -0,0 +1 @@ | |||
{{.Name}}{{if IsShowFullName}}<span class="search-fullname"> {{.FullName}}</span>{{end}} |
@@ -49,8 +49,7 @@ | |||
<div class="menu"> | |||
{{range .Users}} | |||
<div class="item" data-value="{{.ID}}"> | |||
{{avatar $.Context . 28 "mini"}} | |||
{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "mini"}}{{template "repo/search_name" .}} | |||
</div> | |||
{{end}} | |||
</div> | |||
@@ -101,8 +100,7 @@ | |||
<div class="menu"> | |||
{{range .Users}} | |||
<div class="item" data-value="{{.ID}}"> | |||
{{avatar $.Context . 28 "mini"}} | |||
{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "mini"}}{{template "repo/search_name" .}} | |||
</div> | |||
{{end}} | |||
</div> | |||
@@ -181,8 +179,7 @@ | |||
<div class="menu"> | |||
{{range .Users}} | |||
<div class="item" data-value="{{.ID}}"> | |||
{{avatar $.Context . 28 "mini"}} | |||
{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "mini"}}{{template "repo/search_name" .}} | |||
</div> | |||
{{end}} | |||
</div> |
@@ -36,8 +36,7 @@ | |||
<div class="menu"> | |||
{{range .Users}} | |||
<div class="item" data-value="{{.ID}}"> | |||
{{avatar $.Context . 28 "mini"}} | |||
{{.GetDisplayName}} | |||
{{avatar $.Context . 28 "mini"}}{{template "repo/search_name" .}} | |||
</div> | |||
{{end}} | |||
</div> |
@@ -3627,3 +3627,7 @@ td.blob-excerpt { | |||
.pr-status .status-details > span { | |||
padding-right: 0.5em; /* To match the alignment with the "required" label */ | |||
} | |||
.search-fullname { | |||
color: var(--color-text-light-2); | |||
} |