diff options
-rw-r--r-- | routers/web/org/projects.go | 22 | ||||
-rw-r--r-- | templates/projects/new.tmpl | 18 | ||||
-rw-r--r-- | templates/projects/view.tmpl | 7 |
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}}"> |