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

This commit is contained in:
Vanessa 2024-12-25 21:16:58 +08:00
commit bd772aa181
3 changed files with 40 additions and 0 deletions

View file

@ -224,6 +224,22 @@ func setBlockReminder(c *gin.Context) {
}
}
func getUnfoldedParentID(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)
parentID := model.GetUnfoldedParentID(id)
ret.Data = map[string]interface{}{
"parentID": parentID,
}
}
func checkBlockFold(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)

View file

@ -189,6 +189,7 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/block/getDocInfo", model.CheckAuth, getDocInfo)
ginServer.Handle("POST", "/api/block/getDocsInfo", model.CheckAuth, getDocsInfo)
ginServer.Handle("POST", "/api/block/checkBlockExist", model.CheckAuth, checkBlockExist)
ginServer.Handle("POST", "/api/block/getUnfoldedParentID", model.CheckAuth, getUnfoldedParentID)
ginServer.Handle("POST", "/api/block/checkBlockFold", model.CheckAuth, checkBlockFold)
ginServer.Handle("POST", "/api/block/insertBlock", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, insertBlock)
ginServer.Handle("POST", "/api/block/prependBlock", model.CheckAuth, model.CheckAdminRole, model.CheckReadonly, prependBlock)

View file

@ -257,6 +257,29 @@ func GetBlockSiblingID(id string) (parent, previous, next string) {
return
}
func GetUnfoldedParentID(id string) (parentID string) {
tree, err := LoadTreeByBlockID(id)
if err != nil {
return
}
node := treenode.GetNodeInTree(tree, id)
if nil == node {
return
}
if !node.IsBlock() {
return
}
for parent := treenode.HeadingParent(node); nil != parent && ast.NodeDocument != parent.Type; parent = treenode.HeadingParent(parent) {
if "1" != parent.IALAttr("fold") {
return parent.ID
}
}
return
}
func IsBlockFolded(id string) (isFolded, isRoot bool) {
tree, _ := LoadTreeByBlockID(id)
if nil == tree {