From c784a5874066ca1a1fd518408d5767b4eb57bd69 Mon Sep 17 00:00:00 2001
From: yp05327 <576951401@qq.com>
Date: Tue, 30 Jul 2024 13:37:43 +0900
Subject: [PATCH] Fix the display of project type for deleted projects (#31732)
Fix: #31727
After:
![image](https://github.com/user-attachments/assets/1dfb4b31-3bd6-47f7-b126-650f33f453e2)
(cherry picked from commit 75d0b61546e00390afdd850149de525dd64336a5)
Conflicts:
options/locale/locale_en-US.ini
trivial conflict & fix excessive uppercase to unify with the other translations
---
models/project/project.go | 7 +++++++
options/locale/locale_en-US.ini | 1 +
routers/web/repo/issue.go | 2 +-
templates/repo/issue/view_content/comments.tmpl | 14 ++++++++++----
4 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/models/project/project.go b/models/project/project.go
index fe5d408f64..8cebf34b5e 100644
--- a/models/project/project.go
+++ b/models/project/project.go
@@ -103,6 +103,13 @@ type Project struct {
ClosedDateUnix timeutil.TimeStamp
}
+// Ghost Project is a project which has been deleted
+const GhostProjectID = -1
+
+func (p *Project) IsGhost() bool {
+ return p.ID == GhostProjectID
+}
+
func (p *Project) LoadOwner(ctx context.Context) (err error) {
if p.Owner != nil {
return nil
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index d0a0dc0696..7da7107b9e 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -3860,6 +3860,7 @@ variables.update.failed = Failed to edit variable.
variables.update.success = The variable has been edited.
[projects]
+deleted.display_name = Deleted Project
type-1.display_name = Individual project
type-2.display_name = Repository project
type-3.display_name = Organization project
diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go
index 5a0dcd830f..afac2c5266 100644
--- a/routers/web/repo/issue.go
+++ b/routers/web/repo/issue.go
@@ -1697,7 +1697,7 @@ func ViewIssue(ctx *context.Context) {
}
ghostProject := &project_model.Project{
- ID: -1,
+ ID: project_model.GhostProjectID,
Title: ctx.Locale.TrString("repo.issues.deleted_project"),
}
diff --git a/templates/repo/issue/view_content/comments.tmpl b/templates/repo/issue/view_content/comments.tmpl
index 6d14d72646..019638bfb0 100644
--- a/templates/repo/issue/view_content/comments.tmpl
+++ b/templates/repo/issue/view_content/comments.tmpl
@@ -582,13 +582,19 @@
{{template "shared/user/authorlink" .Poster}}
{{$oldProjectDisplayHtml := "Unknown Project"}}
{{if .OldProject}}
- {{$trKey := printf "projects.type-%d.display_name" .OldProject.Type}}
- {{$oldProjectDisplayHtml = HTMLFormat `%s` (ctx.Locale.Tr $trKey) .OldProject.Title}}
+ {{$tooltip := ctx.Locale.Tr "projects.deleted.display_name"}}
+ {{if not .OldProject.IsGhost}}
+ {{$tooltip = ctx.Locale.Tr (printf "projects.type-%d.display_name" .OldProject.Type)}}
+ {{end}}
+ {{$oldProjectDisplayHtml = HTMLFormat `%s` $tooltip .OldProject.Title}}
{{end}}
{{$newProjectDisplayHtml := "Unknown Project"}}
{{if .Project}}
- {{$trKey := printf "projects.type-%d.display_name" .Project.Type}}
- {{$newProjectDisplayHtml = HTMLFormat `%s` (ctx.Locale.Tr $trKey) .Project.Title}}
+ {{$tooltip := ctx.Locale.Tr "projects.deleted.display_name"}}
+ {{if not .Project.IsGhost}}
+ {{$tooltip = ctx.Locale.Tr (printf "projects.type-%d.display_name" .Project.Type)}}
+ {{end}}
+ {{$newProjectDisplayHtml = HTMLFormat `%s` $tooltip .Project.Title}}
{{end}}
{{if and (gt .OldProjectID 0) (gt .ProjectID 0)}}
{{ctx.Locale.Tr "repo.issues.change_project_at" $oldProjectDisplayHtml $newProjectDisplayHtml $createdStr}}