Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2024-02-23 22:35:31 +08:00
commit 4db0eb228b
3 changed files with 57 additions and 0 deletions

View file

@ -26,6 +26,40 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func getAttributeViewPrimaryKeyValues(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
id := arg["id"].(string)
page := 1
pageArg := arg["page"]
if nil != pageArg {
page = int(pageArg.(float64))
}
pageSize := -1
pageSizeArg := arg["pageSize"]
if nil != pageSizeArg {
pageSize = int(pageSizeArg.(float64))
}
rows, err := model.GetAttributeViewPrimaryKeyValues(id, page, pageSize)
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
ret.Data = map[string]interface{}{
"rows": rows,
}
}
func addAttributeViewValues(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)

View file

@ -407,6 +407,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/av/sortAttributeViewKey", model.CheckAuth, model.CheckReadonly, sortAttributeViewCol)
ginServer.Handle("POST", "/api/av/addAttributeViewValues", model.CheckAuth, model.CheckReadonly, addAttributeViewValues)
ginServer.Handle("POST", "/api/av/removeAttributeViewValues", model.CheckAuth, model.CheckReadonly, removeAttributeViewValues)
ginServer.Handle("POST", "/api/av/getAttributeViewPrimaryKeyValues", model.CheckAuth, model.CheckReadonly, getAttributeViewPrimaryKeyValues)
ginServer.Handle("POST", "/api/ai/chatGPT", model.CheckAuth, chatGPT)
ginServer.Handle("POST", "/api/ai/chatGPTWithAction", model.CheckAuth, chatGPTWithAction)

View file

@ -38,6 +38,28 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func GetAttributeViewPrimaryKeyValues(avID string, page, pageSize int) (ret *av.KeyValues, err error) {
waitForSyncingStorages()
attrView, err := av.ParseAttributeView(avID)
if nil != err {
logging.LogErrorf("parse attribute view [%s] failed: %s", avID, err)
return
}
ret = attrView.GetBlockKeyValues()
if 1 > pageSize {
pageSize = 50
}
start := (page - 1) * pageSize
end := start + pageSize
if len(ret.Values) < end {
end = len(ret.Values)
}
ret.Values = ret.Values[start:end]
return
}
func GetAttributeViewFilterSort(id string) (filters []*av.ViewFilter, sorts []*av.ViewSort) {
waitForSyncingStorages()