diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 100e343de49b0..2c4b910e9d675 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -2562,6 +2562,11 @@ func UpdateIssueStatus(ctx *context.Context) { isClosed = false case "close": isClosed = true + case "delete": + if err := issue_service.DeleteIssues(ctx.Doer, ctx.Repo.GitRepo, issues); err != nil { + ctx.ServerError("DeleteIssues", err) + } + return default: log.Warn("Unrecognized action: %s", action) } diff --git a/services/issue/issue.go b/services/issue/issue.go index b91ee4fc18b07..9c75308fe534a 100644 --- a/services/issue/issue.go +++ b/services/issue/issue.go @@ -130,6 +130,15 @@ func UpdateAssignees(issue *issues_model.Issue, oneAssignee string, multipleAssi return err } +func DeleteIssues(doer *user_model.User, gitRepo *git.Repository, issues []*issues_model.Issue) error { + for _, issue := range issues { + if err := DeleteIssue(doer, gitRepo, issue); err != nil { + return err + } + } + return nil +} + // DeleteIssue deletes an issue func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_model.Issue) error { // load issue before deleting it diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index ad0ce50ec15fb..8d273b0d87fd1 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -171,6 +171,7 @@ {{else}}
{{.locale.Tr "repo.issues.action_close"}}
{{end}} +
{{.locale.Tr "repo.issues.delete"}}