mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 01:44:10 -05:00
661e78bed5
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">
217 lines
8.9 KiB
Handlebars
217 lines
8.9 KiB
Handlebars
<form class="ui comment form stackable grid" id="new-issue" action="{{.Link}}" method="post">
|
|
{{.CsrfTokenHtml}}
|
|
{{if .Flash}}
|
|
<div class="sixteen wide column">
|
|
{{template "base/alert" .}}
|
|
</div>
|
|
{{end}}
|
|
<div class="twelve wide column">
|
|
<div class="ui comments">
|
|
<div class="comment">
|
|
{{template "shared/user/avatarlink" Dict "Context" $.Context "user" .SignedUser}}
|
|
<div class="ui segment content">
|
|
<div class="field">
|
|
<input name="title" id="issue_title" placeholder="{{.locale.Tr "repo.milestones.title"}}" value="{{if .TitleQuery}}{{.TitleQuery}}{{else if .IssueTemplateTitle}}{{.IssueTemplateTitle}}{{else}}{{.title}}{{end}}" tabindex="3" autofocus required maxlength="255" autocomplete="off">
|
|
{{if .PageIsComparePull}}
|
|
<div class="title_wip_desc" data-wip-prefixes="{{Json .PullRequestWorkInProgressPrefixes}}">{{.locale.Tr "repo.pulls.title_wip_desc" (index .PullRequestWorkInProgressPrefixes 0| Escape) | Safe}}</div>
|
|
{{end}}
|
|
</div>
|
|
{{template "repo/issue/comment_tab" .}}
|
|
<div class="text right">
|
|
<button class="ui green button loading-button" tabindex="6">
|
|
{{if .PageIsComparePull}}
|
|
{{.locale.Tr "repo.pulls.create"}}
|
|
{{else}}
|
|
{{.locale.Tr "repo.issues.create"}}
|
|
{{end}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="four wide column">
|
|
<div class="ui segment metas">
|
|
{{template "repo/issue/branch_selector_field" .}}
|
|
|
|
<input id="label_ids" name="label_ids" type="hidden" value="{{.label_ids}}">
|
|
{{template "repo/issue/labels/labels_selector_field" .}}
|
|
{{template "repo/issue/labels/labels_sidebar" dict "root" $}}
|
|
|
|
<div class="ui divider"></div>
|
|
|
|
<input id="milestone_id" name="milestone_id" type="hidden" value="{{.milestone_id}}">
|
|
<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-milestone dropdown">
|
|
<span class="text">
|
|
<strong>{{.locale.Tr "repo.issues.new.milestone"}}</strong>
|
|
{{if .HasIssuesOrPullsWritePermission}}
|
|
{{svg "octicon-gear"}}
|
|
{{end}}
|
|
</span>
|
|
<div class="menu">
|
|
<div class="header" style="text-transform: none;font-size:16px;">{{.locale.Tr "repo.issues.new.add_milestone_title"}}</div>
|
|
{{if or .OpenMilestones .ClosedMilestones}}
|
|
<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_milestones"}}">
|
|
</div>
|
|
{{end}}
|
|
<div class="no-select item">{{.locale.Tr "repo.issues.new.clear_milestone"}}</div>
|
|
{{if and (not .OpenMilestones) (not .ClosedMilestones)}}
|
|
<div class="header" style="text-transform: none;font-size:14px;">
|
|
{{.locale.Tr "repo.issues.new.no_items"}}
|
|
</div>
|
|
{{else}}
|
|
{{if .OpenMilestones}}
|
|
<div class="divider"></div>
|
|
<div class="header">
|
|
{{.locale.Tr "repo.issues.new.open_milestone"}}
|
|
</div>
|
|
{{range .OpenMilestones}}
|
|
<a class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}">
|
|
{{svg "octicon-milestone" 16 "gt-mr-2"}}
|
|
{{.Name}}
|
|
</a>
|
|
{{end}}
|
|
{{end}}
|
|
{{if .ClosedMilestones}}
|
|
<div class="divider"></div>
|
|
<div class="header">
|
|
{{.locale.Tr "repo.issues.new.closed_milestone"}}
|
|
</div>
|
|
{{range .ClosedMilestones}}
|
|
<a class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}">
|
|
{{svg "octicon-milestone" 16 "gt-mr-2"}}
|
|
{{.Name}}
|
|
</a>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="ui select-milestone list">
|
|
<span class="no-select item {{if .Milestone}}gt-hidden{{end}}">{{.locale.Tr "repo.issues.new.no_milestone"}}</span>
|
|
<div class="selected">
|
|
{{if .Milestone}}
|
|
<a class="item muted sidebar-item-link" href="{{.RepoLink}}/issues?milestone={{.Milestone.ID}}">
|
|
{{svg "octicon-milestone" 18 "gt-mr-3"}}
|
|
{{.Milestone.Name}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
|
|
{{if .IsProjectsEnabled}}
|
|
<div class="ui divider"></div>
|
|
|
|
<input id="project_id" name="project_id" type="hidden" value="{{.project_id}}">
|
|
<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-project dropdown">
|
|
<span class="text">
|
|
<strong>{{.locale.Tr "repo.issues.new.projects"}}</strong>
|
|
{{if .HasIssuesOrPullsWritePermission}}
|
|
{{svg "octicon-gear"}}
|
|
{{end}}
|
|
</span>
|
|
<div class="menu">
|
|
<div class="header" style="text-transform: none;font-size:16px;">{{.locale.Tr "repo.issues.new.add_project_title"}}</div>
|
|
{{if or .OpenProjects .ClosedProjects}}
|
|
<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_projects"}}">
|
|
</div>
|
|
{{end}}
|
|
<div class="no-select item">{{.locale.Tr "repo.issues.new.clear_projects"}}</div>
|
|
{{if and (not .OpenProjects) (not .ClosedProjects)}}
|
|
<div class="header" style="text-transform: none;font-size:14px;">
|
|
{{.locale.Tr "repo.issues.new.no_items"}}
|
|
</div>
|
|
{{else}}
|
|
{{if .OpenProjects}}
|
|
<div class="divider"></div>
|
|
<div class="header">
|
|
{{.locale.Tr "repo.issues.new.open_projects"}}
|
|
</div>
|
|
{{range .OpenProjects}}
|
|
<a class="item muted sidebar-item-link" data-id="{{.ID}}" data-href="{{.Link}}">
|
|
{{if .IsOrganizationProject}}{{svg "octicon-project-symlink" 18 "gt-mr-3"}}{{else}}{{svg "octicon-project" 18 "gt-mr-3"}}{{end}}
|
|
{{.Title}}
|
|
</a>
|
|
{{end}}
|
|
{{end}}
|
|
{{if .ClosedProjects}}
|
|
<div class="divider"></div>
|
|
<div class="header">
|
|
{{.locale.Tr "repo.issues.new.closed_projects"}}
|
|
</div>
|
|
{{range .ClosedProjects}}
|
|
<a class="item muted sidebar-item-link" data-id="{{.ID}}" data-href="{{.Link}}">
|
|
{{if .IsOrganizationProject}}{{svg "octicon-project-symlink" 18 "gt-mr-3"}}{{else}}{{svg "octicon-project" 18 "gt-mr-3"}}{{end}}
|
|
{{.Title}}
|
|
</a>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="ui select-project list">
|
|
<span class="no-select item {{if .Project}}gt-hidden{{end}}">{{.locale.Tr "repo.issues.new.no_projects"}}</span>
|
|
<div class="selected">
|
|
{{if .Project}}
|
|
<a class="item muted sidebar-item-link" href="{{.Project.Link}}">
|
|
{{if .IsOrganizationProject}}{{svg "octicon-project-symlink" 18 "gt-mr-3"}}{{else}}{{svg "octicon-project" 18 "gt-mr-3"}}{{end}}
|
|
{{.Project.Title}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
<div class="ui divider"></div>
|
|
<input id="assignee_ids" name="assignee_ids" type="hidden" value="{{.assignee_ids}}">
|
|
<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-assignees dropdown">
|
|
<span class="text">
|
|
<strong>{{.locale.Tr "repo.issues.new.assignees"}}</strong>
|
|
{{if .HasIssuesOrPullsWritePermission}}
|
|
{{svg "octicon-gear"}}
|
|
{{end}}
|
|
</span>
|
|
<div class="filter menu" data-id="#assignee_ids">
|
|
<div class="header" style="text-transform: none;font-size:16px;">{{.locale.Tr "repo.issues.new.add_assignees_title"}}</div>
|
|
<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_assignees"}}">
|
|
</div>
|
|
<div class="no-select item">{{.locale.Tr "repo.issues.new.clear_assignees"}}</div>
|
|
{{range .Assignees}}
|
|
<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"}}{{template "repo/search_name" .}}
|
|
</span>
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="ui assignees list">
|
|
<span class="no-select item {{if .HasSelectedLabel}}gt-hidden{{end}}">
|
|
{{.locale.Tr "repo.issues.new.no_assignees"}}
|
|
</span>
|
|
{{range .Assignees}}
|
|
<a class="item gt-p-2 muted gt-hidden" id="assignee_{{.ID}}" href="{{$.RepoLink}}/issues?assignee={{.ID}}">
|
|
{{avatar $.Context . 28 "gt-mr-3 gt-vm"}}{{.GetDisplayName}}
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
{{if and .PageIsComparePull (not (eq .HeadRepo.FullName .BaseCompareRepo.FullName)) .CanWriteToHeadRepo}}
|
|
<div class="ui divider"></div>
|
|
<div class="inline field">
|
|
<div class="ui checkbox">
|
|
<label class="tooltip" data-content="{{.locale.Tr "repo.pulls.allow_edits_from_maintainers_desc"}}"><strong>{{.locale.Tr "repo.pulls.allow_edits_from_maintainers"}}</strong></label>
|
|
<input name="allow_maintainer_edit" type="checkbox" {{if .AllowMaintainerEdit}}checked{{end}}>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
<input type="hidden" name="redirect_after_creation" value="{{.redirect_after_creation}}">
|
|
</div>
|
|
</form>
|