1
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-06-29 01:45:30 +00:00
Signed-off-by: a1012112796 <1012112796@qq.com>
This commit is contained in:
a1012112796 2024-06-03 01:22:46 +00:00
parent 9b2b4da954
commit 85b93b2438
No known key found for this signature in database
GPG Key ID: E5FB19032C2C2A64
6 changed files with 22 additions and 21 deletions

View File

@ -42,7 +42,7 @@ func (issue *Issue) LoadProjectIssue(ctx context.Context) (err error) {
return err
}
return issue.ProjectIssue.LoadProjectBoard(ctx)
return issue.ProjectIssue.LoadProjectColumn(ctx)
}
func (issue *Issue) projectID(ctx context.Context) int64 {

View File

@ -19,7 +19,8 @@ type ProjectIssue struct { //revive:disable-line:exported
ProjectID int64 `xorm:"INDEX"`
// ProjectColumnID should not be zero since 1.22. If it's zero, the issue will not be displayed on UI and it might result in errors.
ProjectColumnID int64 `xorm:"'project_board_id' INDEX"`
ProjectColumnID int64 `xorm:"'project_board_id' INDEX"`
ProjectColumn *Column `xorm:"-"`
// the sorting order on the column
Sorting int64 `xorm:"NOT NULL DEFAULT 0"`
@ -62,14 +63,14 @@ func GetProjectIssueByIssueID(ctx context.Context, issueID int64) (*ProjectIssue
return issue, nil
}
func (issue *ProjectIssue) LoadProjectBoard(ctx context.Context) error {
if issue.ProjectBoard != nil {
func (issue *ProjectIssue) LoadProjectColumn(ctx context.Context) error {
if issue.ProjectColumn != nil {
return nil
}
var err error
issue.ProjectBoard, err = GetBoard(ctx, issue.ProjectBoardID)
issue.ProjectColumn, err = GetColumn(ctx, issue.ProjectColumnID)
return err
}
@ -139,20 +140,20 @@ func MoveIssuesOnProjectColumn(ctx context.Context, column *Column, sortedIssueI
})
}
func MoveIssueToBoardTail(ctx context.Context, issue *ProjectIssue, toBoard *Board) error {
func MoveIssueToColumnTail(ctx context.Context, issue *ProjectIssue, toColumn *Column) error {
ctx, committer, err := db.TxContext(ctx)
if err != nil {
return err
}
defer committer.Close()
num, err := toBoard.NumIssues(ctx)
num, err := toColumn.NumIssues(ctx)
if err != nil {
return err
}
_, err = db.GetEngine(ctx).Exec("UPDATE `project_issue` SET project_board_id=?, sorting=? WHERE issue_id=?",
toBoard.ID, num, issue.IssueID)
toColumn.ID, num, issue.IssueID)
if err != nil {
return err
}

View File

@ -2050,7 +2050,7 @@ func ViewIssue(ctx *context.Context) {
ctx.Data["CanWriteProjects"] = canWriteProjects
if canWriteProjects && issue.Project != nil {
ctx.Data["ProjectBoards"], err = issue.Project.GetBoards(ctx)
ctx.Data["ProjectColumns"], err = issue.Project.GetColumns(ctx)
if err != nil {
ctx.ServerError("Project.GetBoards", err)
return

View File

@ -619,22 +619,22 @@ func MoveBoardForIssue(ctx *context.Context) {
return
}
board, err := project_model.GetBoard(ctx, ctx.ParamsInt64(":boardID"))
column, err := project_model.GetColumn(ctx, ctx.ParamsInt64(":columnID"))
if err != nil {
if project_model.IsErrProjectBoardNotExist(err) {
ctx.NotFound("ProjectBoardNotExist", nil)
if project_model.IsErrProjectColumnNotExist(err) {
ctx.NotFound("ErrProjectColumnNotExist", nil)
} else {
ctx.ServerError("GetProjectBoard", err)
ctx.ServerError("GetColumn", err)
}
return
}
if board.ProjectID != issue.Project.ID {
ctx.NotFound("BoardNotInProject", nil)
if column.ProjectID != issue.Project.ID {
ctx.NotFound("ColumnNotInProject", nil)
return
}
err = project_model.MoveIssueToBoardTail(ctx, issue.ProjectIssue, board)
err = project_model.MoveIssueToColumnTail(ctx, issue.ProjectIssue, column)
if err != nil {
ctx.NotFound("MoveIssueToBoardTail", nil)
return

View File

@ -1212,7 +1212,7 @@ func registerRoutes(m *web.Route) {
m.Post("/lock", reqRepoIssuesOrPullsWriter, web.Bind(forms.IssueLockForm{}), repo.LockIssue)
m.Post("/unlock", reqRepoIssuesOrPullsWriter, repo.UnlockIssue)
m.Post("/delete", reqRepoAdmin, repo.DeleteIssue)
m.Post("/move_project_board/{boardID}", repo.MoveBoardForIssue)
m.Post("/move_project_column/{columnID}", repo.MoveBoardForIssue)
}, context.RepoMustNotBeArchived())
m.Group("/{index}", func() {

View File

@ -200,13 +200,13 @@
<a class="item muted sidebar-item-link tw-block" href="{{.Issue.Project.Link ctx}}">
{{svg .Issue.Project.IconName 18 "tw-mr-2"}}{{.Issue.Project.Title}}
</a>
<div class="ui dropdown jump {{if not .CanWriteProjects}}disabled{{end}} select-issue-project-board item tw-mx-0 tw-pr-2" data-url="{{$.Issue.Link}}/move_project_board/">
<div class="ui dropdown jump {{if not .CanWriteProjects}}disabled{{end}} select-issue-project-board item tw-mx-0 tw-pr-2" data-url="{{$.Issue.Link}}/move_project_column/">
<span class="text">
{{ctx.Locale.Tr "repo.issues.move_project_boad"}}: {{.Issue.ProjectIssue.ProjectBoard.Title}}
{{ctx.Locale.Tr "repo.issues.move_project_boad"}}: {{.Issue.ProjectIssue.ProjectColumn.Title}}
</span>
<div class="menu">
{{if .ProjectBoards}}
{{range .ProjectBoards}}
{{if .ProjectColumns}}
{{range .ProjectColumns}}
<div class="item no-select" data-project-id="{{.ProjectID}}" data-board-id="{{.ID}}">{{.Title}}</div>
{{end}}
{{end}}