1f1ecda541
* Store original author info for migrated issues and comments Keep original author name for displaying in Gitea interface and also store original author user ID for potential future use in linking accounts from old location. * Add original_url for repo Store the original URL for a migrated repo Clean up migrations/tests * fix migration * fix golangci-lint * make 'make revive' happy also * Modify templates to use OriginalAuthor if set Use the original author name in templates if it is set rather than the user who migrated/currently owns the issues * formatting fixes * make generate-swagger * Use default avatar for imported comments * Remove no longer used IgnoreIssueAuthor option * Add OriginalAuthorID to swagger also
125 lines
7.1 KiB
Cheetah
125 lines
7.1 KiB
Cheetah
{{template "base/head" .}}
|
|
<div class="dashboard issues">
|
|
{{template "user/dashboard/navbar" .}}
|
|
<div class="ui container">
|
|
<div class="ui stackable grid">
|
|
<div class="four wide column">
|
|
<div class="ui secondary vertical filter menu">
|
|
<a class="{{if eq .ViewType "your_repositories"}}ui basic blue button{{end}} item" href="{{.Link}}?type=your_repositories&repo={{.RepoID}}&sort={{$.SortType}}&state={{.State}}">
|
|
{{.i18n.Tr "home.issues.in_your_repos"}}
|
|
<strong class="ui right">{{.IssueStats.YourRepositoriesCount}}</strong>
|
|
</a>
|
|
{{if not .ContextUser.IsOrganization}}
|
|
<a class="{{if eq .ViewType "assigned"}}ui basic blue button{{end}} item" href="{{.Link}}?type=assigned&repo={{.RepoID}}&sort={{$.SortType}}&state={{.State}}">
|
|
{{.i18n.Tr "repo.issues.filter_type.assigned_to_you"}}
|
|
<strong class="ui right">{{.IssueStats.AssignCount}}</strong>
|
|
</a>
|
|
<a class="{{if eq .ViewType "created_by"}}ui basic blue button{{end}} item" href="{{.Link}}?type=created_by&repo={{.RepoID}}&sort={{$.SortType}}&state={{.State}}">
|
|
{{.i18n.Tr "repo.issues.filter_type.created_by_you"}}
|
|
<strong class="ui right">{{.IssueStats.CreateCount}}</strong>
|
|
</a>
|
|
{{end}}
|
|
<div class="ui divider"></div>
|
|
{{range .Repos}}
|
|
<a class="{{if eq $.RepoID .ID}}ui basic blue button{{end}} repo name item" href="{{$.Link}}?type={{$.ViewType}}{{if not (eq $.RepoID .ID)}}&repo={{.ID}}{{end}}&sort={{$.SortType}}&state={{$.State}}">
|
|
<span class="text truncate">{{.FullName}}</span>
|
|
<div class="floating ui {{if $.IsShowClosed}}red{{else}}green{{end}} label">{{index $.Counts .ID}}</div>
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="twelve wide column content">
|
|
<div class="ui tiny basic status buttons">
|
|
<a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort={{$.SortType}}&state=open">
|
|
<i class="octicon octicon-issue-opened"></i>
|
|
{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
|
|
</a>
|
|
<a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort={{$.SortType}}&state=closed">
|
|
<i class="octicon octicon-issue-closed"></i>
|
|
{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
|
|
</a>
|
|
</div>
|
|
<div class="ui right floated secondary filter menu">
|
|
<!-- Sort -->
|
|
<div class="ui dropdown type jump item">
|
|
<span class="text">
|
|
{{.i18n.Tr "repo.issues.filter_sort"}}
|
|
<i class="dropdown icon"></i>
|
|
</span>
|
|
<div class="menu">
|
|
<a class="{{if or (eq .SortType "latest") (not .SortType)}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=latest&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
|
|
<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=oldest&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
|
|
<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=recentupdate&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
|
|
<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=leastupdate&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
|
|
<a class="{{if eq .SortType "mostcomment"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=mostcomment&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.mostcomment"}}</a>
|
|
<a class="{{if eq .SortType "leastcomment"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=leastcomment&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.leastcomment"}}</a>
|
|
<a class="{{if eq .SortType "nearduedate"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=nearduedate&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.nearduedate"}}</a>
|
|
<a class="{{if eq .SortType "farduedate"}}active{{end}} item" href="{{$.Link}}?type={{$.ViewType}}&repo={{.RepoID}}&sort=farduedate&state={{$.State}}">{{.i18n.Tr "repo.issues.filter_sort.farduedate"}}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="issue list">
|
|
{{range .Issues}}
|
|
|
|
{{ $timeStr:= TimeSinceUnix .CreatedUnix $.Lang }}
|
|
<li class="item">
|
|
<div class="ui label">{{if not $.RepoID}}{{.Repo.FullName}}{{end}}#{{.Index}}</div>
|
|
<a class="title has-emoji" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/issues/{{.Index}}">{{.Title}}</a>
|
|
|
|
{{if .IsPull }}
|
|
{{if (index $.CommitStatus .ID)}}
|
|
{{template "repo/commit_status" (index $.CommitStatus .ID)}}
|
|
{{end}}
|
|
{{end}}
|
|
|
|
{{with .Labels}}
|
|
{{/* If we have any labels, we should show them
|
|
with a 2.5 line height, this way they don't look
|
|
awful and they don't stack on top of each other,
|
|
especially on mobile views. */}}
|
|
<span style="line-height: 2.5">
|
|
{{range .}}
|
|
<a class="ui label" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}&repo={{$.RepoID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a>
|
|
{{end}}
|
|
</span>
|
|
{{end}}
|
|
|
|
{{if .NumComments}}
|
|
<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>
|
|
{{end}}
|
|
{{if .TotalTrackedTime}}
|
|
<span class="comment ui right"><i class="octicon octicon-clock"></i> {{.TotalTrackedTime | Sec2Time}}</span>
|
|
{{end}}
|
|
|
|
<p class="desc">
|
|
{{if .OriginalAuthor}}
|
|
{{$.i18n.Tr .GetLastEventLabelFake $timeStr .OriginalAuthor | Safe}}
|
|
{{else if gt .Poster.ID 0}}
|
|
{{$.i18n.Tr .GetLastEventLabel $timeStr .Poster.HomeLink (.Poster.GetDisplayName|Escape) | Safe}}
|
|
{{else}}
|
|
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName|Escape) | Safe}}
|
|
{{end}}
|
|
{{if .Assignee}}
|
|
<a class="ui right assignee poping up" href="{{.Assignee.HomeLink}}" data-content="{{.Assignee.GetDisplayName}}" data-variation="inverted" data-position="left center">
|
|
<img class="ui avatar image" src="{{.Assignee.RelAvatarLink}}">
|
|
</a>
|
|
{{end}}
|
|
{{$tasks := .GetTasks}}
|
|
{{if gt $tasks 0}}
|
|
{{$tasksDone := .GetTasksDone}}
|
|
<span class="checklist">
|
|
<span class="octicon octicon-checklist"></span> {{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
|
|
</span>
|
|
{{end}}
|
|
</p>
|
|
</li>
|
|
{{end}}
|
|
|
|
{{template "base/paginate" .}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{template "base/footer" .}}
|