2015-08-25 22:58:34 +08:00
{{ template "base/head" . }}
<div class="dashboard issues">
2015-12-08 06:30:52 +08:00
{{ template "user/dashboard/navbar" . }}
<div class="ui container">
2017-12-31 08:47:52 +08:00
<div class="ui stackable grid">
2015-12-08 06:30:52 +08:00
<div class="four wide column">
<div class="ui secondary vertical filter menu">
2019-12-02 11:50:36 +08:00
<a class=" {{ if eq .ViewType "your_repositories" }} ui basic blue button {{ end }} item" href=" {{ .Link }} ?type=your_repositories&repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort= {{ $ .SortType }} &state= {{ .State }} ">
2015-12-08 06:30:52 +08:00
{{ .i18n .Tr "home.issues.in_your_repos" }}
2020-09-16 12:07:18 +08:00
<strong class="ui right"> {{ CountFmt .IssueStats .YourRepositoriesCount }} </strong>
2015-12-08 06:30:52 +08:00
</a>
{{ if not .ContextUser .IsOrganization }}
2019-12-02 11:50:36 +08:00
<a class=" {{ if eq .ViewType "assigned" }} ui basic blue button {{ end }} item" href=" {{ .Link }} ?type=assigned&repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort= {{ $ .SortType }} &state= {{ .State }} ">
2015-12-08 06:30:52 +08:00
{{ .i18n .Tr "repo.issues.filter_type.assigned_to_you" }}
2020-09-16 12:07:18 +08:00
<strong class="ui right"> {{ CountFmt .IssueStats .AssignCount }} </strong>
2015-12-08 06:30:52 +08:00
</a>
2019-12-02 11:50:36 +08:00
<a class=" {{ if eq .ViewType "created_by" }} ui basic blue button {{ end }} item" href=" {{ .Link }} ?type=created_by&repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort= {{ $ .SortType }} &state= {{ .State }} ">
2015-12-08 06:30:52 +08:00
{{ .i18n .Tr "repo.issues.filter_type.created_by_you" }}
2020-09-16 12:07:18 +08:00
<strong class="ui right"> {{ CountFmt .IssueStats .CreateCount }} </strong>
2015-12-08 06:30:52 +08:00
</a>
2019-12-02 11:50:36 +08:00
<a class=" {{ if eq .ViewType "mentioned" }} ui basic blue button {{ end }} item" href=" {{ .Link }} ?type=mentioned&repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort= {{ $ .SortType }} &state= {{ .State }} ">
2019-09-18 15:24:44 +08:00
{{ .i18n .Tr "repo.issues.filter_type.mentioning_you" }}
2020-09-16 12:07:18 +08:00
<strong class="ui right"> {{ CountFmt .IssueStats .MentionCount }} </strong>
2019-09-18 15:24:44 +08:00
</a>
2015-12-08 06:30:52 +08:00
{{ end }}
<div class="ui divider"></div>
2020-02-29 14:52:05 +08:00
<a class=" {{ if not $ .RepoIDs }} ui basic blue button {{ end }} repo name item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &q= {{ $ .Keyword }} ">
2019-12-02 11:50:36 +08:00
<span class="text truncate">All</span>
2020-09-16 12:07:18 +08:00
<div class="ui {{ if $ .IsShowClosed }} red {{ else }} green {{ end }} label"> {{ CountFmt .TotalIssueCount }} </div>
2019-12-02 11:50:36 +08:00
</a>
2015-12-08 06:30:52 +08:00
{{ range .Repos }}
2019-12-02 11:50:36 +08:00
{{ with $ Repo : = . }}
<a class=" {{ range $ .RepoIDs }} {{ if eq . $ Repo .ID }} ui basic blue button {{ end }} {{ end }} repo name item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[
{{ with $ in clude : = true }}
{{ range $ .RepoIDs }}
{{ if eq . $ Repo .ID }}
{{ $ in clude = false }}
{{ else }}
{{ . }} %2C
{{ end }}
{{ end }}
{{ if eq $ in clude true }}
{{ $ Repo .ID }} %2C
{{ end }}
{{ end }}
2020-02-29 14:52:05 +08:00
]&sort= {{ $ .SortType }} &state= {{ $ .State }} &q= {{ $ .Keyword }} " title=" {{ .FullName }} ">
2019-12-02 11:50:36 +08:00
<span class="text truncate"> {{ $ Repo .FullName }} </span>
2020-09-16 12:07:18 +08:00
<div class="ui {{ if $ .IsShowClosed }} red {{ else }} green {{ end }} label"> {{ CountFmt ( in dex $ .Counts $ Repo .ID ) }} </div>
2019-12-02 11:50:36 +08:00
</a>
{{ end }}
2015-12-08 06:30:52 +08:00
{{ end }}
</div>
</div>
2015-08-25 22:58:34 +08:00
<div class="twelve wide column content">
2020-02-29 14:52:05 +08:00
<div class="ui three column stackable grid">
<div class="column">
<div class="ui tiny basic status buttons">
<a class="ui {{ if not .IsShowClosed }} green active {{ end }} basic button" href=" {{ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort= {{ $ .SortType }} &state=open&q= {{ $ .Keyword }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-issue-opened" }}
2020-02-29 14:52:05 +08:00
{{ .i18n .Tr "repo.issues.open_tab" .ShownIssueStats .OpenCount }}
</a>
<a class="ui {{ if .IsShowClosed }} red active {{ end }} basic button" href=" {{ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort= {{ $ .SortType }} &state=closed&q= {{ $ .Keyword }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-issue-closed" }}
2020-02-29 14:52:05 +08:00
{{ .i18n .Tr "repo.issues.close_tab" .ShownIssueStats .ClosedCount }}
</a>
</div>
</div>
<div class="column center aligned">
<form class="ui form ignore-dirty">
2020-06-12 11:35:03 +08:00
<div class="ui search fluid action input">
2020-02-29 14:52:05 +08:00
<input type="hidden" name="type" value=" {{ $ .ViewType }} "/>
<input type="hidden" name="repos" value="[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]"/>
<input type="hidden" name="sort" value=" {{ $ .SortType }} "/>
<input type="hidden" name="state" value=" {{ $ .State }} "/>
2020-07-27 10:43:14 +08:00
<input name="q" value=" {{ $ .Keyword }} " placeholder=" {{ .i18n .Tr "explore.search" }} ...">
2020-06-12 11:35:03 +08:00
<button class="ui blue button" type="submit"> {{ .i18n .Tr "explore.search" }} </button>
2020-02-29 14:52:05 +08:00
</div>
</form>
</div>
<div class="column right aligned">
<!-- Sort -->
<div class="ui dropdown type jump item">
<span class="text">
{{ .i18n .Tr "repo.issues.filter_sort" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2020-02-29 14:52:05 +08:00
</span>
<div class="menu">
<a class=" {{ if or ( eq .SortType "latest" ) ( not .SortType ) }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=latest&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.latest" }} </a>
<a class=" {{ if eq .SortType "oldest" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=oldest&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.oldest" }} </a>
<a class=" {{ if eq .SortType "recentupdate" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=recentupdate&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.recentupdate" }} </a>
<a class=" {{ if eq .SortType "leastupdate" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=leastupdate&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.leastupdate" }} </a>
<a class=" {{ if eq .SortType "mostcomment" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=mostcomment&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.mostcomment" }} </a>
<a class=" {{ if eq .SortType "leastcomment" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=leastcomment&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.leastcomment" }} </a>
<a class=" {{ if eq .SortType "nearduedate" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=nearduedate&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.nearduedate" }} </a>
<a class=" {{ if eq .SortType "farduedate" }} active {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]&sort=farduedate&state= {{ $ .State }} &q= {{ $ .Keyword }} "> {{ .i18n .Tr "repo.issues.filter_sort.farduedate" }} </a>
</div>
2015-11-05 01:50:02 +08:00
</div>
</div>
</div>
2015-08-25 22:58:34 +08:00
<div class="issue list">
2020-03-06 11:44:06 +08:00
{{ $ approvalCounts : = .ApprovalCounts }}
2015-08-25 22:58:34 +08:00
{{ range .Issues }}
2019-05-08 16:41:35 +08:00
2017-12-11 12:37:04 +08:00
{{ $ timeStr : = TimeSinceUnix .CreatedUnix $ .Lang }}
2019-12-03 08:33:25 +08:00
{{ if .Repo }}
2015-12-08 06:30:52 +08:00
<li class="item">
2019-12-02 11:50:36 +08:00
<div class="ui label"> {{ .Repo .FullName }} # {{ .Index }} </div>
2020-04-29 02:05:39 +08:00
<a class="title" href=" {{ .HTMLURL }} "> {{ RenderEmoji .Title }} </a>
2015-08-25 22:58:34 +08:00
2020-02-04 06:14:38 +08:00
{{ if .IsPull }}
{{ if ( in dex $ .CommitStatus .PullRequest .ID ) }}
{{ template "repo/commit_status" ( in dex $ .CommitStatus .PullRequest .ID ) }}
{{ end }}
{{ end }}
2019-04-03 03:54:29 +08:00
2017-12-31 08:47:52 +08:00
{{ 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 . }}
2020-05-02 01:58:45 +08:00
<a class="ui label" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &state= {{ $ .State }} &labels= {{ .ID }} &milestone= {{ $ .MilestoneID }} &assignee= {{ $ .AssigneeID }} &repos=[ {{ range $ .RepoIDs }} {{ . }} %2C {{ end }} ]" style="color: {{ .ForegroundColor }} ; background-color: {{ .Color }} " title=" {{ .Description | RenderEmojiPlain }} "> {{ .Name | RenderEmoji }} </a>
2017-12-31 08:47:52 +08:00
{{ end }}
</span>
2017-02-07 23:33:18 +08:00
{{ end }}
2015-12-08 06:30:52 +08:00
{{ if .NumComments }}
2020-09-12 04:19:00 +08:00
<span class="comment ui right"> {{ svg "octicon-comment" }} {{ .NumComments }} </span>
2015-08-25 22:58:34 +08:00
{{ end }}
2018-04-29 13:58:47 +08:00
{{ if .TotalTrackedTime }}
2020-09-12 04:19:00 +08:00
<span class="comment ui right"> {{ svg "octicon-clock" }} {{ .TotalTrackedTime | Sec2Time }} </span>
2018-04-29 13:58:47 +08:00
{{ end }}
2015-12-08 06:30:52 +08:00
<p class="desc">
2019-07-08 10:14:12 +08:00
{{ if .OriginalAuthor }}
{{ $ .i18n .Tr .GetLastEventLabelFake $ timeStr .OriginalAuthor | Safe }}
{{ else if gt .Poster .ID 0 }}
2019-05-08 16:41:35 +08:00
{{ $ .i18n .Tr .GetLastEventLabel $ timeStr .Poster .HomeLink ( .Poster .GetDisplayName | Escape ) | Safe }}
2019-03-28 06:22:39 +08:00
{{ else }}
2019-05-08 16:41:35 +08:00
{{ $ .i18n .Tr .GetLastEventLabelFake $ timeStr ( .Poster .GetDisplayName | Escape ) | Safe }}
2019-03-28 06:22:39 +08:00
{{ end }}
2019-09-12 17:31:36 +08:00
{{ if .Milestone }}
2020-08-02 16:18:09 +08:00
<a class="milestone" href=" {{ AppSubUrl }} / {{ .Repo .Owner .Name }} / {{ .Repo .Name }} /milestone/ {{ .Milestone .ID }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-milestone" }} {{ .Milestone .Name }}
2019-09-12 17:31:36 +08:00
</a>
{{ end }}
{{ if .Ref }}
2020-05-15 06:55:43 +08:00
<a class="ref" href=" {{ AppSubUrl }} / {{ .Repo .Owner .Name }} / {{ .Repo .Name }} {{ in dex $ .IssueRefURLs .ID }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-git-branch" }} {{ in dex $ .IssueRefEndNames .ID }}
2019-09-12 17:31:36 +08:00
</a>
{{ end }}
{{ range .Assignees }}
<a class="ui right assignee poping up" href=" {{ .HomeLink }} " data-content=" {{ .GetDisplayName }} " data-variation="inverted" data-position="left center">
<img class="ui avatar image" src=" {{ .RelAvatarLink }} ">
2015-12-08 06:30:52 +08:00
</a>
{{ end }}
2018-01-03 16:34:13 +08:00
{{ $ tasks : = .GetTasks }}
{{ if gt $ tasks 0 }}
{{ $ tasksDone : = .GetTasksDone }}
2018-02-06 18:22:31 +08:00
<span class="checklist">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-checklist" }} {{ $ tasksDone }} / {{ $ tasks }} <span class="progress-bar"><span class="progress" style="width:calc(100% * {{ $ tasksDone }} / {{ $ tasks }} );"></span></span>
2018-02-06 18:22:31 +08:00
</span>
2018-01-03 16:34:13 +08:00
{{ end }}
2019-11-08 04:12:23 +08:00
{{ 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">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-calendar" }} <span {{ if .IsOverdue }} class="overdue" {{ end }} > {{ .DeadlineUnix .FormatShort }} </span>
2019-11-08 04:12:23 +08:00
</span>
{{ end }}
2020-02-04 06:14:38 +08:00
{{ if .IsPull }}
2020-03-06 11:44:06 +08:00
{{ $ approveOfficial : = call $ approvalCounts .ID "approve" }}
{{ $ rejectOfficial : = call $ approvalCounts .ID "reject" }}
2020-04-07 00:33:34 +08:00
{{ $ waitingOfficial : = call $ approvalCounts .ID "waiting" }}
{{ if gt $ approveOfficial 0 }}
2020-09-12 04:19:00 +08:00
<span class="approvals"> {{ svg "octicon-check" }}
2020-03-06 11:44:06 +08:00
{{ $ .i18n .Tr ( TrN $ .i18n .Lang $ approveOfficial "repo.pulls.approve_count_1" "repo.pulls.approve_count_n" ) $ approveOfficial }}
2020-04-07 00:33:34 +08:00
</span>
{{ end }}
{{ if gt $ rejectOfficial 0 }}
2020-09-12 04:19:00 +08:00
<span class="rejects"> {{ svg "octicon-diff" }}
2020-04-07 00:33:34 +08:00
{{ $ .i18n .Tr ( TrN $ .i18n .Lang $ rejectOfficial "repo.pulls.reject_count_1" "repo.pulls.reject_count_n" ) $ rejectOfficial }}
</span>
2020-03-06 11:44:06 +08:00
{{ end }}
2020-04-07 00:33:34 +08:00
{{ if gt $ waitingOfficial 0 }}
2020-09-12 04:19:00 +08:00
<span class="waiting"> {{ svg "octicon-eye" }}
2020-04-07 00:33:34 +08:00
{{ $ .i18n .Tr ( TrN $ .i18n .Lang $ waitingOfficial "repo.pulls.waiting_count_1" "repo.pulls.waiting_count_n" ) $ waitingOfficial }}
</span>
{{ end }}
2020-03-04 14:56:53 +08:00
{{ if and ( not .PullRequest .HasMerged ) ( gt ( len .PullRequest .ConflictedFiles ) 0 ) }}
2020-09-12 04:19:00 +08:00
<span class="conflicting"> {{ svg "octicon-x" }} {{ $ .i18n .Tr ( TrN $ .i18n .Lang ( len .PullRequest .ConflictedFiles ) "repo.pulls.num_conflicting_files_1" "repo.pulls.num_conflicting_files_n" ) ( len .PullRequest .ConflictedFiles ) }} </span>
2020-02-04 06:14:38 +08:00
{{ end }}
{{ end }}
2015-12-08 06:30:52 +08:00
</p>
</li>
2019-12-02 11:50:36 +08:00
{{ end }}
2015-08-25 22:58:34 +08:00
{{ end }}
2015-12-08 06:30:52 +08:00
2019-04-20 12:15:19 +08:00
{{ template "base/paginate" . }}
2015-08-25 22:58:34 +08:00
</div>
2015-12-08 06:30:52 +08:00
</div>
</div>
2015-08-25 22:58:34 +08:00
</div>
</div>
{{ template "base/footer" . }}