Move global issue/pull sidebar filter into an option (#4096)
Sidebar repo filtering was removed in gitea1.22-legacy, so in Forgejo 7.0. Now it only has filtering based on issue/pull type (created by me, i'm assigned..), which can easily fit into a regular filtering option to be consistent with other UI pages: subscriptions and repo issues. * move these filtering from sidebar to a "Type" option. You can find the same option in repo issues Affected pages (you can view how "Before" looks like here): * https://codeberg.org/issues * https://codeberg.org/pulls * https://codeberg.org/org/forgejo/issues * https://codeberg.org/org/forgejo/pulls ## Preview https://codeberg.org/attachments/652db186-9bd4-414b-ae0e-06a11f9c1abd https://codeberg.org/attachments/76c2b040-0900-4fed-aa69-e76d31072fa7 ## The inspiration This PR improves consistency with repo issues/pulls view: https://codeberg.org/attachments/2f503ca7-89a0-4c0a-ad37-b0d7755e044d Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4096 Reviewed-by: Mai-Lapyst <mai-lapyst@noreply.codeberg.org>
This commit is contained in:
		
							parent
							
								
									221ca0c404
								
							
						
					
					
						commit
						291e145ac5
					
				
					 1 changed files with 74 additions and 71 deletions
				
			
		| 
						 | 
				
			
			@ -3,84 +3,87 @@
 | 
			
		|||
	{{template "user/dashboard/navbar" .}}
 | 
			
		||||
	<div class="ui container">
 | 
			
		||||
		{{template "base/alert" .}}
 | 
			
		||||
		<div class="flex-container">
 | 
			
		||||
			<div class="flex-container-nav">
 | 
			
		||||
				<div class="ui secondary vertical filter menu tw-bg-transparent">
 | 
			
		||||
					<a class="{{if eq .ViewType "your_repositories"}}active{{end}} item" href="?type=your_repositories&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
						{{ctx.Locale.Tr "home.issues.in_your_repos"}}
 | 
			
		||||
						<strong>{{CountFmt .IssueStats.YourRepositoriesCount}}</strong>
 | 
			
		||||
					</a>
 | 
			
		||||
					<a class="{{if eq .ViewType "assigned"}}active{{end}} item" href="?type=assigned&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
						{{ctx.Locale.Tr "repo.issues.filter_type.assigned_to_you"}}
 | 
			
		||||
						<strong>{{CountFmt .IssueStats.AssignCount}}</strong>
 | 
			
		||||
					</a>
 | 
			
		||||
					<a class="{{if eq .ViewType "created_by"}}active{{end}} item" href="?type=created_by&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
						{{ctx.Locale.Tr "repo.issues.filter_type.created_by_you"}}
 | 
			
		||||
						<strong>{{CountFmt .IssueStats.CreateCount}}</strong>
 | 
			
		||||
					</a>
 | 
			
		||||
					{{if .PageIsPulls}}
 | 
			
		||||
						<a class="{{if eq .ViewType "review_requested"}}active{{end}} item" href="?type=review_requested&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
							{{ctx.Locale.Tr "repo.issues.filter_type.review_requested"}}
 | 
			
		||||
							<strong>{{CountFmt .IssueStats.ReviewRequestedCount}}</strong>
 | 
			
		||||
						</a>
 | 
			
		||||
						<a class="{{if eq .ViewType "reviewed_by"}}active{{end}} item" href="?type=reviewed_by&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
							{{ctx.Locale.Tr "repo.issues.filter_type.reviewed_by_you"}}
 | 
			
		||||
							<strong>{{CountFmt .IssueStats.ReviewedCount}}</strong>
 | 
			
		||||
						</a>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					<a class="{{if eq .ViewType "mentioned"}}active{{end}} item" href="?type=mentioned&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
						{{ctx.Locale.Tr "repo.issues.filter_type.mentioning_you"}}
 | 
			
		||||
						<strong>{{CountFmt .IssueStats.MentionCount}}</strong>
 | 
			
		||||
					</a>
 | 
			
		||||
				</div>
 | 
			
		||||
		<div class="list-header">
 | 
			
		||||
			<div class="small-menu-items ui compact tiny menu list-header-toggle">
 | 
			
		||||
				<a class="item{{if not .IsShowClosed}} active{{end}}" href="?type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&q={{$.Keyword}}">
 | 
			
		||||
					{{svg "octicon-issue-opened" 16 "tw-mr-2"}}
 | 
			
		||||
					{{ctx.Locale.PrettyNumber .IssueStats.OpenCount}} {{ctx.Locale.Tr "repo.issues.open_title"}}
 | 
			
		||||
				</a>
 | 
			
		||||
				<a class="item{{if .IsShowClosed}} active{{end}}" href="?type={{$.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&q={{$.Keyword}}">
 | 
			
		||||
					{{svg "octicon-issue-closed" 16 "tw-mr-2"}}
 | 
			
		||||
					{{ctx.Locale.PrettyNumber .IssueStats.ClosedCount}} {{ctx.Locale.Tr "repo.issues.closed_title"}}
 | 
			
		||||
				</a>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="flex-container-main content">
 | 
			
		||||
				<div class="list-header">
 | 
			
		||||
					<div class="small-menu-items ui compact tiny menu list-header-toggle">
 | 
			
		||||
						<a class="item{{if not .IsShowClosed}} active{{end}}" href="?type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&q={{$.Keyword}}">
 | 
			
		||||
							{{svg "octicon-issue-opened" 16 "tw-mr-2"}}
 | 
			
		||||
							{{ctx.Locale.PrettyNumber .IssueStats.OpenCount}} {{ctx.Locale.Tr "repo.issues.open_title"}}
 | 
			
		||||
			<form class="list-header-search ui form ignore-dirty">
 | 
			
		||||
				<div class="ui small search fluid action input">
 | 
			
		||||
					<input type="hidden" name="type" value="{{$.ViewType}}">
 | 
			
		||||
					<input type="hidden" name="sort" value="{{$.SortType}}">
 | 
			
		||||
					<input type="hidden" name="state" value="{{$.State}}">
 | 
			
		||||
					{{template "shared/search/input" dict "Value" $.Keyword}}
 | 
			
		||||
					<button id="issue-list-quick-goto" class="ui small icon button tw-hidden" data-tooltip-content="{{ctx.Locale.Tr "explore.go_to"}}">{{svg "octicon-hash"}}</button>
 | 
			
		||||
					{{template "shared/search/button"}}
 | 
			
		||||
				</div>
 | 
			
		||||
			</form>
 | 
			
		||||
			<div class="ui secondary menu tw-mt-0">
 | 
			
		||||
				<!-- Label -->
 | 
			
		||||
				{{if .PageIsOrgIssues}}
 | 
			
		||||
				{{template "shared/label_filter" .}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
				<!-- Type -->
 | 
			
		||||
				<div class="list-header ui dropdown type jump item">
 | 
			
		||||
					<span class="text tw-whitespace-nowrap">
 | 
			
		||||
						{{ctx.Locale.Tr "repo.issues.filter_type"}}
 | 
			
		||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
					</span>
 | 
			
		||||
					<div class="ui menu">
 | 
			
		||||
						<a class="{{if eq .ViewType "your_repositories"}}active{{end}} item" href="?type=your_repositories&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
							<div class="ui circular mini label tw-ml-0">{{CountFmt .IssueStats.YourRepositoriesCount}}</div>
 | 
			
		||||
							{{ctx.Locale.Tr "home.issues.in_your_repos"}}
 | 
			
		||||
						</a>
 | 
			
		||||
						<a class="item{{if .IsShowClosed}} active{{end}}" href="?type={{$.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&q={{$.Keyword}}">
 | 
			
		||||
							{{svg "octicon-issue-closed" 16 "tw-mr-2"}}
 | 
			
		||||
							{{ctx.Locale.PrettyNumber .IssueStats.ClosedCount}} {{ctx.Locale.Tr "repo.issues.closed_title"}}
 | 
			
		||||
						<a class="{{if eq .ViewType "assigned"}}active{{end}} item" href="?type=assigned&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
							<div class="ui circular mini label tw-ml-0">{{CountFmt .IssueStats.AssignCount}}</div>
 | 
			
		||||
							{{ctx.Locale.Tr "repo.issues.filter_type.assigned_to_you"}}
 | 
			
		||||
						</a>
 | 
			
		||||
						<a class="{{if eq .ViewType "created_by"}}active{{end}} item" href="?type=created_by&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
							<div class="ui circular mini label tw-ml-0">{{CountFmt .IssueStats.CreateCount}}</div>
 | 
			
		||||
							{{ctx.Locale.Tr "repo.issues.filter_type.created_by_you"}}
 | 
			
		||||
						</a>
 | 
			
		||||
						{{if .PageIsPulls}}
 | 
			
		||||
							<a class="{{if eq .ViewType "review_requested"}}active{{end}} item" href="?type=review_requested&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
								<div class="ui circular mini label tw-ml-0">{{CountFmt .IssueStats.ReviewRequestedCount}}</div>
 | 
			
		||||
								{{ctx.Locale.Tr "repo.issues.filter_type.review_requested"}}
 | 
			
		||||
							</a>
 | 
			
		||||
							<a class="{{if eq .ViewType "reviewed_by"}}active{{end}} item" href="?type=reviewed_by&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
								<div class="ui circular mini label tw-ml-0">{{CountFmt .IssueStats.ReviewedCount}}</div>
 | 
			
		||||
								{{ctx.Locale.Tr "repo.issues.filter_type.reviewed_by_you"}}
 | 
			
		||||
							</a>
 | 
			
		||||
						{{end}}
 | 
			
		||||
						<a class="{{if eq .ViewType "mentioned"}}active{{end}} item" href="?type=mentioned&sort={{$.SortType}}&state={{.State}}&q={{$.Keyword}}">
 | 
			
		||||
							<div class="ui circular mini label tw-ml-0">{{CountFmt .IssueStats.MentionCount}}</div>
 | 
			
		||||
							{{ctx.Locale.Tr "repo.issues.filter_type.mentioning_you"}}
 | 
			
		||||
						</a>
 | 
			
		||||
					</div>
 | 
			
		||||
					<form class="list-header-search ui form ignore-dirty">
 | 
			
		||||
						<div class="ui small search fluid action input">
 | 
			
		||||
							<input type="hidden" name="type" value="{{$.ViewType}}">
 | 
			
		||||
							<input type="hidden" name="sort" value="{{$.SortType}}">
 | 
			
		||||
							<input type="hidden" name="state" value="{{$.State}}">
 | 
			
		||||
							{{template "shared/search/input" dict "Value" $.Keyword}}
 | 
			
		||||
							<button id="issue-list-quick-goto" class="ui small icon button tw-hidden" data-tooltip-content="{{ctx.Locale.Tr "explore.go_to"}}">{{svg "octicon-hash"}}</button>
 | 
			
		||||
							{{template "shared/search/button"}}
 | 
			
		||||
						</div>
 | 
			
		||||
					</form>
 | 
			
		||||
					<!-- Label -->
 | 
			
		||||
					{{if .PageIsOrgIssues}}
 | 
			
		||||
					{{template "shared/label_filter" .}}
 | 
			
		||||
					{{end}}
 | 
			
		||||
					<!-- Sort -->
 | 
			
		||||
					<div class="list-header-sort ui small dropdown type jump item">
 | 
			
		||||
						<span class="text tw-whitespace-nowrap">
 | 
			
		||||
							{{ctx.Locale.Tr "repo.issues.filter_sort"}}
 | 
			
		||||
							{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
						</span>
 | 
			
		||||
						<div class="menu">
 | 
			
		||||
							<a class="{{if eq .SortType "recentupdate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=recentupdate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
			
		||||
							<a class="{{if eq .SortType "leastupdate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=leastupdate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
			
		||||
							<a class="{{if or (eq .SortType "latest") (not .SortType)}}active {{end}}item" href="?type={{$.ViewType}}&sort=latest&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
			
		||||
							<a class="{{if eq .SortType "oldest"}}active {{end}}item" href="?type={{$.ViewType}}&sort=oldest&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
			
		||||
							<a class="{{if eq .SortType "mostcomment"}}active {{end}}item" href="?type={{$.ViewType}}&sort=mostcomment&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.mostcomment"}}</a>
 | 
			
		||||
							<a class="{{if eq .SortType "leastcomment"}}active {{end}}item" href="?type={{$.ViewType}}&sort=leastcomment&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastcomment"}}</a>
 | 
			
		||||
							<a class="{{if eq .SortType "nearduedate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=nearduedate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.nearduedate"}}</a>
 | 
			
		||||
							<a class="{{if eq .SortType "farduedate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=farduedate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.farduedate"}}</a>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
				{{template "shared/issuelist" dict "." . "listType" "dashboard"}}
 | 
			
		||||
				<!-- Sort -->
 | 
			
		||||
				<div class="list-header-sort ui dropdown type jump item">
 | 
			
		||||
					<span class="text tw-whitespace-nowrap">
 | 
			
		||||
						{{ctx.Locale.Tr "repo.issues.filter_sort"}}
 | 
			
		||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
					</span>
 | 
			
		||||
					<div class="menu">
 | 
			
		||||
						<a class="{{if eq .SortType "recentupdate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=recentupdate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
			
		||||
						<a class="{{if eq .SortType "leastupdate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=leastupdate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
			
		||||
						<a class="{{if or (eq .SortType "latest") (not .SortType)}}active {{end}}item" href="?type={{$.ViewType}}&sort=latest&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
			
		||||
						<a class="{{if eq .SortType "oldest"}}active {{end}}item" href="?type={{$.ViewType}}&sort=oldest&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
			
		||||
						<a class="{{if eq .SortType "mostcomment"}}active {{end}}item" href="?type={{$.ViewType}}&sort=mostcomment&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.mostcomment"}}</a>
 | 
			
		||||
						<a class="{{if eq .SortType "leastcomment"}}active {{end}}item" href="?type={{$.ViewType}}&sort=leastcomment&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.leastcomment"}}</a>
 | 
			
		||||
						<a class="{{if eq .SortType "nearduedate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=nearduedate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.nearduedate"}}</a>
 | 
			
		||||
						<a class="{{if eq .SortType "farduedate"}}active {{end}}item" href="?type={{$.ViewType}}&sort=farduedate&state={{$.State}}&labels={{.SelectLabels}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.issues.filter_sort.farduedate"}}</a>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		{{template "shared/issuelist" dict "." . "listType" "dashboard"}}
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
{{template "base/footer" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue