From beab1dd337250cdef4e4a7588a19e7d711eb870e Mon Sep 17 00:00:00 2001
From: Mohammad Hadi Hosseinpour <wp.parsi@gmail.com>
Date: Tue, 10 Nov 2020 07:16:19 +0330
Subject: [PATCH] Added title and action buttons to Project view page (#13437)

* Added title and action buttons to Project view page

* Changed octicon for project close action

* Fix indentation in templates/repo/projects/view.tmpl

Co-authored-by: zeripath <art27@cantab.net>

* Fix indentation templates/repo/projects/view.tmpl (2nd)

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Co-authored-by: zeripath <art27@cantab.net>
---
 routers/repo/projects.go          |  2 ++
 templates/repo/projects/list.tmpl |  2 +-
 templates/repo/projects/view.tmpl | 55 ++++++++++++++++++++++++++++++-
 3 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/routers/repo/projects.go b/routers/repo/projects.go
index 948f88375e..07327df9eb 100644
--- a/routers/repo/projects.go
+++ b/routers/repo/projects.go
@@ -291,6 +291,8 @@ func ViewProject(ctx *context.Context) {
 		return
 	}
 
+	project.RenderedContent = string(markdown.Render([]byte(project.Description), ctx.Repo.RepoLink, ctx.Repo.Repository.ComposeMetas()))
+
 	ctx.Data["CanWriteProjects"] = ctx.Repo.Permission.CanWrite(models.UnitTypeProjects)
 	ctx.Data["Project"] = project
 	ctx.Data["Boards"] = allBoards
diff --git a/templates/repo/projects/list.tmpl b/templates/repo/projects/list.tmpl
index 35c3c00f44..c7ee628316 100644
--- a/templates/repo/projects/list.tmpl
+++ b/templates/repo/projects/list.tmpl
@@ -57,7 +57,7 @@
 						{{if .IsClosed}}
 							<a class="link-action" href data-url="{{$.Link}}/{{.ID}}/open">{{svg "octicon-check"}} {{$.i18n.Tr "repo.projects.open"}}</a>
 						{{else}}
-							<a class="link-action" href data-url="{{$.Link}}/{{.ID}}/close">{{svg "octicon-x"}} {{$.i18n.Tr "repo.projects.close"}}</a>
+							<a class="link-action" href data-url="{{$.Link}}/{{.ID}}/close">{{svg "octicon-skip"}} {{$.i18n.Tr "repo.projects.close"}}</a>
 						{{end}}
 						<a class="delete-button" href="#" data-url="{{$.RepoLink}}/projects/{{.ID}}/delete" data-id="{{.ID}}">{{svg "octicon-trashcan"}} {{$.i18n.Tr "repo.issues.label_delete"}}</a>
 					</div>
diff --git a/templates/repo/projects/view.tmpl b/templates/repo/projects/view.tmpl
index c25a05c5c7..ee82f24010 100644
--- a/templates/repo/projects/view.tmpl
+++ b/templates/repo/projects/view.tmpl
@@ -34,8 +34,39 @@
 			</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>
+			{{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
+				<div class="column right aligned">
+					<div class="ui compact right small menu">
+						<a class="item" href="{{$.RepoLink}}/projects/{{.Project.ID}}/edit" data-id={{$.Project.ID}} data-title={{$.Project.Title}}>
+							{{svg "octicon-pencil"}}
+							<span class="mx-3">{{$.i18n.Tr "repo.issues.label_edit"}}</span>
+						</a>
+						{{if .Project.IsClosed}}
+							<a class="item link-action" href data-url="{{$.RepoLink}}/projects/{{.Project.ID}}/open">
+								{{svg "octicon-check"}}
+								<span class="mx-3">{{$.i18n.Tr "repo.projects.open"}}</span>
+							</a>
+						{{else}}
+							<a class="item link-action" href data-url="{{$.RepoLink}}/projects/{{.Project.ID}}/close">
+								{{svg "octicon-skip"}}
+								<span class="mx-3">{{$.i18n.Tr "repo.projects.close"}}</span>
+							</a>
+						{{end}}
+						<a class="item delete-button" href="#" data-url="{{$.RepoLink}}/projects/{{.Project.ID}}/delete" data-id="{{.Project.ID}}">
+							{{svg "octicon-trashcan"}}
+							<span class="mx-3">{{$.i18n.Tr "repo.issues.label_delete"}}</span>
+						</a>
+					</div>
+				</div>
+			{{end}}
+		</div>
+		<div class="ui divider"></div>
 	</div>
-
 	<div class="ui container fluid padded" id="project-board">
 
 		<div class="board">
@@ -146,4 +177,26 @@
 
 </div>
 
+{{if or .CanWriteIssues .CanWritePulls}}
+	<div class="ui small basic delete modal">
+		<div class="ui icon header">
+			{{svg "octicon-trashcan"}}
+			{{.i18n.Tr "repo.projects.deletion"}}
+		</div>
+		<div class="content">
+			<p>{{.i18n.Tr "repo.projects.deletion_desc"}}</p>
+		</div>
+		<div class="actions">
+			<div class="ui red basic inverted cancel button">
+				<i class="remove icon"></i>
+				{{.i18n.Tr "modal.no"}}
+			</div>
+			<div class="ui green basic inverted ok button">
+				<i class="checkmark icon"></i>
+				{{.i18n.Tr "modal.yes"}}
+			</div>
+		</div>
+	</div>
+{{end}}
+
 {{template "base/footer" .}}