Add copying list backgrounds

This commit is contained in:
kolaente 2020-06-30 11:48:02 +02:00
parent ccebb888a1
commit 2089fd3da3
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 34 additions and 0 deletions

View File

@ -17,6 +17,7 @@
package models
import (
"code.vikunja.io/api/pkg/files"
"code.vikunja.io/web"
)
@ -191,6 +192,39 @@ func (ld *ListDuplicate) Create(a web.Auth) (err error) {
}
// Background files + unsplash info
if ld.List.BackgroundFileID != 0 {
f := &files.File{ID: ld.List.BackgroundFileID}
if err := f.LoadFileMetaByID(); err != nil {
return err
}
if err := f.LoadFileByID(); err != nil {
return err
}
defer f.File.Close()
file, err := files.Create(f.File, f.Name, f.Size, a)
if err != nil {
return
}
// Get unsplash info if applicable
up, err := GetUnsplashPhotoByFileID(ld.List.BackgroundFileID)
if err != nil && files.IsErrFileIsNotUnsplashFile(err) {
return err
}
if up != nil {
up.ID = 0
up.FileID = file.ID
if err := up.Save(); err != nil {
return err
}
}
ld.List.BackgroundFileID = file.ID
if err := CreateOrUpdateList(ld.List); err != nil {
return err
}
}
// Rights / Shares
// Generate new link shares if any are available