🎨 数据历史文档和资源文件支持分页和搜索 https://github.com/siyuan-note/siyuan/issues/4901

This commit is contained in:
Liang Ding 2022-08-29 00:17:29 +08:00
parent 710b2d633c
commit 07e74577ff
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
3 changed files with 34 additions and 2 deletions

View file

@ -26,6 +26,35 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func searchHistory(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
query := arg["query"].(string)
page := int(arg["page"].(float64))
histories := model.FullTextSearchHistory(query, page)
ret.Data = map[string]interface{}{
"histories": histories,
}
}
func reindexHistory(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
err := model.ReindexHistory()
if nil != err {
ret.Code = -1
ret.Msg = err.Error()
return
}
}
func getNotebookHistory(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)

View file

@ -101,6 +101,8 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/history/getDocHistoryContent", model.CheckAuth, getDocHistoryContent)
ginServer.Handle("POST", "/api/history/rollbackDocHistory", model.CheckAuth, model.CheckReadonly, rollbackDocHistory)
ginServer.Handle("POST", "/api/history/clearWorkspaceHistory", model.CheckAuth, model.CheckReadonly, clearWorkspaceHistory)
ginServer.Handle("POST", "/api/history/reindexHistory", model.CheckAuth, model.CheckReadonly, reindexHistory)
ginServer.Handle("POST", "/api/history/searchHistory", model.CheckAuth, model.CheckReadonly, searchHistory)
ginServer.Handle("POST", "/api/outline/getDocOutline", model.CheckAuth, getDocOutline)
ginServer.Handle("POST", "/api/bookmark/getBookmark", model.CheckAuth, getBookmark)

View file

@ -611,7 +611,7 @@ func GetHistoryDir(suffix string) (ret string, err error) {
return
}
func indexHistory() {
func ReindexHistory() (err error) {
historyDirs, err := os.ReadDir(util.HistoryDir)
if nil != err {
logging.LogErrorf("read history dir [%s] failed: %s", util.HistoryDir, err)
@ -630,6 +630,7 @@ func indexHistory() {
return
}
}
return
}
var validOps = []string{HistoryOpClean, HistoryOpUpdate, HistoryOpDelete, HistoryOpFormat}
@ -713,7 +714,7 @@ func indexHistoryDir(name string, luteEngine *lute.Lute) (err error) {
return
}
func fullTextSearchHistory(query string, page int) (ret []*History, matchedBlockCount, matchedRootCount int) {
func FullTextSearchHistory(query string, page int) (ret []*History) {
query = gulu.Str.RemoveInvisible(query)
query = stringQuery(query)