|
1 | 1 | package router
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "fmt" |
4 | 5 | "net/http"
|
5 | 6 | "time"
|
6 | 7 |
|
@@ -316,32 +317,34 @@ func (rt *Router) boardClone(c *gin.Context) {
|
316 | 317 |
|
317 | 318 | type boardsForm struct {
|
318 | 319 | BoardIds []int64 `json:"board_ids"`
|
| 320 | + Bgids []int64 `json:"bgids"` |
319 | 321 | }
|
320 | 322 |
|
321 | 323 | func (rt *Router) boardBatchClone(c *gin.Context) {
|
322 | 324 | me := c.MustGet("user").(*models.User)
|
323 |
| - bgid := ginx.UrlParamInt64(c, "id") |
324 |
| - rt.bgrwCheck(c, bgid) |
325 |
| - |
326 | 325 | var f boardsForm
|
327 | 326 | ginx.BindJSON(c, &f)
|
328 | 327 |
|
| 328 | + for _, bgid := range f.Bgids { |
| 329 | + rt.bgrwCheck(c, bgid) |
| 330 | + } |
| 331 | + |
329 | 332 | reterr := make(map[string]string, len(f.BoardIds))
|
330 | 333 | lang := c.GetHeader("X-Language")
|
331 |
| - for _, bid := range f.BoardIds { |
332 |
| - bo := rt.Board(bid) |
333 | 334 |
|
334 |
| - newBoard := bo.Clone(me.Username, bgid) |
335 |
| - payload, err := models.BoardPayloadGet(rt.Ctx, bo.Id) |
336 |
| - if err != nil { |
337 |
| - reterr[newBoard.Name] = i18n.Sprintf(lang, err.Error()) |
338 |
| - continue |
339 |
| - } |
| 335 | + for _, bgid := range f.Bgids { |
| 336 | + for _, bid := range f.BoardIds { |
| 337 | + bo := rt.Board(bid) |
| 338 | + newBoard := bo.Clone(me.Username, bgid) |
| 339 | + payload, err := models.BoardPayloadGet(rt.Ctx, bo.Id) |
| 340 | + if err != nil { |
| 341 | + reterr[fmt.Sprintf("%s-%d", newBoard.Name, bgid)] = i18n.Sprintf(lang, err.Error()) |
| 342 | + continue |
| 343 | + } |
340 | 344 |
|
341 |
| - if err = newBoard.AtomicAdd(rt.Ctx, payload); err != nil { |
342 |
| - reterr[newBoard.Name] = i18n.Sprintf(lang, err.Error()) |
343 |
| - } else { |
344 |
| - reterr[newBoard.Name] = "" |
| 345 | + if err = newBoard.AtomicAdd(rt.Ctx, payload); err != nil { |
| 346 | + reterr[fmt.Sprintf("%s-%d", newBoard.Name, bgid)] = i18n.Sprintf(lang, err.Error()) |
| 347 | + } |
345 | 348 | }
|
346 | 349 | }
|
347 | 350 |
|
|
0 commit comments