Skip to content

Commit 5482602

Browse files
HesterGsilverwind
andauthored
Add cardtype to org/user level project on creation, edit and view (#24043) (#24066)
Backport #24043 Part of #23318 The way to fix the missing cardtype for user/org level projects in this PR is to port the cardtype related part from #22112 to org/user level projects' template and router functions. Before: <img width="1135" alt="截屏2023-04-11 13 55 49" src="https://user-images.githubusercontent.com/17645053/231069068-ba897129-ae90-4aa0-9b0f-468bf5c65375.png"> <img width="1131" alt="截屏2023-04-11 13 55 59" src="https://user-images.githubusercontent.com/17645053/231069084-279f6681-5a10-42da-b5a8-2b0ba47c7078.png"> After: Create <img width="835" alt="截屏2023-04-11 13 27 16" src="https://user-images.githubusercontent.com/17645053/231064445-0d6e12bd-5725-48db-a102-80e7472757c2.png"> Edit <img width="852" alt="截屏2023-04-11 13 27 05" src="https://user-images.githubusercontent.com/17645053/231064503-c70525cd-1038-43ec-8d93-8b8d95d183d4.png"> View <img width="1329" alt="截屏2023-04-11 13 26 56" src="https://user-images.githubusercontent.com/17645053/231064529-26023c85-698b-4b2e-af02-45f9820c77ec.png"> --------- Co-authored-by: silverwind <me@silverwind.io>
1 parent 37d3e0e commit 5482602

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

Diff for: routers/web/org/projects.go

+22
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
issues_model "code.gitea.io/gitea/models/issues"
1515
project_model "code.gitea.io/gitea/models/project"
16+
attachment_model "code.gitea.io/gitea/models/repo"
1617
"code.gitea.io/gitea/models/unit"
1718
"code.gitea.io/gitea/modules/base"
1819
"code.gitea.io/gitea/modules/context"
@@ -122,6 +123,7 @@ func canWriteProjects(ctx *context.Context) bool {
122123
func NewProject(ctx *context.Context) {
123124
ctx.Data["Title"] = ctx.Tr("repo.projects.new")
124125
ctx.Data["BoardTypes"] = project_model.GetBoardConfig()
126+
ctx.Data["CardTypes"] = project_model.GetCardConfig()
125127
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
126128
ctx.Data["PageIsViewProjects"] = true
127129
ctx.Data["HomeLink"] = ctx.ContextUser.HomeLink()
@@ -139,6 +141,7 @@ func NewProjectPost(ctx *context.Context) {
139141
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
140142
ctx.Data["PageIsViewProjects"] = true
141143
ctx.Data["BoardTypes"] = project_model.GetBoardConfig()
144+
ctx.Data["CardTypes"] = project_model.GetCardConfig()
142145
ctx.HTML(http.StatusOK, tplProjectsNew)
143146
return
144147
}
@@ -149,6 +152,7 @@ func NewProjectPost(ctx *context.Context) {
149152
Description: form.Content,
150153
CreatorID: ctx.Doer.ID,
151154
BoardType: form.BoardType,
155+
CardType: form.CardType,
152156
Type: project_model.TypeOrganization,
153157
}); err != nil {
154158
ctx.ServerError("NewProject", err)
@@ -216,6 +220,8 @@ func EditProject(ctx *context.Context) {
216220
ctx.Data["PageIsEditProjects"] = true
217221
ctx.Data["PageIsViewProjects"] = true
218222
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
223+
ctx.Data["CardTypes"] = project_model.GetCardConfig()
224+
219225
shared_user.RenderUserHeader(ctx)
220226

221227
p, err := project_model.GetProjectByID(ctx, ctx.ParamsInt64(":id"))
@@ -237,6 +243,7 @@ func EditProject(ctx *context.Context) {
237243
ctx.Data["content"] = p.Description
238244
ctx.Data["redirect"] = ctx.FormString("redirect")
239245
ctx.Data["HomeLink"] = ctx.ContextUser.HomeLink()
246+
ctx.Data["card_type"] = p.CardType
240247

241248
ctx.HTML(http.StatusOK, tplProjectsNew)
242249
}
@@ -248,6 +255,8 @@ func EditProjectPost(ctx *context.Context) {
248255
ctx.Data["PageIsEditProjects"] = true
249256
ctx.Data["PageIsViewProjects"] = true
250257
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
258+
ctx.Data["CardTypes"] = project_model.GetCardConfig()
259+
251260
shared_user.RenderUserHeader(ctx)
252261

253262
if ctx.HasError() {
@@ -271,6 +280,7 @@ func EditProjectPost(ctx *context.Context) {
271280

272281
p.Title = form.Title
273282
p.Description = form.Content
283+
p.CardType = form.CardType
274284
if err = project_model.UpdateProject(ctx, p); err != nil {
275285
ctx.ServerError("UpdateProjects", err)
276286
return
@@ -316,6 +326,18 @@ func ViewProject(ctx *context.Context) {
316326
return
317327
}
318328

329+
if project.CardType != project_model.CardTypeTextOnly {
330+
issuesAttachmentMap := make(map[int64][]*attachment_model.Attachment)
331+
for _, issuesList := range issuesMap {
332+
for _, issue := range issuesList {
333+
if issueAttachment, err := attachment_model.GetAttachmentsByIssueIDImagesLatest(ctx, issue.ID); err == nil {
334+
issuesAttachmentMap[issue.ID] = issueAttachment
335+
}
336+
}
337+
}
338+
ctx.Data["issuesAttachmentMap"] = issuesAttachmentMap
339+
}
340+
319341
linkedPrsMap := make(map[int64][]*issues_model.Issue)
320342
for _, issuesList := range issuesMap {
321343
for _, issue := range issuesList {

Diff for: templates/projects/new.tmpl

+18
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,24 @@
4343
</div>
4444
</div>
4545
{{end}}
46+
47+
<div class="field">
48+
<label>{{.locale.Tr "repo.projects.card_type.desc"}}</label>
49+
<div class="ui selection dropdown">
50+
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
51+
{{range $element := .CardTypes}}
52+
{{if or (eq $.card_type $element.CardType) (and (not $.PageIsEditProjects) (eq $element.CardType 1))}}
53+
<input type="hidden" name="card_type" value="{{$element.CardType}}">
54+
<div class="default text">{{$.locale.Tr $element.Translation}}</div>
55+
{{end}}
56+
{{end}}
57+
<div class="menu">
58+
{{range $element := .CardTypes}}
59+
<div class="item" data-id="{{$element.CardType}}" data-value="{{$element.CardType}}">{{$.locale.Tr $element.Translation}}</div>
60+
{{end}}
61+
</div>
62+
</div>
63+
</div>
4664
</div>
4765
<div class="ui container">
4866
<div class="ui divider"></div>

Diff for: templates/projects/view.tmpl

+7
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,13 @@
175175

176176
<!-- start issue card -->
177177
<div class="card board-card" data-issue="{{.ID}}">
178+
{{if eq $.Project.CardType 1}}{{/* Images and Text*/}}
179+
<div class="card-attachment-images">
180+
{{range (index $.issuesAttachmentMap .ID)}}
181+
<img src="{{.DownloadURL}}" alt="{{.Name}}" />
182+
{{end}}
183+
</div>
184+
{{end}}
178185
<div class="content gt-p-0">
179186
<div class="header">
180187
<span class="gt-dif gt-ac gt-vm {{if .IsClosed}}red{{else}}green{{end}}">

0 commit comments

Comments
 (0)