2018-11-29 09:46:30 +08:00
{{ template "base/head" . }}
2023-04-07 08:11:02 +08:00
<div role="main" aria-label=" {{ .Title }} " class="page-content repository milestone-issue-list">
2018-11-29 09:46:30 +08:00
{{ template "repo/header" . }}
<div class="ui container">
2023-04-30 23:51:20 +08:00
<div class="gt-df">
2023-06-05 14:25:46 +08:00
<h1 class="gt-mb-3"> {{ .Milestone .Name }} </h1>
2019-01-24 02:58:38 +08:00
{{ if not .Repository .IsArchived }}
2023-04-30 23:51:20 +08:00
<div class="text right gt-f1">
2019-03-15 23:50:27 +08:00
{{ if or .CanWriteIssues .CanWritePulls }}
2023-04-03 06:40:43 +08:00
{{ if .Milestone .IsClosed }}
<a class="ui green basic button link-action" href data-url=" {{ $ .RepoLink }} /milestones/ {{ .MilestoneID }} /open"> {{ $ .locale .Tr "repo.milestones.open" }}
</a>
{{ else }}
<a class="ui red basic button link-action" href data-url=" {{ $ .RepoLink }} /milestones/ {{ .MilestoneID }} /close"> {{ $ .locale .Tr "repo.milestones.close" }}
</a>
{{ end }}
2022-06-28 04:58:46 +08:00
<a class="ui button" href=" {{ .RepoLink }} /milestones/ {{ .MilestoneID }} /edit"> {{ .locale .Tr "repo.milestones.edit" }} </a>
2019-03-15 23:50:27 +08:00
{{ end }}
2022-06-28 04:58:46 +08:00
<a class="ui primary button" href=" {{ .RepoLink }} /issues/new {{ if .NewIssueChooseTemplate }} /choose {{ end }} ?milestone= {{ .MilestoneID }} "> {{ .locale .Tr "repo.issues.new" }} </a>
2019-01-24 02:58:38 +08:00
</div>
{{ end }}
2018-11-29 09:46:30 +08:00
</div>
2023-06-05 14:25:46 +08:00
{{ if .Milestone .RenderedContent }}
<div class="markup content gt-mb-4">
{{ .Milestone .RenderedContent | Str2html }}
2021-05-21 05:53:55 +08:00
</div>
2023-06-05 14:25:46 +08:00
{{ end }}
<div class="gt-df gt-fc gt-gap-3">
<progress class="milestone-progress-big" value=" {{ .Milestone .Completeness }} " max="100"></progress>
<div class="gt-df gt-gap-4">
<div classs="gt-df gt-ac">
{{ $ closedDate : = TimeSinceUnix .Milestone .ClosedDateUnix $ .locale }}
{{ if .IsClosed }}
{{ svg "octicon-clock" }} {{ $ .locale .Tr "repo.milestones.closed" $ closedDate | Safe }}
2021-04-11 11:46:37 +08:00
{{ else }}
2023-06-05 14:25:46 +08:00
{{ svg "octicon-calendar" }}
{{ if .Milestone .DeadlineString }}
<span {{ if .IsOverdue }} class="overdue" {{ end }} > {{ DateTime "short" .Milestone .DeadlineString }} </span>
{{ else }}
{{ $ .locale .Tr "repo.milestones.no_due_date" }}
{{ end }}
2021-04-11 11:46:37 +08:00
{{ end }}
2023-06-05 14:25:46 +08:00
</div>
<div class="gt-mr-3"> {{ .locale .Tr "repo.milestones.completeness" .Milestone .Completeness | Safe }} </div>
2021-04-11 11:46:37 +08:00
</div>
</div>
2018-11-29 09:46:30 +08:00
<div class="ui divider"></div>
2023-04-30 23:51:20 +08:00
<div id="issue-filters" class="issue-list-toolbar">
<div class="issue-list-toolbar-left">
2020-11-29 23:52:11 +08:00
{{ template "repo/issue/openclose" . }}
2018-11-29 09:46:30 +08:00
</div>
2023-04-30 23:51:20 +08:00
<div class="issue-list-toolbar-right">
2019-10-30 04:50:38 +08:00
<div class="ui secondary filter stackable menu labels">
2018-11-29 09:46:30 +08:00
<!-- Label -->
2023-05-11 05:59:58 +08:00
<div class="ui {{ if not .Labels }} disabled {{ end }} dropdown jump item label-filter gt-ml-auto">
2018-11-29 09:46:30 +08:00
<span class="text">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.filter_label" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
2022-09-23 13:23:24 +08:00
<div class="ui icon search input">
2023-02-14 01:59:59 +08:00
<i class="icon gt-df gt-ac gt-jc"> {{ svg "octicon-search" 1 6 }} </i>
2022-10-10 22:05:32 +08:00
<input type="text" placeholder=" {{ .locale .Tr "repo.issues.filter_label" }} ">
2022-09-23 13:23:24 +08:00
</div>
2022-06-28 04:58:46 +08:00
<span class="info"> {{ .locale .Tr "repo.issues.filter_label_exclude" | Safe }} </span>
2022-08-09 04:03:58 +08:00
<a class="item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_label_no_select" }} </a>
2018-11-29 09:46:30 +08:00
{{ range .Labels }}
2023-04-23 02:16:22 +08:00
<a class="item label-filter-item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .QueryString }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} " data-label-id=" {{ .ID }} "> {{ if .IsExcluded }} {{ svg "octicon-circle-slash" }} {{ else if SliceUtils .Contains $ .SelLabelIDs .ID }} {{ svg "octicon-check" }} {{ end }} {{ RenderLabel $ .Context . }} </a>
2022-08-09 04:03:58 +08:00
{{ end }}
</div>
</div>
<!-- Author -->
2023-04-07 08:11:02 +08:00
<div class="ui dropdown jump item user-remote-search" data-tooltip-content=" {{ .locale .Tr "repo.author_search_tooltip" }} "
data-search-url=" {{ $ .RepoLink }} /issues/posters"
data-selected-user-id=" {{ $ .PosterID }} "
data-action-jump-url=" {{ $ .Link }} ?type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ $ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= { user_id}"
>
2022-08-09 04:03:58 +08:00
<span class="text">
{{ .locale .Tr "repo.issues.filter_poster" }}
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
</span>
<div class="menu">
2023-03-17 00:32:25 +08:00
<div class="ui icon search input">
<i class="icon gt-df gt-ac gt-jc"> {{ svg "octicon-search" 1 6 }} </i>
<input type="text" placeholder=" {{ .locale .Tr "repo.issues.filter_poster" }} ">
</div>
2023-04-07 08:11:02 +08:00
<a class="item" data-value="0"> {{ .locale .Tr "repo.issues.filter_poster_no_select" }} </a>
2018-11-29 09:46:30 +08:00
</div>
</div>
<!-- Assignee -->
<div class="ui {{ if not .Assignees }} disabled {{ end }} dropdown jump item">
<span class="text">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.filter_assignee" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
2022-09-23 13:23:24 +08:00
<div class="ui icon search input">
2023-02-14 01:59:59 +08:00
<i class="icon gt-df gt-ac gt-jc"> {{ svg "octicon-search" 1 6 }} </i>
2022-10-10 22:05:32 +08:00
<input type="text" placeholder=" {{ .locale .Tr "repo.issues.filter_assignee" }} ">
2022-09-23 13:23:24 +08:00
</div>
2022-08-09 04:03:58 +08:00
<a class="item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_assginee_no_select" }} </a>
2018-11-29 09:46:30 +08:00
{{ range .Assignees }}
2022-08-09 04:03:58 +08:00
<a class=" {{ if eq $ .AssigneeID .ID }} active selected {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ $ .SelectLabels }} &assignee= {{ .ID }} &poster= {{ $ .PosterID }} ">
2023-04-07 08:11:02 +08:00
{{ avatar $ .Context . 2 0 }} {{ template "repo/search_name" . }}
2020-12-04 02:46:11 +08:00
</a>
2018-11-29 09:46:30 +08:00
{{ end }}
</div>
</div>
{{ if .IsSigned }}
<!-- Type -->
<div class="ui dropdown type jump item">
<span class="text">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.filter_type" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
2022-12-09 21:34:51 +08:00
<a class=" {{ if eq .ViewType "all" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=all&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_type.all_issues" }} </a>
<a class=" {{ if eq .ViewType "assigned" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=assigned&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_type.assigned_to_you" }} </a>
<a class=" {{ if eq .ViewType "created_by" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=created_by&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_type.created_by_you" }} </a>
<a class=" {{ if eq .ViewType "review_requested" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=review_requested&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_type.review_requested" }} </a>
2023-02-25 10:55:50 +08:00
<a class=" {{ if eq .ViewType "reviewed_by" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=reviewed_by&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_type.reviewed_by_you" }} </a>
<a class=" {{ if eq .ViewType "mentioned" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=mentioned&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_type.mentioning_you" }} </a>
2018-11-29 09:46:30 +08:00
</div>
</div>
{{ end }}
<!-- Sort -->
<div class="ui dropdown type jump item">
<span class="text">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.filter_sort" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
2022-12-09 21:34:51 +08:00
<a class=" {{ if or ( eq .SortType "latest" ) ( not .SortType ) }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort=latest&state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_sort.latest" }} </a>
<a class=" {{ if eq .SortType "oldest" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort=oldest&state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_sort.oldest" }} </a>
<a class=" {{ if eq .SortType "recentupdate" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort=recentupdate&state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_sort.recentupdate" }} </a>
<a class=" {{ if eq .SortType "leastupdate" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort=leastupdate&state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_sort.leastupdate" }} </a>
<a class=" {{ if eq .SortType "mostcomment" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort=mostcomment&state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_sort.mostcomment" }} </a>
<a class=" {{ if eq .SortType "leastcomment" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort=leastcomment&state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} &poster= {{ $ .PosterID }} "> {{ .locale .Tr "repo.issues.filter_sort.leastcomment" }} </a>
2018-11-29 09:46:30 +08:00
</div>
</div>
</div>
</div>
</div>
2023-04-30 23:51:20 +08:00
<div id="issue-actions" class="issue-list-toolbar gt-hidden">
<div class="issue-list-toolbar-left">
2020-11-29 23:52:11 +08:00
{{ template "repo/issue/openclose" . }}
2018-11-29 09:46:30 +08:00
</div>
2023-04-30 23:51:20 +08:00
<div class="issue-list-toolbar-right">
2018-11-29 09:46:30 +08:00
<div class="ui secondary filter stackable menu">
2019-03-15 23:50:27 +08:00
<!-- Action Button -->
{{ if .IsShowClosed }}
2023-05-11 05:59:58 +08:00
<button class="ui green active basic button issue-action gt-ml-auto" data-action="open" data-url=" {{ $ .RepoLink }} /issues/status"> {{ .locale .Tr "repo.issues.action_open" }} </button>
2019-03-15 23:50:27 +08:00
{{ else }}
2023-05-11 05:59:58 +08:00
<button class="ui red active basic button issue-action gt-ml-auto" data-action="close" data-url=" {{ $ .RepoLink }} /issues/status"> {{ .locale .Tr "repo.issues.action_close" }} </button>
2019-03-15 23:50:27 +08:00
{{ end }}
2018-11-29 09:46:30 +08:00
<!-- Labels -->
2019-03-15 23:50:27 +08:00
<div class="ui {{ if not .Labels }} disabled {{ end }} dropdown jump item">
2018-11-29 09:46:30 +08:00
<span class="text">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.action_label" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
{{ range .Labels }}
2020-05-02 01:58:45 +08:00
<div class="item issue-action" data-action="toggle" data-element-id=" {{ .ID }} " data-url=" {{ $ .RepoLink }} /issues/labels">
2023-04-23 02:16:22 +08:00
{{ if SliceUtils .Contains $ .SelLabelIDs .ID }} {{ svg "octicon-check" }} {{ end }} {{ RenderLabel $ .Context . }}
2018-11-29 09:46:30 +08:00
</div>
{{ end }}
</div>
</div>
<!-- Assignees -->
<div class="ui {{ if not .Assignees }} disabled {{ end }} dropdown jump item">
<span class="text">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.action_assignee" }}
2020-11-01 06:15:11 +08:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
<div class="item issue-action" data-element-id="0" data-url=" {{ $ .Link }} /assignee">
2022-06-28 04:58:46 +08:00
{{ .locale .Tr "repo.issues.action_assignee_no_select" }}
2018-11-29 09:46:30 +08:00
</div>
{{ range .Assignees }}
<div class="item issue-action" data-element-id=" {{ .ID }} " data-url=" {{ $ .RepoLink }} /issues/assignee">
2023-04-07 08:11:02 +08:00
{{ avatar $ .Context . 2 0 }}
2020-12-04 02:46:11 +08:00
{{ .GetDisplayName }}
2018-11-29 09:46:30 +08:00
</div>
{{ end }}
</div>
</div>
</div>
</div>
</div>
2023-04-07 22:39:08 +08:00
{{ template "shared/issuelist" dict "." . "listType" "milestone" }}
2018-11-29 09:46:30 +08:00
</div>
</div>
{{ template "base/footer" . }}