From ac75f8cff50529701ca5352539b050aa5c3b6dfc Mon Sep 17 00:00:00 2001 From: Radhi Fadlillah Date: Fri, 23 Feb 2018 17:07:18 +0700 Subject: [PATCH] Fix: bookmarks not ordered by latest in web view --- cmd/search.go | 2 +- cmd/serve.go | 2 +- database/database.go | 2 +- database/sqlite.go | 6 +++++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/search.go b/cmd/search.go index dba29bb..bb8575d 100644 --- a/cmd/search.go +++ b/cmd/search.go @@ -30,7 +30,7 @@ var ( } // Read bookmarks from database - bookmarks, err := DB.SearchBookmarks(keyword, tags...) + bookmarks, err := DB.SearchBookmarks(false, keyword, tags...) if err != nil { cError.Println(err) os.Exit(1) diff --git a/cmd/serve.go b/cmd/serve.go index ab532e8..83b7ce6 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -202,7 +202,7 @@ func apiGetBookmarks(w http.ResponseWriter, r *http.Request, ps httprouter.Param checkError(err) // Fetch all bookmarks - bookmarks, err := DB.SearchBookmarks(keyword, tags...) + bookmarks, err := DB.SearchBookmarks(true, keyword, tags...) checkError(err) err = json.NewEncoder(w).Encode(&bookmarks) diff --git a/database/database.go b/database/database.go index a089af2..f6d92a3 100644 --- a/database/database.go +++ b/database/database.go @@ -17,7 +17,7 @@ type Database interface { DeleteBookmarks(indices ...string) ([]int, []int, error) // SearchBookmarks search bookmarks by the keyword or tags. - SearchBookmarks(keyword string, tags ...string) ([]model.Bookmark, error) + SearchBookmarks(orderLatest bool, keyword string, tags ...string) ([]model.Bookmark, error) // UpdateBookmarks updates the saved bookmark in database. UpdateBookmarks(bookmarks []model.Bookmark) error diff --git a/database/sqlite.go b/database/sqlite.go index ffae0a9..c701c14 100644 --- a/database/sqlite.go +++ b/database/sqlite.go @@ -384,7 +384,7 @@ func (db *SQLiteDatabase) DeleteBookmarks(indices ...string) (oldIndices, newInd } // SearchBookmarks search bookmarks by the keyword or tags. -func (db *SQLiteDatabase) SearchBookmarks(keyword string, tags ...string) ([]model.Bookmark, error) { +func (db *SQLiteDatabase) SearchBookmarks(orderLatest bool, keyword string, tags ...string) ([]model.Bookmark, error) { // Create initial variable keyword = strings.TrimSpace(keyword) whereClause := "WHERE 1" @@ -421,6 +421,10 @@ func (db *SQLiteDatabase) SearchBookmarks(keyword string, tags ...string) ([]mod min_read_time, max_read_time, modified FROM bookmark ` + whereClause + if orderLatest { + query += ` ORDER BY modified DESC` + } + bookmarks := []model.Bookmark{} err := db.Select(&bookmarks, query, args...) if err != nil && err != sql.ErrNoRows {