2018-11-29 09:46:30 +08:00
{{ template "base/head" . }}
<div class="repository">
{{ template "repo/header" . }}
<div class="ui container">
<div class="ui three column stackable grid">
<div class="column">
<h3> {{ .Milestone .Name }} </h3>
2020-06-26 09:21:13 +08:00
<div class="content">
{{ .Milestone .RenderedContent | Str2html }}
</div>
2018-11-29 09:46:30 +08:00
</div>
<div class="column center aligned">
</div>
2019-01-24 02:58:38 +08:00
{{ if not .Repository .IsArchived }}
<div class="column right aligned">
2019-03-15 23:50:27 +08:00
{{ if or .CanWriteIssues .CanWritePulls }}
2019-01-24 02:58:38 +08:00
<a class="ui grey button" href=" {{ .RepoLink }} /milestones/ {{ .MilestoneID }} /edit"> {{ .i18n .Tr "repo.milestones.edit" }} </a>
2019-03-15 23:50:27 +08:00
{{ end }}
2020-09-11 22:48:39 +08:00
<a class="ui green button" href=" {{ .RepoLink }} /issues/new {{ if .NewIssueChooseTemplate }} /choose {{ end }} ?milestone= {{ .MilestoneID }} "> {{ .i18n .Tr "repo.issues.new" }} </a>
2019-01-24 02:58:38 +08:00
</div>
{{ end }}
2018-11-29 09:46:30 +08:00
</div>
<div class="ui one column stackable grid">
<div class="column">
{{ $ closedDate : = TimeSinceUnix .Milestone .ClosedDateUnix $ .Lang }}
{{ if .IsClosed }}
2020-09-12 04:19:00 +08:00
{{ svg "octicon-clock" }} {{ $ .i18n .Tr "repo.milestones.closed" $ closedDate | Str2html }}
2018-11-29 09:46:30 +08:00
{{ else }}
2020-09-12 04:19:00 +08:00
{{ svg "octicon-calendar" }}
2018-11-29 09:46:30 +08:00
{{ if .Milestone .DeadlineString }}
<span {{ if .IsOverdue }} class="overdue" {{ end }} > {{ .Milestone .DeadlineString }} </span>
{{ else }}
{{ $ .i18n .Tr "repo.milestones.no_due_date" }}
{{ end }}
{{ end }}
2020-02-12 01:02:41 +08:00
2018-11-29 09:46:30 +08:00
<b> {{ .i18n .Tr "repo.milestones.completeness" .Milestone .Completeness }} </b>
</div>
</div>
<div class="ui divider"></div>
<div id="issue-filters" class="ui stackable grid">
<div class="six wide column">
<div class="ui tiny basic status buttons">
<a class="ui {{ if not .IsShowClosed }} green active {{ end }} basic button" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state=open&labels= {{ .SelectLabels }} &assignee= {{ .AssigneeID }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-issue-opened" }}
2018-11-29 09:46:30 +08:00
{{ .i18n .Tr "repo.issues.open_tab" .IssueStats .OpenCount }}
</a>
<a class="ui {{ if .IsShowClosed }} red active {{ end }} basic button" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ .ViewType }} &sort= {{ $ .SortType }} &state=closed&labels= {{ .SelectLabels }} &assignee= {{ .AssigneeID }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-issue-closed" }}
2018-11-29 09:46:30 +08:00
{{ .i18n .Tr "repo.issues.close_tab" .IssueStats .ClosedCount }}
</a>
</div>
</div>
<div class="ten wide right aligned column">
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 -->
2019-10-30 04:50:38 +08:00
<div class="ui {{ if not .Labels }} disabled {{ end }} dropdown jump item label-filter" style="margin-left: auto">
2018-11-29 09:46:30 +08:00
<span class="text">
{{ .i18n .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">
2019-10-30 04:50:38 +08:00
<span class="info"> {{ .i18n .Tr "repo.issues.filter_label_exclude" | Safe }} </span>
2018-11-29 09:46:30 +08:00
<a class="item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &assignee= {{ $ .AssigneeID }} "> {{ .i18n .Tr "repo.issues.filter_label_no_select" }} </a>
{{ range .Labels }}
2020-09-12 04:19:00 +08:00
<a class="item label-filter-item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .ID }} &assignee= {{ $ .AssigneeID }} " data-label-id=" {{ .ID }} "> {{ if .IsExcluded }} {{ svg "octicon-circle-slash" }} {{ else if contain $ .SelLabelIDs .ID }} {{ svg "octicon-check" }} {{ end }} <span class="label color" style="background-color: {{ .Color }} "></span> {{ .Name | RenderEmoji }} </a>
2018-11-29 09:46:30 +08:00
{{ end }}
</div>
</div>
<!-- Assignee -->
<div class="ui {{ if not .Assignees }} disabled {{ end }} dropdown jump item">
<span class="text">
{{ .i18n .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">
<a class="item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} "> {{ .i18n .Tr "repo.issues.filter_assginee_no_select" }} </a>
{{ range .Assignees }}
2019-05-08 16:41:35 +08:00
<a class=" {{ if eq $ .AssigneeID .ID }} active selected {{ end }} item" href=" {{ $ .Link }} ?type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ $ .SelectLabels }} &assignee= {{ .ID }} "><img src=" {{ .RelAvatarLink }} "> {{ .GetDisplayName }} </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">
{{ .i18n .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">
<a class=" {{ if eq .ViewType "all" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=all&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} "> {{ .i18n .Tr "repo.issues.filter_type.all_issues" }} </a>
2020-11-20 05:39:55 +08:00
<a class=" {{ if eq .ViewType "assigned" }} active {{ end }} item" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type=assigned&sort= {{ $ .SortType }} &state= {{ $ .State }} &labels= {{ .SelectLabels }} &assignee= {{ $ .AssigneeID }} "> {{ .i18n .Tr "repo.issues.filter_type.assigned_to_you" }} </a>
2018-11-29 09:46:30 +08:00
<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 }} "> {{ .i18n .Tr "repo.issues.filter_type.created_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 }} "> {{ .i18n .Tr "repo.issues.filter_type.mentioning_you" }} </a>
</div>
</div>
{{ end }}
<!-- 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" }}
2018-11-29 09:46:30 +08:00
</span>
<div class="menu">
<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 }} "> {{ .i18n .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 }} "> {{ .i18n .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 }} "> {{ .i18n .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 }} "> {{ .i18n .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 }} "> {{ .i18n .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 }} "> {{ .i18n .Tr "repo.issues.filter_sort.leastcomment" }} </a>
</div>
</div>
</div>
</div>
</div>
2019-03-15 23:50:27 +08:00
<div id="issue-actions" class="ui stackable grid hide">
2018-11-29 09:46:30 +08:00
<div class="six wide column">
2019-03-15 23:50:27 +08:00
<div class="ui tiny basic status buttons">
<a class="ui {{ if not .IsShowClosed }} green active {{ end }} basic button" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ $ .ViewType }} &sort= {{ $ .SortType }} &state=open&labels= {{ .SelectLabels }} &assignee= {{ .AssigneeID }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-issue-opened" }}
2019-03-15 23:50:27 +08:00
{{ .i18n .Tr "repo.issues.open_tab" .IssueStats .OpenCount }}
</a>
<a class="ui {{ if .IsShowClosed }} red active {{ end }} basic button" href=" {{ $ .Link }} ?q= {{ $ .Keyword }} &type= {{ .ViewType }} &sort= {{ $ .SortType }} &state=closed&labels= {{ .SelectLabels }} &assignee= {{ .AssigneeID }} ">
2020-09-12 04:19:00 +08:00
{{ svg "octicon-issue-closed" }}
2019-03-15 23:50:27 +08:00
{{ .i18n .Tr "repo.issues.close_tab" .IssueStats .ClosedCount }}
</a>
2018-11-29 09:46:30 +08:00
</div>
</div>
{{ / * Ten wide does not cope well and makes the columns stack .
This seems to be related to jQuery's hide/show: in fact, switching
issue-actions and issue-filters and having this ten wide will show
this one correctly, but not the other one. */}}
<div class="nine wide right aligned right floated column">
<div class="ui secondary filter stackable menu">
2019-03-15 23:50:27 +08:00
<!-- Action Button -->
{{ if .IsShowClosed }}
<div class="ui green active basic button issue-action" data-action="open" data-url=" {{ $ .RepoLink }} /issues/status" style="margin-left: auto"> {{ .i18n .Tr "repo.issues.action_open" }} </div>
{{ else }}
<div class="ui red active basic button issue-action" data-action="close" data-url=" {{ $ .RepoLink }} /issues/status" style="margin-left: auto"> {{ .i18n .Tr "repo.issues.action_close" }} </div>
{{ 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">
{{ .i18n .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">
2020-09-12 04:19:00 +08:00
{{ if contain $ .SelLabelIDs .ID }} {{ svg "octicon-check" }} {{ end }} <span class="label color" style="background-color: {{ .Color }} "></span> {{ .Name | RenderEmoji }}
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">
{{ .i18n .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">
{{ .i18n .Tr "repo.issues.action_assignee_no_select" }}
</div>
{{ range .Assignees }}
<div class="item issue-action" data-element-id=" {{ .ID }} " data-url=" {{ $ .RepoLink }} /issues/assignee">
2019-05-08 16:41:35 +08:00
<img src=" {{ .RelAvatarLink }} "> {{ .GetDisplayName }}
2018-11-29 09:46:30 +08:00
</div>
{{ end }}
</div>
</div>
</div>
</div>
</div>
2020-11-25 19:20:40 +08:00
{{ template "shared/issuelist" mergeinto . "listType" "milestone" }}
2018-11-29 09:46:30 +08:00
</div>
</div>
{{ template "base/footer" . }}