2023-02-01 17:56:10 -05:00
<div role="main" aria-label=" {{ .Title }} " class="page-content repository projects view-project">
2023-01-20 06:42:33 -05:00
<div class="ui container">
<div class="ui two column stackable grid">
<div class="column">
</div>
<div class="column right aligned">
{{ if .CanWriteProjects }}
2023-02-24 18:10:50 -05:00
<a class="ui green button show-modal item" data-modal="#new-board-item"> {{ .locale .Tr "new_project_column" }} </a>
2023-01-20 06:42:33 -05:00
{{ end }}
<div class="ui small modal new-board-modal" id="new-board-item">
<div class="header">
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.new" }}
2023-01-20 06:42:33 -05:00
</div>
<div class="content">
<form class="ui form">
<div class="required field">
2023-02-24 18:10:50 -05:00
<label for="new_board"> {{ $ .locale .Tr "repo.projects.column.new_title" }} </label>
2023-01-20 06:42:33 -05:00
<input class="new-board" id="new_board" name="title" required>
</div>
<div class="field color-field">
2023-02-24 18:10:50 -05:00
<label for="new_board_color"> {{ $ .locale .Tr "repo.projects.column.color" }} </label>
2023-01-20 06:42:33 -05: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>
<div class="text right actions">
2023-03-13 23:34:09 -04:00
<button class="ui cancel button"> {{ $ .locale .Tr "settings.cancel" }} </button>
2023-02-24 18:10:50 -05:00
<button data-url=" {{ $ .Link }} " class="ui primary button" id="new_board_submit"> {{ $ .locale .Tr "repo.projects.column.new_submit" }} </button>
2023-01-20 06:42:33 -05:00
</div>
</form>
</div>
</div>
</div>
</div>
<div class="ui divider"></div>
<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-03-12 09:36:47 -04:00
{{ if $ .CanWriteProjects }}
2023-01-20 06:42:33 -05:00
<div class="column right aligned">
<div class="ui compact right small menu">
2023-03-09 09:38:29 -05:00
<a class="item" href=" {{ $ .Link }} /edit?redirect=project" data-id= {{ $ .Project .ID }} data-title= {{ $ .Project .Title }} >
2023-01-20 06:42:33 -05:00
{{ svg "octicon-pencil" }}
2023-02-13 12:59:59 -05:00
<span class="gt-mx-3"> {{ $ .locale .Tr "repo.issues.label_edit" }} </span>
2023-01-20 06:42:33 -05:00
</a>
{{ if .Project .IsClosed }}
<a class="item link-action" href data-url=" {{ $ .Link }} /open">
{{ svg "octicon-check" }}
2023-02-13 12:59:59 -05:00
<span class="gt-mx-3"> {{ $ .locale .Tr "repo.projects.open" }} </span>
2023-01-20 06:42:33 -05:00
</a>
{{ else }}
<a class="item link-action" href data-url=" {{ $ .Link }} /close">
{{ svg "octicon-skip" }}
2023-02-13 12:59:59 -05:00
<span class="gt-mx-3"> {{ $ .locale .Tr "repo.projects.close" }} </span>
2023-01-20 06:42:33 -05:00
</a>
{{ end }}
<a class="item delete-button" href="#" data-url=" {{ $ .Link }} /delete" data-id=" {{ .Project .ID }} ">
{{ svg "octicon-trash" }}
2023-02-13 12:59:59 -05:00
<span class="gt-mx-3"> {{ $ .locale .Tr "repo.issues.label_delete" }} </span>
2023-01-20 06:42:33 -05:00
</a>
</div>
</div>
{{ end }}
</div>
<div class="ui divider"></div>
</div>
<div class="ui container fluid padded" id="project-board">
<div class="board">
{{ range $ board : = .Boards }}
<div class="ui segment board-column" style="background: {{ .Color }} !important;" data-id=" {{ .ID }} " data-sorting=" {{ .Sorting }} " data-url=" {{ $ .Link }} / {{ .ID }} ">
2023-02-13 12:59:59 -05:00
<div class="board-column-header gt-df gt-ac gt-sb">
<div class="ui large label board-label gt-py-2">
2023-01-20 06:42:33 -05:00
<div class="ui small circular grey label board-card-cnt">
{{ .NumIssues }}
</div>
{{ .Title }}
</div>
{{ if and $ .CanWriteProjects ( ne .ID 0 ) }}
<div class="ui dropdown jump item tooltip">
2023-02-13 12:59:59 -05:00
<div class="not-mobile gt-px-3" tabindex="-1">
2023-01-20 06:42:33 -05:00
{{ svg "octicon-kebab-horizontal" }}
</div>
<div class="menu user-menu" tabindex="-1">
<a class="item show-modal button" data-modal="#edit-project-board-modal- {{ .ID }} ">
{{ svg "octicon-pencil" }}
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.edit" }}
2023-01-20 06:42:33 -05:00
</a>
{{ if not .Default }}
<a class="item show-modal button" data-modal="#set-default-project-board-modal- {{ .ID }} ">
{{ svg "octicon-pin" }}
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.set_default" }}
2023-01-20 06:42:33 -05:00
</a>
{{ end }}
<a class="item show-modal button" data-modal="#delete-board-modal- {{ .ID }} ">
{{ svg "octicon-trash" }}
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.delete" }}
2023-01-20 06:42:33 -05:00
</a>
<div class="ui small modal edit-project-board" id="edit-project-board-modal- {{ .ID }} ">
<div class="header">
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.edit" }}
2023-01-20 06:42:33 -05:00
</div>
<div class="content">
<form class="ui form">
<div class="required field">
2023-02-24 18:10:50 -05:00
<label for="new_board_title"> {{ $ .locale .Tr "repo.projects.column.edit_title" }} </label>
2023-01-20 06:42:33 -05:00
<input class="project-board-title" id="new_board_title" name="title" value=" {{ .Title }} " required>
</div>
<div class="field color-field">
2023-02-24 18:10:50 -05:00
<label for="new_board_color"> {{ $ .locale .Tr "repo.projects.column.color" }} </label>
2023-01-20 06:42:33 -05: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>
<div class="text right actions">
2023-03-13 23:34:09 -04:00
<button class="ui cancel button"> {{ $ .locale .Tr "settings.cancel" }} </button>
2023-03-12 07:09:20 -04:00
<button data-url=" {{ $ .Link }} / {{ .ID }} " class="ui primary button edit-column-button"> {{ $ .locale .Tr "repo.projects.column.edit" }} </button>
2023-01-20 06:42:33 -05:00
</div>
</form>
</div>
</div>
<div class="ui basic modal" id="set-default-project-board-modal- {{ .ID }} ">
<div class="ui icon header">
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.set_default" }}
2023-01-20 06:42:33 -05:00
</div>
<div class="content center">
<label>
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.set_default_desc" }}
2023-01-20 06:42:33 -05:00
</label>
</div>
<div class="text right actions">
2023-03-13 23:34:09 -04:00
<button class="ui cancel button"> {{ $ .locale .Tr "settings.cancel" }} </button>
2023-02-24 18:10:50 -05:00
<button class="ui primary button set-default-project-board" data-url=" {{ $ .Link }} / {{ .ID }} /default"> {{ $ .locale .Tr "repo.projects.column.set_default" }} </button>
2023-01-20 06:42:33 -05:00
</div>
</div>
<div class="ui basic modal" id="delete-board-modal- {{ .ID }} ">
<div class="ui icon header">
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.delete" }}
2023-01-20 06:42:33 -05:00
</div>
<div class="content center">
<label>
2023-02-24 18:10:50 -05:00
{{ $ .locale .Tr "repo.projects.column.deletion_desc" }}
2023-01-20 06:42:33 -05:00
</label>
</div>
2023-03-13 23:34:09 -04:00
<div class="text right actions"> {{ / * TODO : convert to base / delete_modal_actions .tmpl * / }}
<button class="ui cancel button"> {{ $ .locale .Tr "settings.cancel" }} </button>
2023-02-24 18:10:50 -05:00
<button class="ui red button delete-project-board" data-url=" {{ $ .Link }} / {{ .ID }} "> {{ $ .locale .Tr "repo.projects.column.delete" }} </button>
2023-01-20 06:42:33 -05:00
</div>
</div>
</div>
</div>
{{ end }}
</div>
<div class="ui divider"></div>
<div class="ui cards board" data-url=" {{ $ .Link }} / {{ .ID }} " data-project=" {{ $ .Project .ID }} " data-board=" {{ .ID }} " id="board_ {{ .ID }} ">
{{ range ( in dex $ .IssuesMap .ID ) }}
<!-- start issue card -->
<div class="card board-card" data-issue=" {{ .ID }} ">
2023-02-13 12:59:59 -05:00
<div class="content gt-p-0">
2023-01-20 06:42:33 -05:00
<div class="header">
2023-02-13 12:59:59 -05:00
<span class="gt-dif gt-ac gt-vm {{ if .IsClosed }} red {{ else }} green {{ end }} ">
2023-01-20 06:42:33 -05:00
{{ if .IsPull }}
{{ if .PullRequest .HasMerged }}
{{ svg "octicon-git-merge" 1 6 "text purple" }}
{{ else }}
{{ if .IsClosed }}
{{ svg "octicon-git-pull-request" 1 6 "text red" }}
{{ else }}
{{ svg "octicon-git-pull-request" 1 6 "text green" }}
{{ end }}
{{ end }}
{{ else }}
{{ if .IsClosed }}
{{ svg "octicon-issue-closed" 1 6 "text red" }}
{{ else }}
{{ svg "octicon-issue-opened" 1 6 "text green" }}
{{ end }}
{{ end }}
</span>
2023-02-13 12:59:59 -05:00
<a class="project-board-title gt-vm" href=" {{ .Link }} ">
2023-01-20 06:42:33 -05:00
{{ .Title }}
</a>
</div>
2023-02-13 12:59:59 -05:00
<div class="meta gt-my-2">
2023-01-20 06:42:33 -05:00
<span class="text light grey">
{{ .Repo .FullName }} # {{ .Index }}
{{ $ timeStr : = TimeSinceUnix .GetLastEventTimestamp $ .locale }}
{{ if .OriginalAuthor }}
{{ $ .locale .Tr .GetLastEventLabelFake $ timeStr ( .OriginalAuthor | Escape ) | Safe }}
{{ else if gt .Poster .ID 0 }}
{{ $ .locale .Tr .GetLastEventLabel $ timeStr ( .Poster .HomeLink | Escape ) ( .Poster .GetDisplayName | Escape ) | Safe }}
{{ else }}
{{ $ .locale .Tr .GetLastEventLabelFake $ timeStr ( .Poster .GetDisplayName | Escape ) | Safe }}
{{ end }}
</span>
</div>
{{ - if .MilestoneID }}
2023-02-13 12:59:59 -05:00
<div class="meta gt-my-2">
2023-01-20 06:42:33 -05:00
<a class="milestone" href=" {{ $ .RepoLink }} /milestone/ {{ .MilestoneID }} ">
2023-02-13 12:59:59 -05:00
{{ svg "octicon-milestone" 1 6 "gt-mr-2 gt-vm" }}
<span class="gt-vm"> {{ .Milestone .Name }} </span>
2023-01-20 06:42:33 -05:00
</a>
</div>
{{ - end }}
{{ - range in dex $ .LinkedPRs .ID }}
2023-02-13 12:59:59 -05:00
<div class="meta gt-my-2">
2023-01-20 06:42:33 -05:00
<a href=" {{ $ .RepoLink }} /pulls/ {{ .Index }} ">
2023-03-22 23:24:16 -04: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-13 12:59:59 -05:00
<span class="gt-vm"> {{ .Title }} <span class="text light grey"># {{ .Index }} </span></span>
2023-01-20 06:42:33 -05:00
</a>
</div>
{{ - end }}
</div>
{{ if or .Labels .Assignees }}
2023-02-13 12:59:59 -05:00
<div class="extra content labels-list gt-p-0 gt-pt-2">
2023-01-20 06:42:33 -05:00
{{ range .Labels }}
2023-03-05 16:59:05 -05:00
<a target="_blank" href=" {{ $ .RepoLink }} /issues?labels= {{ .ID }} "> {{ RenderLabel $ .Context . }} </a>
2023-01-20 06:42:33 -05:00
{{ end }}
<div class="right floated">
{{ range .Assignees }}
2023-03-07 18:17:35 -05:00
<a class="tooltip" target="_blank" href=" {{ .HomeLink }} " data-content=" {{ $ .locale .Tr "repo.projects.column.assigned_to" }} {{ .Name }} "> {{ avatar $ .Context . 2 8 "mini gt-mr-3" }} </a>
2023-01-20 06:42:33 -05:00
{{ end }}
</div>
</div>
{{ end }}
</div>
<!-- stop issue card -->
{{ end }}
</div>
</div>
{{ end }}
</div>
</div>
</div>
2023-03-12 09:36:47 -04:00
{{ if .CanWriteProjects }}
2023-01-20 06:42:33 -05:00
<div class="ui small basic delete modal">
<div class="ui icon header">
{{ svg "octicon-trash" }}
{{ .locale .Tr "repo.projects.deletion" }}
</div>
<div class="content">
<p> {{ .locale .Tr "repo.projects.deletion_desc" }} </p>
</div>
2023-03-13 23:34:09 -04:00
{{ template "base/delete_modal_actions" . }}
2023-01-20 06:42:33 -05:00
</div>
{{ end }}