2020-08-17 05:07:38 +02:00
{{ template "base/head" . }}
2023-02-01 23:56:10 +01:00
< div role = "main" aria-label = " {{ .Title }} " class = "page-content repository projects view-project" >
2020-08-17 05:07:38 +02:00
{{ template "repo/header" . }}
< div class = "ui container" >
2021-09-10 13:33:06 +02:00
< div class = "ui two column stackable grid" >
2020-08-17 05:07:38 +02:00
< div class = "column" >
{{ template "repo/issue/navbar" . }}
< / div >
< div class = "column right aligned" >
2021-10-21 09:37:43 +02:00
{{ if and .CanWriteProjects ( not .Repository.IsArchived ) }}
2023-04-30 05:33:25 +02:00
< a class = "ui small green button item" href = " {{ $.RepoLink }} /issues/new/choose?project= {{ $.Project.ID }} " > {{ .locale.Tr "repo.issues.new" }} </ a >
< a class = "ui small green button show-modal item" data-modal = "#new-board-item" > {{ .locale.Tr "new_project_column" }} </ a >
2020-08-17 05:07:38 +02:00
{{ end }}
2021-09-29 22:53:12 +02:00
< div class = "ui small modal new-board-modal" id = "new-board-item" >
2020-08-17 05:07:38 +02:00
< div class = "header" >
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.new" }}
2020-08-17 05:07:38 +02:00
< / div >
< div class = "content" >
< form class = "ui form" >
< div class = "required field" >
2023-02-25 00:10:50 +01:00
< label for = "new_board" > {{ $.locale.Tr "repo.projects.column.new_title" }} </ label >
2020-08-17 05:07:38 +02:00
< input class = "new-board" id = "new_board" name = "title" required >
< / div >
2021-09-29 22:53:12 +02:00
< div class = "field color-field" >
2023-02-25 00:10:50 +01:00
< label for = "new_board_color" > {{ $.locale.Tr "repo.projects.column.color" }} </ label >
2021-09-29 22:53:12 +02:00
< div class = "color picker column" >
< input class = "color-picker" maxlength = "7" placeholder = "#c320f6" id = "new_board_color_picker" name = "color" >
< div class = "column precolors" >
{{ template "repo/issue/label_precolors" }}
< / div >
< / div >
< / div >
2020-08-17 05:07:38 +02:00
< div class = "text right actions" >
2023-03-14 04:34:09 +01:00
< button class = "ui cancel button" > {{ $.locale.Tr "settings.cancel" }} </ button >
2023-06-13 11:57:03 +02:00
< button data-url = " {{ $.RepoLink }} /projects/ {{ $.Project.ID }} " class = "ui primary button disabled" id = "new_board_submit" > {{ $.locale.Tr "repo.projects.column.new_submit" }} </ button >
2020-08-17 05:07:38 +02:00
< / div >
< / form >
< / div >
< / div >
< / div >
< / div >
2023-06-29 14:24:22 +02:00
< div class = "divider" > < / div >
2020-11-10 04:46:19 +01:00
< div class = "ui two column stackable grid" >
< div class = "column" >
< h2 class = "project-title" > {{ $.Project.Title }} </ h2 >
< div class = "content project-description" > {{ $.Project.RenderedContent | Str2html }} </ div >
< / div >
2023-04-24 10:51:44 +02:00
{{ if and $.CanWriteProjects ( not $.Repository.IsArchived ) }}
2020-11-10 04:46:19 +01:00
< div class = "column right aligned" >
2023-06-22 03:59:49 +02:00
< div class = "ui compact right mini menu" >
2023-06-18 12:31:42 +02:00
< a class = "item" href = " {{ $.RepoLink }} /projects/ {{ .Project.ID }} /edit?redirect=project" >
2020-11-10 04:46:19 +01:00
{{ svg "octicon-pencil" }}
2023-02-13 18:59:59 +01:00
< span class = "gt-mx-3" > {{ $.locale.Tr "repo.issues.label_edit" }} </ span >
2020-11-10 04:46:19 +01:00
< / a >
{{ if .Project.IsClosed }}
< a class = "item link-action" href data-url = " {{ $.RepoLink }} /projects/ {{ .Project.ID }} /open" >
{{ svg "octicon-check" }}
2023-02-13 18:59:59 +01:00
< span class = "gt-mx-3" > {{ $.locale.Tr "repo.projects.open" }} </ span >
2020-11-10 04:46:19 +01:00
< / a >
{{ else }}
< a class = "item link-action" href data-url = " {{ $.RepoLink }} /projects/ {{ .Project.ID }} /close" >
{{ svg "octicon-skip" }}
2023-02-13 18:59:59 +01:00
< span class = "gt-mx-3" > {{ $.locale.Tr "repo.projects.close" }} </ span >
2020-11-10 04:46:19 +01:00
< / a >
{{ end }}
< a class = "item delete-button" href = "#" data-url = " {{ $.RepoLink }} /projects/ {{ .Project.ID }} /delete" data-id = " {{ .Project.ID }} " >
2021-03-22 05:04:19 +01:00
{{ svg "octicon-trash" }}
2023-02-13 18:59:59 +01:00
< span class = "gt-mx-3" > {{ $.locale.Tr "repo.issues.label_delete" }} </ span >
2020-11-10 04:46:19 +01:00
< / a >
< / div >
< / div >
{{ end }}
< / div >
2023-06-29 14:24:22 +02:00
< div class = "divider" > < / div >
2020-08-17 05:07:38 +02:00
< / div >
< div class = "ui container fluid padded" id = "project-board" >
2023-05-24 08:05:50 +02:00
< div class = "board {{ if .CanWriteProjects }} sortable {{ end }} " >
2022-08-31 17:58:54 +02:00
{{ range $board := .Boards }}
2020-08-17 05:07:38 +02:00
2021-10-21 09:37:43 +02:00
< div class = "ui segment board-column" style = "background: {{ .Color }} !important;" data-id = " {{ .ID }} " data-sorting = " {{ .Sorting }} " data-url = " {{ $.RepoLink }} /projects/ {{ $.Project.ID }} / {{ .ID }} " >
2023-02-13 18:59:59 +01:00
< div class = "board-column-header gt-df gt-ac gt-sb" >
< div class = "ui large label board-label gt-py-2" >
2022-03-08 17:42:28 +01:00
< div class = "ui small circular grey label board-card-cnt" >
2022-03-29 16:16:31 +02:00
{{ .NumIssues }}
2022-03-08 17:42:28 +01:00
< / div >
{{ .Title }}
< / div >
2021-10-21 09:37:43 +02:00
{{ if and $.CanWriteProjects ( not $.Repository.IsArchived ) ( ne .ID 0 ) }}
2023-03-24 11:35:38 +01:00
< div class = "ui dropdown jump item" >
2023-02-13 18:59:59 +01:00
< div class = "not-mobile gt-px-3" tabindex = "-1" >
2021-04-20 06:13:03 +02:00
{{ svg "octicon-kebab-horizontal" }}
< / div >
2020-08-22 08:58:59 +02:00
< div class = "menu user-menu" tabindex = "-1" >
< a class = "item show-modal button" data-modal = "#edit-project-board-modal- {{ .ID }} " >
2020-09-11 22:19:00 +02:00
{{ svg "octicon-pencil" }}
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.edit" }}
2020-08-22 08:58:59 +02:00
< / a >
2021-01-15 21:29:32 +01:00
{{ if not .Default }}
2023-04-19 16:28:28 +02:00
< a class = "item show-modal button default-project-board-show"
data-modal="#default-project-board-modal-{{ .ID }} "
data-modal-default-project-board-header="{{ $.locale.Tr "repo.projects.column.set_default" }} "
data-modal-default-project-board-content="{{ $.locale.Tr "repo.projects.column.set_default_desc" }} "
data-type="set_default"
data-url="{{ $.Link }} /{{ .ID }} /default">
2021-01-15 21:29:32 +01:00
{{ svg "octicon-pin" }}
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.set_default" }}
2021-01-15 21:29:32 +01:00
< / a >
2023-04-19 16:28:28 +02:00
{{ else }}
< a class = "item show-modal button default-project-board-show"
data-modal="#default-project-board-modal-{{ .ID }} "
data-modal-default-project-board-header="{{ $.locale.Tr "repo.projects.column.unset_default" }} "
data-modal-default-project-board-content="{{ $.locale.Tr "repo.projects.column.unset_default_desc" }} "
data-type="unset_default"
data-url="{{ $.Link }} /{{ .ID }} /unsetdefault">
2023-05-12 08:38:59 +02:00
{{ svg "octicon-pin-slash" }}
2023-04-19 16:28:28 +02:00
{{ $.locale.Tr "repo.projects.column.unset_default" }}
< / a >
2021-01-15 21:29:32 +01:00
{{ end }}
2023-04-23 11:24:19 +02:00
< a class = "item show-modal button show-delete-column-modal"
data-modal="#delete-board-modal-{{ .ID }} "
data-url="{{ $.RepoLink }} /projects/{{ $.Project.ID }} /{{ .ID }} "
>
2021-03-22 05:04:19 +01:00
{{ svg "octicon-trash" }}
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.delete" }}
2020-08-22 08:58:59 +02:00
< / a >
2020-08-17 05:07:38 +02:00
2020-08-22 08:58:59 +02:00
< div class = "ui small modal edit-project-board" id = "edit-project-board-modal- {{ .ID }} " >
< div class = "header" >
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.edit" }}
2020-08-22 08:58:59 +02:00
< / div >
< div class = "content" >
< form class = "ui form" >
< div class = "required field" >
2023-02-25 00:10:50 +01:00
< label for = "new_board_title" > {{ $.locale.Tr "repo.projects.column.edit_title" }} </ label >
2020-08-22 08:58:59 +02:00
< input class = "project-board-title" id = "new_board_title" name = "title" value = " {{ .Title }} " required >
< / div >
2020-08-17 05:07:38 +02:00
2021-09-29 22:53:12 +02:00
< div class = "field color-field" >
2023-02-25 00:10:50 +01:00
< label for = "new_board_color" > {{ $.locale.Tr "repo.projects.column.color" }} </ label >
2021-09-29 22:53:12 +02:00
< div class = "color picker column" >
< input class = "color-picker" maxlength = "7" placeholder = "#c320f6" id = "new_board_color" name = "color" value = " {{ .Color }} " >
< div class = "column precolors" >
{{ template "repo/issue/label_precolors" }}
< / div >
< / div >
< / div >
2020-08-22 08:58:59 +02:00
< div class = "text right actions" >
2023-03-14 04:34:09 +01:00
< button class = "ui cancel button" > {{ $.locale.Tr "settings.cancel" }} </ button >
2023-05-29 18:32:15 +02:00
< button data-url = " {{ $.RepoLink }} /projects/ {{ $.Project.ID }} / {{ .ID }} " class = "ui primary button edit-column-button" > {{ $.locale.Tr "repo.projects.column.edit" }} </ button >
2020-08-22 08:58:59 +02:00
< / div >
< / form >
< / div >
2020-08-17 05:07:38 +02:00
< / div >
2023-04-24 13:08:59 +02:00
< div class = "ui g-modal-confirm modal default-project-board-modal" id = "default-project-board-modal- {{ .ID }} " >
2023-04-23 11:24:19 +02:00
< div class = "header" >
2023-04-19 16:28:28 +02:00
< span id = "default-project-board-header" > < / span >
2021-01-15 21:29:32 +01:00
< / div >
2023-04-23 11:24:19 +02:00
< div class = "content" >
2023-04-19 16:28:28 +02:00
< label id = "default-project-board-content" > < / label >
2021-01-15 21:29:32 +01:00
< / div >
2023-04-24 13:08:59 +02:00
{{ template "base/modal_actions_confirm" ( dict "locale" $.locale "ModalButtonTypes" "confirm" ) }}
2021-01-15 21:29:32 +01:00
< / div >
2023-04-24 13:08:59 +02:00
< div class = "ui g-modal-confirm modal" id = "delete-board-modal- {{ .ID }} " >
2023-04-23 11:24:19 +02:00
< div class = "header" >
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.delete" }}
2020-08-22 08:58:59 +02:00
< / div >
2023-04-23 11:24:19 +02:00
< div class = "content" >
2021-01-15 21:29:32 +01:00
< label >
2023-02-25 00:10:50 +01:00
{{ $.locale.Tr "repo.projects.column.deletion_desc" }}
2021-01-15 21:29:32 +01:00
< / label >
< / div >
2023-04-24 13:08:59 +02:00
{{ template "base/modal_actions_confirm" ( dict "locale" $.locale "ModalButtonTypes" "confirm" ) }}
2020-08-17 05:07:38 +02:00
< / div >
< / div >
< / div >
2022-08-31 17:58:54 +02:00
{{ end }}
2020-08-17 05:07:38 +02:00
< / div >
2023-06-29 14:24:22 +02:00
< div class = "divider" > < / div >
2020-08-17 05:07:38 +02:00
< div class = "ui cards board" data-url = " {{ $.RepoLink }} /projects/ {{ $.Project.ID }} / {{ .ID }} " data-project = " {{ $.Project.ID }} " data-board = " {{ .ID }} " id = "board_ {{ .ID }} " >
2022-08-31 17:58:54 +02:00
{{ range ( index $.IssuesMap .ID ) }}
2020-08-17 05:07:38 +02:00
<!-- start issue card -->
< div class = "card board-card" data-issue = " {{ .ID }} " >
2023-02-11 09:12:41 +01:00
{{ if eq $.Project.CardType 1 }} {{/* Images and Text*/}}
< div class = "card-attachment-images" >
{{ range ( index $.issuesAttachmentMap .ID ) }}
2023-03-27 18:05:51 +02:00
< img src = " {{ .DownloadURL }} " alt = " {{ .Name }} " >
2023-02-11 09:12:41 +01:00
{{ end }}
< / div >
{{ end }}
2023-02-13 18:59:59 +01:00
< div class = "content gt-p-0" >
2020-08-17 05:07:38 +02:00
< div class = "header" >
2023-05-25 14:25:31 +02:00
< span class = "gt-dif gt-ac gt-vm" >
{{ template "shared/issueicon" . }}
2020-08-17 05:07:38 +02:00
< / span >
2023-02-13 18:59:59 +01:00
< a class = "project-board-title gt-vm" href = " {{ .Link }} " >
2021-04-20 06:13:03 +02:00
{{ .Title }}
< / a >
< / div >
2023-02-13 18:59:59 +01:00
< div class = "meta gt-my-2" >
2021-04-20 06:13:03 +02:00
< span class = "text light grey" >
#{{ .Index }}
2022-08-31 17:58:54 +02:00
{{ $timeStr := TimeSinceUnix .GetLastEventTimestamp $.locale }}
{{ if .OriginalAuthor }}
2022-06-27 22:58:46 +02:00
{{ $.locale.Tr .GetLastEventLabelFake $timeStr ( .OriginalAuthor | Escape ) | Safe }}
2021-04-20 06:13:03 +02:00
{{ else if gt .Poster.ID 0 }}
2022-06-27 22:58:46 +02:00
{{ $.locale.Tr .GetLastEventLabel $timeStr ( .Poster.HomeLink | Escape ) ( .Poster.GetDisplayName | Escape ) | Safe }}
2021-04-20 06:13:03 +02:00
{{ else }}
2022-06-27 22:58:46 +02:00
{{ $.locale.Tr .GetLastEventLabelFake $timeStr ( .Poster.GetDisplayName | Escape ) | Safe }}
2021-04-20 06:13:03 +02:00
{{ end }}
< / span >
2020-08-17 05:07:38 +02:00
< / div >
2022-08-31 17:58:54 +02:00
{{- if .MilestoneID }}
2023-02-13 18:59:59 +01:00
< div class = "meta gt-my-2" >
2022-08-31 17:58:54 +02:00
< a class = "milestone" href = " {{ $.RepoLink }} /milestone/ {{ .MilestoneID }} " >
2023-02-13 18:59:59 +01:00
{{ svg "octicon-milestone" 16 "gt-mr-2 gt-vm" }}
< span class = "gt-vm" > {{ .Milestone.Name }} </ span >
2020-08-17 05:07:38 +02:00
< / a >
< / div >
2022-08-31 17:58:54 +02:00
{{- end }}
{{- range index $.LinkedPRs .ID }}
2023-02-13 18:59:59 +01:00
< div class = "meta gt-my-2" >
2022-08-31 17:58:54 +02:00
< a href = " {{ $.RepoLink }} /pulls/ {{ .Index }} " >
2023-03-23 04:24:16 +01:00
< span class = "gt-m-0 text {{ if .PullRequest.HasMerged }} purple {{ else if .IsClosed }} red {{ else }} green {{ end }} " > {{ svg "octicon-git-merge" 16 "gt-mr-2 gt-vm" }} </ span >
2023-02-13 18:59:59 +01:00
< span class = "gt-vm" > {{ .Title }} < span class = "text light grey" > #{{ .Index }} </ span ></ span >
2021-01-20 20:53:48 +01:00
< / a >
< / div >
2022-08-31 17:58:54 +02:00
{{- end }}
2020-08-17 05:07:38 +02:00
< / div >
2022-03-08 17:42:28 +01:00
2022-08-31 17:58:54 +02:00
{{ if or .Labels .Assignees }}
2023-02-13 18:59:59 +01:00
< div class = "extra content labels-list gt-p-0 gt-pt-2" >
2022-08-31 17:58:54 +02:00
{{ range .Labels }}
2023-03-05 22:59:05 +01:00
< a target = "_blank" href = " {{ $.RepoLink }} /issues?labels= {{ .ID }} " > {{ RenderLabel $.Context . }} </ a >
2022-08-31 17:58:54 +02:00
{{ end }}
2022-03-08 17:42:28 +01:00
< div class = "right floated" >
2022-08-31 17:58:54 +02:00
{{ range .Assignees }}
2023-03-24 11:35:38 +01:00
< a target = "_blank" href = " {{ .HomeLink }} " data-tooltip-content = " {{ $.locale.Tr "repo.projects.column.assigned_to" }} {{ .Name }} " > {{ avatar $.Context . 28 "mini gt-mr-3" }} </ a >
2022-08-31 17:58:54 +02:00
{{ end }}
2021-04-20 06:13:03 +02:00
< / div >
2022-03-08 17:42:28 +01:00
< / div >
2022-08-31 17:58:54 +02:00
{{ end }}
2020-08-17 05:07:38 +02:00
< / div >
<!-- stop issue card -->
2022-08-31 17:58:54 +02:00
{{ end }}
2020-08-17 05:07:38 +02:00
< / div >
< / div >
2022-08-31 17:58:54 +02:00
{{ end }}
2020-08-17 05:07:38 +02:00
< / div >
< / div >
< / div >
2023-04-24 10:51:44 +02:00
{{ if .CanWriteProjects }}
2023-04-24 13:08:59 +02:00
< div class = "ui g-modal-confirm delete modal" >
2023-04-23 11:24:19 +02:00
< div class = "header" >
2021-03-22 05:04:19 +01:00
{{ svg "octicon-trash" }}
2022-06-27 22:58:46 +02:00
{{ .locale.Tr "repo.projects.deletion" }}
2020-11-10 04:46:19 +01:00
< / div >
< div class = "content" >
2022-06-27 22:58:46 +02:00
< p > {{ .locale.Tr "repo.projects.deletion_desc" }} </ p >
2020-11-10 04:46:19 +01:00
< / div >
2023-04-23 11:24:19 +02:00
{{ template "base/modal_actions_confirm" . }}
2020-11-10 04:46:19 +01:00
< / div >
{{ end }}
2020-08-17 05:07:38 +02:00
{{ template "base/footer" . }}