Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2026-02-01 10:20:50 +08:00
parent 4ce296d7ae
commit 89536ceb19
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 21 additions and 9 deletions

View file

@ -212,7 +212,7 @@ func setAttrViewGroup(c *gin.Context) {
return
}
ret = renderAttrView(blockID, avID, "", "", 1, -1, nil)
ret = renderAttrView(blockID, avID, "", "", 1, -1, nil, false)
c.JSON(http.StatusOK, ret)
}
@ -235,7 +235,7 @@ func changeAttrViewLayout(c *gin.Context) {
return
}
ret = renderAttrView(blockID, avID, "", "", 1, -1, nil)
ret = renderAttrView(blockID, avID, "", "", 1, -1, nil, false)
c.JSON(http.StatusOK, ret)
}
@ -864,13 +864,19 @@ func renderAttributeView(c *gin.Context) {
groupPaging = groupPagingArg.(map[string]interface{})
}
ret = renderAttrView(blockID, id, viewID, query, page, pageSize, groupPaging)
createIfNotExist := true
createIfNotExistArg := arg["createIfNotExist"]
if nil != createIfNotExistArg {
createIfNotExist = createIfNotExistArg.(bool)
}
ret = renderAttrView(blockID, id, viewID, query, page, pageSize, groupPaging, createIfNotExist)
c.JSON(http.StatusOK, ret)
}
func renderAttrView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}) (ret *gulu.Result) {
func renderAttrView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}, createIfNotExist bool) (ret *gulu.Result) {
ret = gulu.Ret.NewResult()
view, attrView, err := model.RenderAttributeView(blockID, avID, viewID, query, page, pageSize, groupPaging)
view, attrView, err := model.RenderAttributeView(blockID, avID, viewID, query, page, pageSize, groupPaging, createIfNotExist)
if err != nil {
ret.Code = -1
ret.Msg = err.Error()

View file

@ -877,9 +877,10 @@ func GetAttributeViewI18n(key string) string {
}
var (
ErrViewNotFound = errors.New("view not found")
ErrKeyNotFound = errors.New("key not found")
ErrWrongLayoutType = errors.New("wrong layout type")
ErrAttributeViewNotFound = errors.New("attribute view not found")
ErrViewNotFound = errors.New("view not found")
ErrKeyNotFound = errors.New("key not found")
ErrWrongLayoutType = errors.New("wrong layout type")
)
const (

View file

@ -35,10 +35,15 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func RenderAttributeView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}) (viewable av.Viewable, attrView *av.AttributeView, err error) {
func RenderAttributeView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}, createIfNotExist bool) (viewable av.Viewable, attrView *av.AttributeView, err error) {
waitForSyncingStorages()
if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) {
if !createIfNotExist {
err = av.ErrAttributeViewNotFound
return
}
attrView = av.NewAttributeView(avID)
if err = av.SaveAttributeView(attrView); err != nil {
logging.LogErrorf("save attribute view [%s] failed: %s", avID, err)