diff --git a/kernel/api/history.go b/kernel/api/history.go index 4f1c50274..813f677f0 100644 --- a/kernel/api/history.go +++ b/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, } diff --git a/kernel/model/history.go b/kernel/model/history.go index f52a9e4a2..e99a14b5c 100644 --- a/kernel/model/history.go +++ b/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)