2018-11-29 02:46:30 +01:00
{{ template "base/head" . }}
2023-02-01 23:56:10 +01:00
< div role = "main" aria-label = " {{ .Title }} " class = "page-content repository" >
2018-11-29 02:46:30 +01:00
{{ template "repo/header" . }}
< div class = "ui container" >
2021-05-20 23:53:55 +02:00
< div class = "ui two column stackable grid" >
2018-11-29 02:46:30 +01:00
< div class = "column" >
2021-03-20 10:36:52 +01:00
< h1 > {{ .Milestone.Name }} </ h1 >
2018-11-29 02:46:30 +01:00
< / div >
2019-01-23 19:58:38 +01:00
{{ if not .Repository.IsArchived }}
< div class = "column right aligned" >
2019-03-15 16:50:27 +01:00
{{ if or .CanWriteIssues .CanWritePulls }}
2022-06-27 22:58:46 +02:00
< a class = "ui button" href = " {{ .RepoLink }} /milestones/ {{ .MilestoneID }} /edit" > {{ .locale.Tr "repo.milestones.edit" }} </ a >
2019-03-15 16:50:27 +01:00
{{ end }}
2022-06-27 22:58:46 +02:00
< a class = "ui primary button" href = " {{ .RepoLink }} /issues/new {{ if .NewIssueChooseTemplate }} /choose {{ end }} ?milestone= {{ .MilestoneID }} " > {{ .locale.Tr "repo.issues.new" }} </ a >
2019-01-23 19:58:38 +01:00
< / div >
{{ end }}
2018-11-29 02:46:30 +01:00
< / div >
2021-05-20 23:53:55 +02:00
< div class = "ui one column stackable grid" >
< div class = "column markup content" >
{{ .Milestone.RenderedContent | Str2html }}
< / div >
< / div >
2021-04-11 05:46:37 +02:00
< div class = "ui one column stackable grid" >
< div class = "column" >
2022-08-31 17:58:54 +02:00
{{ $closedDate := TimeSinceUnix .Milestone.ClosedDateUnix $.locale }}
2021-04-11 05:46:37 +02:00
{{ if .IsClosed }}
2022-06-27 22:58:46 +02:00
{{ svg "octicon-clock" }} {{ $.locale.Tr "repo.milestones.closed" $closedDate | Str2html }}
2021-04-11 05:46:37 +02:00
{{ else }}
2020-09-11 22:19:00 +02:00
{{ svg "octicon-calendar" }}
2021-04-11 05:46:37 +02:00
{{ if .Milestone.DeadlineString }}
< span {{ if .IsOverdue }} class = "overdue" {{ end }} > {{ .Milestone.DeadlineString }} </ span >
{{ else }}
2022-06-27 22:58:46 +02:00
{{ $.locale.Tr "repo.milestones.no_due_date" }}
2021-04-11 05:46:37 +02:00
{{ end }}
{{ end }}
2022-06-27 22:58:46 +02:00
< b > {{ .locale.Tr "repo.milestones.completeness" .Milestone.Completeness }} </ b >
2021-04-11 05:46:37 +02:00
< / div >
< / div >
2018-11-29 02:46:30 +01:00
< div class = "ui divider" > < / div >
< div id = "issue-filters" class = "ui stackable grid" >
< div class = "six wide column" >
2020-11-29 16:52:11 +01:00
{{ template "repo/issue/openclose" . }}
2018-11-29 02:46:30 +01:00
< / div >
< div class = "ten wide right aligned column" >
2019-10-29 21:50:38 +01:00
< div class = "ui secondary filter stackable menu labels" >
2018-11-29 02:46:30 +01:00
<!-- Label -->
2019-10-29 21:50:38 +01:00
< div class = "ui {{ if not .Labels }} disabled {{ end }} dropdown jump item label-filter" style = "margin-left: auto" >
2018-11-29 02:46:30 +01:00
< span class = "text" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.filter_label" }}
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2018-11-29 02:46:30 +01:00
< / span >
< div class = "menu" >
2022-09-23 07:23:24 +02:00
< div class = "ui icon search input" >
< i class = "icon df ac jc" > {{ svg "octicon-search" 16 }} </ i >
2022-10-10 16:05:32 +02:00
< input type = "text" placeholder = " {{ .locale.Tr "repo.issues.filter_label" }} " >
2022-09-23 07:23:24 +02:00
< / div >
2022-06-27 22:58:46 +02:00
< span class = "info" > {{ .locale.Tr "repo.issues.filter_label_exclude" | Safe }} </ span >
2022-08-08 22:03:58 +02: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 02:46:30 +01:00
{{ range .Labels }}
2022-08-08 22:03:58 +02: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 contain $.SelLabelIDs .ID }}{{ svg "octicon-check" }}{{ end }} < span class = "label color" style = "background-color: {{ .Color }} " ></ span > {{ .Name | RenderEmoji }} </ a >
{{ end }}
< / div >
< / div >
<!-- Author -->
< div class = "ui {{ if not .Posters }} disabled {{ end }} dropdown jump item" >
< span class = "text" >
{{ .locale.Tr "repo.issues.filter_poster" }}
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
< / span >
< div class = "menu" >
< a class = "item" href = " {{ $.Link }} ?q= {{ $.Keyword }} &type= {{ $.ViewType }} &sort= {{ $.SortType }} &state= {{ $.State }} &labels= {{ .SelectLabels }} &assignee= {{ $.AssigneeID }} " > {{ .locale.Tr "repo.issues.filter_poster_no_select" }} </ a >
{{ range .Posters }}
< a class = " {{ if eq $.PosterID .ID }} active selected {{ end }} item" href = " {{ $.Link }} ?type= {{ $.ViewType }} &sort= {{ $.SortType }} &state= {{ $.State }} &labels= {{ $.SelectLabels }} &assignee= {{ $.AssigneeID }} &poster= {{ .ID }} " >
{{ avatar . }} {{ .GetDisplayName }}
< / a >
2018-11-29 02:46:30 +01:00
{{ end }}
< / div >
< / div >
<!-- Assignee -->
< div class = "ui {{ if not .Assignees }} disabled {{ end }} dropdown jump item" >
< span class = "text" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.filter_assignee" }}
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2018-11-29 02:46:30 +01:00
< / span >
< div class = "menu" >
2022-09-23 07:23:24 +02:00
< div class = "ui icon search input" >
< i class = "icon df ac jc" > {{ svg "octicon-search" 16 }} </ i >
2022-10-10 16:05:32 +02:00
< input type = "text" placeholder = " {{ .locale.Tr "repo.issues.filter_assignee" }} " >
2022-09-23 07:23:24 +02:00
< / div >
2022-08-08 22:03:58 +02: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 02:46:30 +01:00
{{ range .Assignees }}
2022-08-08 22:03:58 +02: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 }} " >
2020-12-03 19:46:11 +01:00
{{ avatar . 28 "mr-2" }}
{{ .GetDisplayName }}
< / a >
2018-11-29 02:46:30 +01:00
{{ end }}
< / div >
< / div >
{{ if .IsSigned }}
<!-- Type -->
< div class = "ui dropdown type jump item" >
< span class = "text" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.filter_type" }}
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2018-11-29 02:46:30 +01:00
< / span >
< div class = "menu" >
2022-12-09 14:34:51 +01: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 "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 >
< 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 >
2018-11-29 02:46:30 +01:00
< / div >
< / div >
{{ end }}
<!-- Sort -->
< div class = "ui dropdown type jump item" >
< span class = "text" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.filter_sort" }}
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2018-11-29 02:46:30 +01:00
< / span >
< div class = "menu" >
2022-12-09 14:34:51 +01: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 02:46:30 +01:00
< / div >
< / div >
< / div >
< / div >
< / div >
2019-03-15 16:50:27 +01:00
< div id = "issue-actions" class = "ui stackable grid hide" >
2018-11-29 02:46:30 +01:00
< div class = "six wide column" >
2020-11-29 16:52:11 +01:00
{{ template "repo/issue/openclose" . }}
2018-11-29 02:46:30 +01:00
< / 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 16:50:27 +01:00
<!-- Action Button -->
{{ if .IsShowClosed }}
2022-06-27 22:58:46 +02:00
< div class = "ui green active basic button issue-action" data-action = "open" data-url = " {{ $.RepoLink }} /issues/status" style = "margin-left: auto" > {{ .locale.Tr "repo.issues.action_open" }} </ div >
2019-03-15 16:50:27 +01:00
{{ else }}
2022-06-27 22:58:46 +02:00
< div class = "ui red active basic button issue-action" data-action = "close" data-url = " {{ $.RepoLink }} /issues/status" style = "margin-left: auto" > {{ .locale.Tr "repo.issues.action_close" }} </ div >
2019-03-15 16:50:27 +01:00
{{ end }}
2018-11-29 02:46:30 +01:00
<!-- Labels -->
2019-03-15 16:50:27 +01:00
< div class = "ui {{ if not .Labels }} disabled {{ end }} dropdown jump item" >
2018-11-29 02:46:30 +01:00
< span class = "text" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.action_label" }}
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2018-11-29 02:46:30 +01:00
< / span >
< div class = "menu" >
{{ range .Labels }}
2020-05-01 19:58:45 +02:00
< div class = "item issue-action" data-action = "toggle" data-element-id = " {{ .ID }} " data-url = " {{ $.RepoLink }} /issues/labels" >
2020-09-11 22:19:00 +02:00
{{ if contain $.SelLabelIDs .ID }}{{ svg "octicon-check" }}{{ end }} < span class = "label color" style = "background-color: {{ .Color }} " ></ span > {{ .Name | RenderEmoji }}
2018-11-29 02:46:30 +01:00
< / div >
{{ end }}
< / div >
< / div >
<!-- Assignees -->
< div class = "ui {{ if not .Assignees }} disabled {{ end }} dropdown jump item" >
< span class = "text" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.action_assignee" }}
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2018-11-29 02:46:30 +01:00
< / span >
< div class = "menu" >
< div class = "item issue-action" data-element-id = "0" data-url = " {{ $.Link }} /assignee" >
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.issues.action_assignee_no_select" }}
2018-11-29 02:46:30 +01:00
< / div >
{{ range .Assignees }}
< div class = "item issue-action" data-element-id = " {{ .ID }} " data-url = " {{ $.RepoLink }} /issues/assignee" >
2020-12-03 19:46:11 +01:00
{{ avatar . 28 "mr-2" }}
{{ .GetDisplayName }}
2018-11-29 02:46:30 +01:00
< / div >
{{ end }}
< / div >
< / div >
< / div >
< / div >
< / div >
2020-11-25 12:20:40 +01:00
{{ template "shared/issuelist" mergeinto . "listType" "milestone" }}
2018-11-29 02:46:30 +01:00
< / div >
< / div >
{{ template "base/footer" . }}