@@ -36,6 +36,7 @@ type ProjectBoard struct {
36
36
ID int64 `xorm:"pk autoincr"`
37
37
Title string
38
38
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"`
39
40
40
41
ProjectID int64 `xorm:"INDEX NOT NULL"`
41
42
CreatorID int64 `xorm:"NOT NULL"`
@@ -157,15 +158,24 @@ func getProjectBoard(e Engine, boardID int64) (*ProjectBoard, error) {
157
158
return board , nil
158
159
}
159
160
160
- // UpdateProjectBoard updates the title of a project board
161
+ // UpdateProjectBoard updates a project board
161
162
func UpdateProjectBoard (board * ProjectBoard ) error {
162
163
return updateProjectBoard (x , board )
163
164
}
164
165
165
166
func 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
+
169
179
return err
170
180
}
171
181
@@ -178,7 +188,7 @@ func GetProjectBoards(projectID int64) (ProjectBoardList, error) {
178
188
func getProjectBoards (e Engine , projectID int64 ) ([]* ProjectBoard , error ) {
179
189
var boards = make ([]* ProjectBoard , 0 , 5 )
180
190
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 {
182
192
return nil , err
183
193
}
184
194
@@ -277,3 +287,17 @@ func (bs ProjectBoardList) LoadIssues() (IssueList, error) {
277
287
}
278
288
return issues , nil
279
289
}
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