summaryrefslogtreecommitdiffstats
path: root/templates/shared
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2020-11-25 12:20:40 +0100
committerGitHub <noreply@github.com>2020-11-25 13:20:40 +0200
commit6d93a3ab182d772543f449073bbea855c3bfb155 (patch)
tree2575e52175ef1cc2dcacaf54e0d68a104a0c05d8 /templates/shared
parent00ec651270aca19cba9a82fa48e6f7137efdfe1f (diff)
downloadgitea-6d93a3ab182d772543f449073bbea855c3bfb155.tar.gz
gitea-6d93a3ab182d772543f449073bbea855c3bfb155.zip
Issue and Pulls lists rework (#13594)
* Issue and Pulls lists rework Reorganized and restyled the issue and pull request lists. * color and layout tweaks * use new issue list on dashboard as well * move pagination into template * misc tweaks * fix label hover * fix milestone list * fix discrepancies between issue and milestone list, add new 'merge' helper * fmt * simplify merge helper * remove whitespace * fix startIndex * further simplify dict merging * rename helper to 'mergeinto' for clarity * allow bottom-row to wrap Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'templates/shared')
-rw-r--r--templates/shared/issuelist.tmpl134
1 files changed, 134 insertions, 0 deletions
diff --git a/templates/shared/issuelist.tmpl b/templates/shared/issuelist.tmpl
new file mode 100644
index 0000000000..9393583862
--- /dev/null
+++ b/templates/shared/issuelist.tmpl
@@ -0,0 +1,134 @@
+<div class="issue list">
+ {{ $approvalCounts := .ApprovalCounts}}
+ {{range .Issues}}
+ <li class="item df py-3">
+ <div class="issue-item-left df py-1">
+ {{if $.CanWriteIssuesOrPulls}}
+ <div class="ui checkbox issue-checkbox">
+ <input type="checkbox" data-issue-id={{.ID}}></input>
+ <label></label>
+ </div>
+ {{end}}
+ <div class="issue-item-icon">
+ {{if .IsPull}}
+ {{if .PullRequest.HasMerged}}
+ {{svg "octicon-git-merge" 16 "text purple"}}
+ {{else}}
+ {{if .IsClosed}}
+ {{svg "octicon-git-pull-request" 16 "text red"}}
+ {{else}}
+ {{svg "octicon-git-pull-request" 16 "text green"}}
+ {{end}}
+ {{end}}
+ {{else}}
+ {{if .IsClosed}}
+ {{svg "octicon-issue-opened" 16 "text red"}}
+ {{else}}
+ {{svg "octicon-issue-closed" 16 "text green"}}
+ {{end}}
+ {{end}}
+ </div>
+ </div>
+ <div class="issue-item-main f1 fc df">
+ <div class="issue-item-top-row df ac fw">
+ <a class="title mr-3" href="{{if .HTMLURL}}{{.HTMLURL}}{{else}}{{$.Link}}/{{.Index}}{{end}}">{{RenderEmoji .Title}}</a>
+ {{if .IsPull }}
+ {{if (index $.CommitStatus .PullRequest.ID)}}
+ {{template "repo/commit_status" (index $.CommitStatus .PullRequest.ID)}}
+ {{end}}
+ {{end}}
+ {{range .Labels}}
+ <a class="ui label" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}{{if ne $.listType "milestone"}}&milestone={{$.MilestoneID}}{{end}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description | RenderEmojiPlain}}">{{.Name | RenderEmoji}}</a>
+ {{end}}
+ </div>
+ <div class="desc issue-item-bottom-row df ac fw my-1">
+ <a class="index ml-0 mr-2" href="{{if .HTMLURL}}{{.HTMLURL}}{{else}}{{$.Link}}/{{.Index}}{{end}}">
+ #{{.Index}}
+ </a>
+ {{ $timeStr := TimeSinceUnix .GetLastEventTimestamp $.Lang }}
+ {{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 and .Milestone (ne $.listType "milestone")}}
+ <a class="milestone" {{if $.RepoLink}}href="{{$.RepoLink}}/milestone/{{.Milestone.ID}}"{{else}}href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/milestone/{{.Milestone.ID}}"{{end}}>
+ {{svg "octicon-milestone" 14 "mr-2"}}{{.Milestone.Name}}
+ </a>
+ {{end}}
+ {{if .Ref}}
+ <a class="ref" {{if $.RepoLink}}href="{{$.RepoLink}}{{index $.IssueRefURLs .ID}}"{{else}}href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}{{index $.IssueRefURLs .ID}}"{{end}}>
+ {{svg "octicon-git-branch" 14 "mr-2"}}{{index $.IssueRefEndNames .ID}}
+ </a>
+ {{end}}
+ {{$tasks := .GetTasks}}
+ {{if gt $tasks 0}}
+ {{$tasksDone := .GetTasksDone}}
+ <span class="checklist">
+ {{svg "octicon-checklist" 14 "mr-2"}}{{$tasksDone}} / {{$tasks}} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{$tasksDone}} / {{$tasks}});"></span></span>
+ </span>
+ {{end}}
+ {{if ne .DeadlineUnix 0}}
+ <span class="due-date poping up" data-content="{{$.i18n.Tr "repo.issues.due_date"}}" data-variation="tiny inverted" data-position="right center">
+ {{svg "octicon-calendar" 14 "mr-2"}}<span{{if .IsOverdue}} class="overdue"{{end}}>{{.DeadlineUnix.FormatShort}}</span>
+ </span>
+ {{end}}
+ {{if .IsPull}}
+ {{$approveOfficial := call $approvalCounts .ID "approve"}}
+ {{$rejectOfficial := call $approvalCounts .ID "reject"}}
+ {{$waitingOfficial := call $approvalCounts .ID "waiting"}}
+ {{if gt $approveOfficial 0}}
+ <span class="approvals df ac">
+ {{svg "octicon-check" 14 "mr-2"}}
+ {{$.i18n.Tr (TrN $.i18n.Lang $approveOfficial "repo.pulls.approve_count_1" "repo.pulls.approve_count_n") $approveOfficial}}
+ </span>
+ {{end}}
+ {{if gt $rejectOfficial 0}}
+ <span class="rejects df ac">
+ {{svg "octicon-diff" 14 "mr-2"}}
+ {{$.i18n.Tr (TrN $.i18n.Lang $rejectOfficial "repo.pulls.reject_count_1" "repo.pulls.reject_count_n") $rejectOfficial}}
+ </span>
+ {{end}}
+ {{if gt $waitingOfficial 0}}
+ <span class="waiting df ac">
+ {{svg "octicon-eye" 14}}
+ {{$.i18n.Tr (TrN $.i18n.Lang $waitingOfficial "repo.pulls.waiting_count_1" "repo.pulls.waiting_count_n") $waitingOfficial}}
+ </span>
+ {{end}}
+ {{if and (not .PullRequest.HasMerged) (gt (len .PullRequest.ConflictedFiles) 0)}}
+ <span class="conflicting df ac">
+ {{svg "octicon-x" 14}}
+ {{$.i18n.Tr (TrN $.i18n.Lang (len .PullRequest.ConflictedFiles) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n") (len .PullRequest.ConflictedFiles)}}
+ </span>
+ {{end}}
+ {{end}}
+ </div>
+ </div>
+ <div class="issue-item-icons-right df p-2">
+ <div class="issue-item-icon-right text grey">
+ {{if .TotalTrackedTime}}
+ {{svg "octicon-clock" 16 "mr-2"}}
+ {{.TotalTrackedTime | Sec2Time}}
+ {{end}}
+ </div>
+ <div class="issue-item-icon-right text grey">
+ {{range .Assignees}}
+ <a class="ui assignee poping up" href="{{.HomeLink}}" data-content="{{.GetDisplayName}}" data-variation="inverted" data-position="left center">
+ <img class="ui avatar image" src="{{.RelAvatarLink}}">
+ </a>
+ {{end}}
+ </div>
+ <div class="issue-item-icon-right text grey">
+ {{if .NumComments}}
+ <a href="{{if .HTMLURL}}{{.HTMLURL}}{{else}}{{$.Link}}/{{.Index}}{{end}}">
+ {{svg "octicon-comment" 16 "mr-2"}}{{.NumComments}}
+ </a>
+ {{end}}
+ </div>
+ </div>
+ </li>
+ {{end}}
+</div>
+{{template "base/paginate" .}}