Improve API listDocsByPath param sort (#8156)

* `listDocsByPath` API `sort` param
backend

* `listDocsByPath` API `sort` param
frontend

* `listDocsByPath` API `sort` param
This commit is contained in:
OpaqueGlass 2023-05-02 23:22:40 +08:00 committed by GitHub
parent cb527d7765
commit 6b62a69299
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 22 deletions

View file

@ -588,7 +588,6 @@ export class Files extends Model {
fetchPost("/api/filetree/listDocsByPath", {
notebook: toURL,
path: toDir === "/" ? "/" : toDir + ".sy",
sort: window.siyuan.config.fileTree.sort,
}, response => {
if (response.data.path === "/" && response.data.files.length === 0) {
showMessage(window.siyuan.languages.emptyContent);
@ -883,8 +882,7 @@ export class Files extends Model {
} else if (filePath.startsWith(item.path.replace(".sy", ""))) {
fetchPost("/api/filetree/listDocsByPath", {
notebook: data.box,
path: item.path,
sort: window.siyuan.config.fileTree.sort
path: item.path
}, response => {
this.selectItem(response.data.box, filePath, response.data);
});
@ -926,7 +924,6 @@ export class Files extends Model {
fetchPost("/api/filetree/listDocsByPath", {
notebook: notebookId,
path: liElement.getAttribute("data-path"),
sort: window.siyuan.config.fileTree.sort,
}, response => {
if (response.data.path === "/" && response.data.files.length === 0) {
showMessage(window.siyuan.languages.emptyContent);
@ -966,8 +963,7 @@ export class Files extends Model {
} else {
fetchPost("/api/filetree/listDocsByPath", {
notebook: notebookId,
path: currentPath,
sort: window.siyuan.config.fileTree.sort
path: currentPath
}, response => {
this.onLsSelect(response.data, filePath);
});

View file

@ -510,8 +510,7 @@ export class MobileFiles extends Model {
} else if (filePath.startsWith(item.path.replace(".sy", ""))) {
fetchPost("/api/filetree/listDocsByPath", {
notebook: data.box,
path: item.path,
sort: window.siyuan.config.fileTree.sort
path: item.path
}, response => {
this.selectItem(response.data.box, filePath, response.data);
});
@ -555,8 +554,7 @@ export class MobileFiles extends Model {
}
fetchPost("/api/filetree/listDocsByPath", {
notebook: notebookId,
path: liElement.getAttribute("data-path"),
sort: window.siyuan.config.fileTree.sort,
path: liElement.getAttribute("data-path")
}, response => {
if (response.data.path === "/" && response.data.files.length === 0) {
showMessage(window.siyuan.languages.emptyContent);
@ -596,8 +594,7 @@ export class MobileFiles extends Model {
} else {
fetchPost("/api/filetree/listDocsByPath", {
notebook: notebookId,
path: currentPath,
sort: window.siyuan.config.fileTree.sort
path: currentPath
}, response => {
this.onLsSelect(response.data, filePath);
});

View file

@ -454,7 +454,6 @@ const getLeaf = (liElement: HTMLElement, flashcard:boolean) => {
fetchPost("/api/filetree/listDocsByPath", {
notebook: notebookId,
path: liElement.getAttribute("data-path"),
sort: window.siyuan.config.fileTree.sort,
flashcard,
}, response => {
if (response.data.path === "/" && response.data.files.length === 0) {

View file

@ -96,7 +96,7 @@ func heading2Doc(c *gin.Context) {
name := path.Base(targetPath)
box := model.Conf.Box(targetNotebook)
files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), model.Conf.FileTree.Sort, false, model.Conf.FileTree.MaxListCount)
files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount)
evt := util.NewCmdResult("heading2doc", 0, util.PushModeBroadcast)
evt.Data = map[string]interface{}{
"box": box,
@ -141,7 +141,7 @@ func li2Doc(c *gin.Context) {
name := path.Base(targetPath)
box := model.Conf.Box(targetNotebook)
files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), model.Conf.FileTree.Sort, false, model.Conf.FileTree.MaxListCount)
files, _, _ := model.ListDocTree(targetNotebook, path.Dir(targetPath), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount)
evt := util.NewCmdResult("li2doc", 0, util.PushModeBroadcast)
evt.Data = map[string]interface{}{
"box": box,
@ -449,7 +449,7 @@ func createDailyNote(c *gin.Context) {
evt.AppId = app
name := path.Base(p)
files, _, _ := model.ListDocTree(box.ID, path.Dir(p), model.Conf.FileTree.Sort, false, model.Conf.FileTree.MaxListCount)
files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount)
evt.Data = map[string]interface{}{
"box": box,
"path": p,
@ -618,7 +618,7 @@ func listDocsByPath(c *gin.Context) {
notebook := arg["notebook"].(string)
p := arg["path"].(string)
sortParam := arg["sort"]
sortMode := model.Conf.FileTree.Sort
sortMode := util.SortModeUnassigned
if nil != sortParam {
sortMode = int(sortParam.(float64))
}
@ -733,7 +733,7 @@ func getDoc(c *gin.Context) {
func pushCreate(box *model.Box, p, treeID string, arg map[string]interface{}) {
evt := util.NewCmdResult("create", 0, util.PushModeBroadcast)
name := path.Base(p)
files, _, _ := model.ListDocTree(box.ID, path.Dir(p), model.Conf.FileTree.Sort, false, model.Conf.FileTree.MaxListCount)
files, _, _ := model.ListDocTree(box.ID, path.Dir(p), util.SortModeUnassigned, false, model.Conf.FileTree.MaxListCount)
evt.Data = map[string]interface{}{
"box": box,
"path": p,

View file

@ -21,6 +21,7 @@ import (
"github.com/88250/lute/parse"
"github.com/siyuan-note/siyuan/kernel/filesys"
"github.com/siyuan-note/siyuan/kernel/treenode"
"github.com/siyuan-note/siyuan/kernel/util"
)
func mergeSubDocs(rootTree *parse.Tree) (ret *parse.Tree, err error) {
@ -110,7 +111,7 @@ func loadTreeNodes(box string, p string, level int) (ret []*ast.Node, err error)
}
func buildBlockChildren(block *Block) (err error) {
files, _, err := ListDocTree(block.Box, block.Path, Conf.FileTree.Sort, false, Conf.FileTree.MaxListCount)
files, _, err := ListDocTree(block.Box, block.Path, util.SortModeUnassigned, false, Conf.FileTree.MaxListCount)
if nil != err {
return
}

View file

@ -244,8 +244,12 @@ func ListDocTree(boxID, path string, sortMode int, flashcard bool, maxListCount
}
boxConf := box.GetConf()
if util.SortModeFileTree != boxConf.SortMode {
sortMode = boxConf.SortMode
if util.SortModeUnassigned == sortMode {
sortMode = Conf.FileTree.Sort
if util.SortModeFileTree != boxConf.SortMode {
sortMode = boxConf.SortMode
}
}
var files []*FileInfo

View file

@ -194,7 +194,7 @@ func Mount(boxID string) (alreadyMount bool, err error) {
box.Index()
// 缓存根一级的文档树展开
ListDocTree(box.ID, "/", Conf.FileTree.Sort, false, Conf.FileTree.MaxListCount)
ListDocTree(box.ID, "/", util.SortModeUnassigned, false, Conf.FileTree.MaxListCount)
treenode.SaveBlockTree(false)
util.ClearPushProgress(100)

View file

@ -69,4 +69,6 @@ const (
SortModeSubDocCountASC // 13子文档数升序
SortModeSubDocCountDESC // 14子文档数降序
SortModeFileTree // 15使用文档树排序规则
SortModeUnassigned = 256 // 256未指定排序规则按照笔记本优先于文档树获取排序规则
)