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