Browse Source

:art: 数据历史文档中支持操作类型过滤 https://github.com/siyuan-note/siyuan/issues/5754

Liang Ding 2 years ago
parent
commit
bd0ec0dcf2
2 changed files with 10 additions and 4 deletions
  1. 5 1
      kernel/api/history.go
  2. 5 3
      kernel/model/history.go

+ 5 - 1
kernel/api/history.go

@@ -40,7 +40,11 @@ func searchHistory(c *gin.Context) {
 	if nil != arg["page"] {
 		page = int(arg["page"].(float64))
 	}
-	histories := model.FullTextSearchHistory(query, page)
+	op := "all"
+	if nil != arg["op"] {
+		op = arg["op"].(string)
+	}
+	histories := model.FullTextSearchHistory(query, op, page)
 	ret.Data = map[string]interface{}{
 		"histories": histories,
 	}

+ 5 - 3
kernel/model/history.go

@@ -275,7 +275,7 @@ func GetDocHistory(boxID string, page int) (ret []*History, err error) {
 	return
 }
 
-func FullTextSearchHistory(query string, page int) (ret []*History) {
+func FullTextSearchHistory(query, op string, page int) (ret []*History) {
 	query = gulu.Str.RemoveInvisible(query)
 	query = stringQuery(query)
 
@@ -284,8 +284,10 @@ func FullTextSearchHistory(query string, page int) (ret []*History) {
 	to := page * pageSize
 
 	table := "histories_fts_case_insensitive"
-	projections := "type, op, title, content, path, created"
-	stmt := "SELECT " + projections + " FROM " + table + " WHERE " + table + " MATCH '{title content}:(" + query + ")'"
+	stmt := "SELECT * FROM " + table + " WHERE " + table + " MATCH '{title content}:(" + query + ")'"
+	if "all" != op {
+		stmt += " AND op = '" + op + "'"
+	}
 	stmt += " ORDER BY created DESC LIMIT " + strconv.Itoa(from) + ", " + strconv.Itoa(to)
 	sqlHistories := sql.SelectHistoriesRawStmt(stmt)
 	ret = fromSQLHistories(sqlHistories)