summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--routers/web/org/projects.go22
-rw-r--r--templates/projects/new.tmpl18
-rw-r--r--templates/projects/view.tmpl7
3 files changed, 47 insertions, 0 deletions
diff --git a/routers/web/org/projects.go b/routers/web/org/projects.go
index 080388f01f..129864f9c4 100644
--- a/routers/web/org/projects.go
+++ b/routers/web/org/projects.go
@@ -13,6 +13,7 @@ import (
issues_model "code.gitea.io/gitea/models/issues"
project_model "code.gitea.io/gitea/models/project"
+ attachment_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
@@ -122,6 +123,7 @@ func canWriteProjects(ctx *context.Context) bool {
func NewProject(ctx *context.Context) {
ctx.Data["Title"] = ctx.Tr("repo.projects.new")
ctx.Data["BoardTypes"] = project_model.GetBoardConfig()
+ ctx.Data["CardTypes"] = project_model.GetCardConfig()
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
ctx.Data["PageIsViewProjects"] = true
ctx.Data["HomeLink"] = ctx.ContextUser.HomeLink()
@@ -139,6 +141,7 @@ func NewProjectPost(ctx *context.Context) {
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
ctx.Data["PageIsViewProjects"] = true
ctx.Data["BoardTypes"] = project_model.GetBoardConfig()
+ ctx.Data["CardTypes"] = project_model.GetCardConfig()
ctx.HTML(http.StatusOK, tplProjectsNew)
return
}
@@ -149,6 +152,7 @@ func NewProjectPost(ctx *context.Context) {
Description: form.Content,
CreatorID: ctx.Doer.ID,
BoardType: form.BoardType,
+ CardType: form.CardType,
Type: project_model.TypeOrganization,
}); err != nil {
ctx.ServerError("NewProject", err)
@@ -216,6 +220,8 @@ func EditProject(ctx *context.Context) {
ctx.Data["PageIsEditProjects"] = true
ctx.Data["PageIsViewProjects"] = true
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
+ ctx.Data["CardTypes"] = project_model.GetCardConfig()
+
shared_user.RenderUserHeader(ctx)
p, err := project_model.GetProjectByID(ctx, ctx.ParamsInt64(":id"))
@@ -237,6 +243,7 @@ func EditProject(ctx *context.Context) {
ctx.Data["content"] = p.Description
ctx.Data["redirect"] = ctx.FormString("redirect")
ctx.Data["HomeLink"] = ctx.ContextUser.HomeLink()
+ ctx.Data["card_type"] = p.CardType
ctx.HTML(http.StatusOK, tplProjectsNew)
}
@@ -248,6 +255,8 @@ func EditProjectPost(ctx *context.Context) {
ctx.Data["PageIsEditProjects"] = true
ctx.Data["PageIsViewProjects"] = true
ctx.Data["CanWriteProjects"] = canWriteProjects(ctx)
+ ctx.Data["CardTypes"] = project_model.GetCardConfig()
+
shared_user.RenderUserHeader(ctx)
if ctx.HasError() {
@@ -271,6 +280,7 @@ func EditProjectPost(ctx *context.Context) {
p.Title = form.Title
p.Description = form.Content
+ p.CardType = form.CardType
if err = project_model.UpdateProject(ctx, p); err != nil {
ctx.ServerError("UpdateProjects", err)
return
@@ -316,6 +326,18 @@ func ViewProject(ctx *context.Context) {
return
}
+ if project.CardType != project_model.CardTypeTextOnly {
+ issuesAttachmentMap := make(map[int64][]*attachment_model.Attachment)
+ for _, issuesList := range issuesMap {
+ for _, issue := range issuesList {
+ if issueAttachment, err := attachment_model.GetAttachmentsByIssueIDImagesLatest(ctx, issue.ID); err == nil {
+ issuesAttachmentMap[issue.ID] = issueAttachment
+ }
+ }
+ }
+ ctx.Data["issuesAttachmentMap"] = issuesAttachmentMap
+ }
+
linkedPrsMap := make(map[int64][]*issues_model.Issue)
for _, issuesList := range issuesMap {
for _, issue := range issuesList {
diff --git a/templates/projects/new.tmpl b/templates/projects/new.tmpl
index 1314884da6..cb3214c49d 100644
--- a/templates/projects/new.tmpl
+++ b/templates/projects/new.tmpl
@@ -43,6 +43,24 @@
</div>
</div>
{{end}}
+
+ <div class="field">
+ <label>{{.locale.Tr "repo.projects.card_type.desc"}}</label>
+ <div class="ui selection dropdown">
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ {{range $element := .CardTypes}}
+ {{if or (eq $.card_type $element.CardType) (and (not $.PageIsEditProjects) (eq $element.CardType 1))}}
+ <input type="hidden" name="card_type" value="{{$element.CardType}}">
+ <div class="default text">{{$.locale.Tr $element.Translation}}</div>
+ {{end}}
+ {{end}}
+ <div class="menu">
+ {{range $element := .CardTypes}}
+ <div class="item" data-id="{{$element.CardType}}" data-value="{{$element.CardType}}">{{$.locale.Tr $element.Translation}}</div>
+ {{end}}
+ </div>
+ </div>
+ </div>
</div>
<div class="ui container">
<div class="ui divider"></div>
diff --git a/templates/projects/view.tmpl b/templates/projects/view.tmpl
index c815ec4f6a..c1f52cefd4 100644
--- a/templates/projects/view.tmpl
+++ b/templates/projects/view.tmpl
@@ -175,6 +175,13 @@
<!-- start issue card -->
<div class="card board-card" data-issue="{{.ID}}">
+ {{if eq $.Project.CardType 1}}{{/* Images and Text*/}}
+ <div class="card-attachment-images">
+ {{range (index $.issuesAttachmentMap .ID)}}
+ <img src="{{.DownloadURL}}" alt="{{.Name}}" />
+ {{end}}
+ </div>
+ {{end}}
<div class="content gt-p-0">
<div class="header">
<span class="gt-dif gt-ac gt-vm {{if .IsClosed}}red{{else}}green{{end}}">