@@ -36,6 +36,7 @@ type ProjectBoard struct {
3636 ID int64 `xorm:"pk autoincr"`
3737 Title string
3838 Default bool `xorm:"NOT NULL DEFAULT false"` // issues not assigned to a specific board will be assigned to this board
39+ Sorting int8 `xorm:"DEFAULT 0"`
3940
4041 ProjectID int64 `xorm:"INDEX NOT NULL"`
4142 CreatorID int64 `xorm:"NOT NULL"`
@@ -157,15 +158,24 @@ func getProjectBoard(e Engine, boardID int64) (*ProjectBoard, error) {
157158 return board , nil
158159}
159160
160- // UpdateProjectBoard updates the title of a project board
161+ // UpdateProjectBoard updates a project board
161162func UpdateProjectBoard (board * ProjectBoard ) error {
162163 return updateProjectBoard (x , board )
163164}
164165
165166func updateProjectBoard (e Engine , board * ProjectBoard ) error {
166- _ , err := e .ID (board .ID ).Cols (
167- "title" ,
168- ).Update (board )
167+ var fieldToUpdate []string
168+
169+ if board .Sorting != 0 {
170+ fieldToUpdate = append (fieldToUpdate , "sorting" )
171+ }
172+
173+ if board .Title != "" {
174+ fieldToUpdate = append (fieldToUpdate , "title" )
175+ }
176+
177+ _ , err := e .ID (board .ID ).Cols (fieldToUpdate ... ).Update (board )
178+
169179 return err
170180}
171181
@@ -178,7 +188,7 @@ func GetProjectBoards(projectID int64) (ProjectBoardList, error) {
178188func getProjectBoards (e Engine , projectID int64 ) ([]* ProjectBoard , error ) {
179189 var boards = make ([]* ProjectBoard , 0 , 5 )
180190
181- if err := e .Where ("project_id=? AND `default`=?" , projectID , false ).Find (& boards ); err != nil {
191+ if err := e .Where ("project_id=? AND `default`=?" , projectID , false ).OrderBy ( "Sorting" ). Find (& boards ); err != nil {
182192 return nil , err
183193 }
184194
@@ -277,3 +287,17 @@ func (bs ProjectBoardList) LoadIssues() (IssueList, error) {
277287 }
278288 return issues , nil
279289}
290+
291+ // UpdateProjectBoardSorting update project board sorting
292+ func UpdateProjectBoardSorting (bs ProjectBoardList ) error {
293+ for i := range bs {
294+ _ , err := x .ID (bs [i ].ID ).Cols (
295+ "sorting" ,
296+ ).Update (bs [i ])
297+
298+ if err != nil {
299+ return err
300+ }
301+ }
302+ return nil
303+ }
0 commit comments