diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 1fb68ff775..54e041d785 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1541,6 +1541,7 @@ issues.dependency.issue_closing_blockedby = Closing this issue is blocked by the issues.dependency.issue_close_blocks = This issue blocks closing of the following issues issues.dependency.pr_close_blocks = This pull request blocks closing of the following issues issues.dependency.issue_close_blocked = You need to close all issues blocking this issue before you can close it. +issues.dependency.issue_batch_close_blocked = "Cannot batch close issues that you choose, because issue #%d still has open dependencies" issues.dependency.pr_close_blocked = You need to close all issues blocking this pull request before you can merge it. issues.dependency.blocks_short = Blocks issues.dependency.blocked_by_short = Depends on diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index bea35785bb..49ea4f2a1f 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -2689,7 +2689,7 @@ func UpdateIssueStatus(ctx *context.Context) { if err := issue_service.ChangeStatus(issue, ctx.Doer, "", isClosed); err != nil { if issues_model.IsErrDependenciesLeft(err) { ctx.JSON(http.StatusPreconditionFailed, map[string]interface{}{ - "error": "cannot close this issue because it still has open dependencies", + "error": ctx.Tr("repo.issues.dependency.issue_batch_close_blocked", issue.Index), }) return } diff --git a/web_src/js/features/repo-issue-list.js b/web_src/js/features/repo-issue-list.js index 6c5d1244fd..915cd2e132 100644 --- a/web_src/js/features/repo-issue-list.js +++ b/web_src/js/features/repo-issue-list.js @@ -55,6 +55,8 @@ function initRepoIssueListCheckboxes() { elementId ).then(() => { window.location.reload(); + }).catch((reason) => { + window.alert(reason.responseJSON.error); }); }); }