code.gitea.io/gitea@v1.22.3/templates/projects/view.tmpl (about) 1 {{$canWriteProject := and .CanWriteProjects (or (not .Repository) (not .Repository.IsArchived))}} 2 3 <div class="ui container tw-max-w-full"> 4 <div class="tw-flex tw-justify-between tw-items-center tw-mb-4 tw-gap-3"> 5 <h2 class="tw-mb-0 tw-flex-1 tw-break-anywhere">{{.Project.Title}}</h2> 6 {{if $canWriteProject}} 7 <div class="ui compact mini menu"> 8 <a class="item" href="{{.Link}}/edit?redirect=project"> 9 {{svg "octicon-pencil"}} 10 {{ctx.Locale.Tr "repo.issues.label_edit"}} 11 </a> 12 {{if .Project.IsClosed}} 13 <button class="item btn link-action" data-url="{{.Link}}/open"> 14 {{svg "octicon-check"}} 15 {{ctx.Locale.Tr "repo.projects.open"}} 16 </button> 17 {{else}} 18 <button class="item btn link-action" data-url="{{.Link}}/close"> 19 {{svg "octicon-skip"}} 20 {{ctx.Locale.Tr "repo.projects.close"}} 21 </button> 22 {{end}} 23 <button class="item btn delete-button" data-url="{{.Link}}/delete" data-id="{{.Project.ID}}"> 24 {{svg "octicon-trash"}} 25 {{ctx.Locale.Tr "repo.issues.label_delete"}} 26 </button> 27 <button class="item btn show-modal" data-modal="#new-project-column-item"> 28 {{svg "octicon-plus"}} 29 {{ctx.Locale.Tr "new_project_column"}} 30 </button> 31 </div> 32 <div class="ui small modal new-project-column-modal" id="new-project-column-item"> 33 <div class="header"> 34 {{ctx.Locale.Tr "repo.projects.column.new"}} 35 </div> 36 <div class="content"> 37 <form class="ui form"> 38 <div class="required field"> 39 <label for="new_project_column">{{ctx.Locale.Tr "repo.projects.column.new_title"}}</label> 40 <input class="new-project-column" id="new_project_column" name="title" required> 41 </div> 42 43 <div class="field color-field"> 44 <label for="new_project_column_color_picker">{{ctx.Locale.Tr "repo.projects.column.color"}}</label> 45 <div class="js-color-picker-input column"> 46 <input maxlength="7" placeholder="#c320f6" id="new_project_column_color_picker" name="color"> 47 {{template "repo/issue/label_precolors"}} 48 </div> 49 </div> 50 51 <div class="text right actions"> 52 <button class="ui cancel button">{{ctx.Locale.Tr "settings.cancel"}}</button> 53 <button data-url="{{$.Link}}" class="ui primary button" id="new_project_column_submit">{{ctx.Locale.Tr "repo.projects.column.new_submit"}}</button> 54 </div> 55 </form> 56 </div> 57 </div> 58 {{end}} 59 </div> 60 61 <div class="content">{{$.Project.RenderedContent}}</div> 62 63 <div class="divider"></div> 64 </div> 65 66 <div id="project-board"> 67 <div class="board {{if .CanWriteProjects}}sortable{{end}}"{{if .CanWriteProjects}} data-url="{{$.Link}}/move"{{end}}> 68 {{range .Columns}} 69 <div class="project-column"{{if .Color}} style="background: {{.Color}} !important; color: {{ContrastColor .Color}} !important"{{end}} data-id="{{.ID}}" data-sorting="{{.Sorting}}" data-url="{{$.Link}}/{{.ID}}"> 70 <div class="project-column-header{{if $canWriteProject}} tw-cursor-grab{{end}}"> 71 <div class="ui circular label project-column-issue-count"> 72 {{.NumIssues ctx}} 73 </div> 74 <div class="project-column-title-label gt-ellipsis">{{.Title}}</div> 75 {{if $canWriteProject}} 76 <div class="ui dropdown tw-p-1"> 77 {{svg "octicon-kebab-horizontal"}} 78 <div class="menu"> 79 <a class="item show-modal button" data-modal="#edit-project-column-modal-{{.ID}}"> 80 {{svg "octicon-pencil"}} 81 {{ctx.Locale.Tr "repo.projects.column.edit"}} 82 </a> 83 {{if not .Default}} 84 <a class="item show-modal button default-project-column-show" 85 data-modal="#default-project-column-modal-{{.ID}}" 86 data-modal-default-project-column-header="{{ctx.Locale.Tr "repo.projects.column.set_default"}}" 87 data-modal-default-project-column-content="{{ctx.Locale.Tr "repo.projects.column.set_default_desc"}}" 88 data-url="{{$.Link}}/{{.ID}}/default"> 89 {{svg "octicon-pin"}} 90 {{ctx.Locale.Tr "repo.projects.column.set_default"}} 91 </a> 92 <a class="item show-modal button show-delete-project-column-modal" 93 data-modal="#delete-project-column-modal-{{.ID}}" 94 data-url="{{$.Link}}/{{.ID}}"> 95 {{svg "octicon-trash"}} 96 {{ctx.Locale.Tr "repo.projects.column.delete"}} 97 </a> 98 {{end}} 99 100 <div class="ui small modal edit-project-column-modal" id="edit-project-column-modal-{{.ID}}"> 101 <div class="header"> 102 {{ctx.Locale.Tr "repo.projects.column.edit"}} 103 </div> 104 <div class="content"> 105 <form class="ui form"> 106 <div class="required field"> 107 <label for="new_project_column_title">{{ctx.Locale.Tr "repo.projects.column.edit_title"}}</label> 108 <input class="project-column-title-input" id="new_project_column_title" name="title" value="{{.Title}}" required> 109 </div> 110 111 <div class="field color-field"> 112 <label for="new_project_column_color">{{ctx.Locale.Tr "repo.projects.column.color"}}</label> 113 <div class="js-color-picker-input column"> 114 <input maxlength="7" placeholder="#c320f6" id="new_project_column_color" name="color" value="{{.Color}}"> 115 {{template "repo/issue/label_precolors"}} 116 </div> 117 </div> 118 119 <div class="text right actions"> 120 <button class="ui cancel button">{{ctx.Locale.Tr "settings.cancel"}}</button> 121 <button data-url="{{$.Link}}/{{.ID}}" class="ui primary button edit-project-column-button">{{ctx.Locale.Tr "repo.projects.column.edit"}}</button> 122 </div> 123 </form> 124 </div> 125 </div> 126 127 <div class="ui g-modal-confirm modal default-project-column-modal" id="default-project-column-modal-{{.ID}}"> 128 <div class="header"> 129 <span id="default-project-column-header"></span> 130 </div> 131 <div class="content"> 132 <label id="default-project-column-content"></label> 133 </div> 134 {{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}} 135 </div> 136 137 <div class="ui g-modal-confirm modal" id="delete-project-column-modal-{{.ID}}"> 138 <div class="header"> 139 {{ctx.Locale.Tr "repo.projects.column.delete"}} 140 </div> 141 <div class="content"> 142 <label> 143 {{ctx.Locale.Tr "repo.projects.column.deletion_desc"}} 144 </label> 145 </div> 146 {{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}} 147 </div> 148 </div> 149 </div> 150 {{end}} 151 </div> 152 <div class="divider"{{if .Color}} style="color: {{ContrastColor .Color}} !important"{{end}}></div> 153 <div class="ui cards" data-url="{{$.Link}}/{{.ID}}" data-project="{{$.Project.ID}}" data-board="{{.ID}}" id="board_{{.ID}}"> 154 {{range (index $.IssuesMap .ID)}} 155 <div class="issue-card gt-word-break {{if $canWriteProject}}tw-cursor-grab{{end}}" data-issue="{{.ID}}"> 156 {{template "repo/issue/card" (dict "Issue" . "Page" $)}} 157 </div> 158 {{end}} 159 </div> 160 </div> 161 {{end}} 162 </div> 163 </div> 164 165 {{if .CanWriteProjects}} 166 <div class="ui g-modal-confirm delete modal"> 167 <div class="header"> 168 {{svg "octicon-trash"}} 169 {{ctx.Locale.Tr "repo.projects.deletion"}} 170 </div> 171 <div class="content"> 172 <p>{{ctx.Locale.Tr "repo.projects.deletion_desc"}}</p> 173 </div> 174 {{template "base/modal_actions_confirm" .}} 175 </div> 176 {{end}}