Skip to content

Commit 7d77978

Browse files
committed
fix legacy bugs
1 parent 5cf8947 commit 7d77978

File tree

2 files changed

+46
-42
lines changed

2 files changed

+46
-42
lines changed

routers/web/repo/release.go

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -329,12 +329,40 @@ func LatestRelease(ctx *context.Context) {
329329
ctx.Redirect(release.Link())
330330
}
331331

332-
// NewRelease render creating or edit release page
333-
func NewRelease(ctx *context.Context) {
332+
func newReleaseCommon(ctx *context.Context) {
334333
ctx.Data["Title"] = ctx.Tr("repo.release.new_release")
335334
ctx.Data["PageIsReleaseList"] = true
335+
336+
tags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID)
337+
if err != nil {
338+
ctx.ServerError("GetTagNamesByRepoID", err)
339+
return
340+
}
341+
ctx.Data["Tags"] = tags
342+
343+
ctx.Data["IsAttachmentEnabled"] = setting.Attachment.Enabled
344+
assigneeUsers, err := repo_model.GetRepoAssignees(ctx, ctx.Repo.Repository)
345+
if err != nil {
346+
ctx.ServerError("GetRepoAssignees", err)
347+
return
348+
}
349+
ctx.Data["Assignees"] = shared_user.MakeSelfOnTop(ctx.Doer, assigneeUsers)
350+
351+
upload.AddUploadContext(ctx, "release")
352+
353+
PrepareBranchList(ctx) // for New Release page
354+
}
355+
356+
// NewRelease render creating or edit release page
357+
func NewRelease(ctx *context.Context) {
358+
newReleaseCommon(ctx)
359+
if ctx.Written() {
360+
return
361+
}
362+
363+
// pre-fill the form with the tag name, target branch and the existing release (if exists)
336364
ctx.Data["tag_target"] = ctx.Repo.Repository.DefaultBranch
337-
if tagName := ctx.FormString("tag"); len(tagName) > 0 {
365+
if tagName := ctx.FormString("tag"); tagName != "" {
338366
rel, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, tagName)
339367
if err != nil && !repo_model.IsErrReleaseNotExist(err) {
340368
ctx.ServerError("GetRelease", err)
@@ -343,58 +371,38 @@ func NewRelease(ctx *context.Context) {
343371

344372
if rel != nil {
345373
rel.Repo = ctx.Repo.Repository
346-
if err := rel.LoadAttributes(ctx); err != nil {
374+
if err = rel.LoadAttributes(ctx); err != nil {
347375
ctx.ServerError("LoadAttributes", err)
348376
return
349377
}
350378

379+
ctx.Data["TagNameReleaseExists"] = true
351380
ctx.Data["tag_name"] = rel.TagName
352-
if rel.Target != "" {
353-
ctx.Data["tag_target"] = rel.Target
354-
}
381+
ctx.Data["tag_target"] = rel.Target
355382
ctx.Data["title"] = rel.Title
356383
ctx.Data["content"] = rel.Note
357384
ctx.Data["attachments"] = rel.Attachments
358385
}
359386
}
360-
ctx.Data["IsAttachmentEnabled"] = setting.Attachment.Enabled
361-
assigneeUsers, err := repo_model.GetRepoAssignees(ctx, ctx.Repo.Repository)
362-
if err != nil {
363-
ctx.ServerError("GetRepoAssignees", err)
364-
return
365-
}
366-
ctx.Data["Assignees"] = shared_user.MakeSelfOnTop(ctx.Doer, assigneeUsers)
367-
368-
upload.AddUploadContext(ctx, "release")
369-
370-
// For New Release page
371-
PrepareBranchList(ctx)
372-
if ctx.Written() {
373-
return
374-
}
375-
376-
tags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID)
377-
if err != nil {
378-
ctx.ServerError("GetTagNamesByRepoID", err)
379-
return
380-
}
381-
ctx.Data["Tags"] = tags
382387

383388
ctx.HTML(http.StatusOK, tplReleaseNew)
384389
}
385390

386391
// NewReleasePost response for creating a release
387392
func NewReleasePost(ctx *context.Context) {
393+
newReleaseCommon(ctx)
394+
if ctx.Written() {
395+
return
396+
}
397+
388398
form := web.GetForm(ctx).(*forms.NewReleaseForm)
389-
ctx.Data["Title"] = ctx.Tr("repo.release.new_release")
390-
ctx.Data["PageIsReleaseList"] = true
391399

392-
tags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID)
393-
if err != nil {
394-
ctx.ServerError("GetTagNamesByRepoID", err)
400+
rel, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, form.TagName)
401+
if err != nil && !repo_model.IsErrReleaseNotExist(err) {
402+
ctx.ServerError("GetRelease", err)
395403
return
396404
}
397-
ctx.Data["Tags"] = tags
405+
ctx.Data["TagNameReleaseExists"] = rel != nil
398406

399407
if ctx.HasError() {
400408
ctx.HTML(http.StatusOK, tplReleaseNew)
@@ -428,12 +436,6 @@ func NewReleasePost(ctx *context.Context) {
428436
}
429437
}
430438

431-
rel, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, form.TagName)
432-
if err != nil && !repo_model.IsErrReleaseNotExist(err) {
433-
ctx.ServerError("GetRelease", err)
434-
return
435-
}
436-
437439
newTagMsg := ""
438440
if form.Title != "" && form.AddTagMsg {
439441
newTagMsg = form.Title + "\n\n" + form.Content

templates/repo/release/new.tmpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,9 @@
115115
<button class="ui small primary button">{{ctx.Locale.Tr "repo.release.edit_release"}}</button>
116116
{{end}}
117117
{{else}}
118-
<button class="ui small button" name="tag_only" value="1">{{ctx.Locale.Tr "repo.release.add_tag"}}</button>
118+
{{if not .TagNameReleaseExists}}
119+
<button class="ui small button" name="tag_only" value="1">{{ctx.Locale.Tr "repo.release.add_tag"}}</button>
120+
{{end}}
119121
<button class="ui small button" name="draft" value="1">{{ctx.Locale.Tr "repo.release.save_draft"}}</button>
120122
<button class="ui small primary button">{{ctx.Locale.Tr "repo.release.publish"}}</button>
121123
{{end}}

0 commit comments

Comments
 (0)