1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-21 18:11:09 +00:00

Add optional sort option in category page

closes #1552
This commit is contained in:
Romain de Laage 2022-10-16 07:36:59 +02:00 committed by Frédéric Guillot
parent ec47106c26
commit 83e1f154b5
26 changed files with 131 additions and 13 deletions

View file

@ -112,6 +112,11 @@ func (s *Storage) Categories(userID int64) (model.Categories, error) {
// CategoriesWithFeedCount returns all categories with the number of feeds.
func (s *Storage) CategoriesWithFeedCount(userID int64) (model.Categories, error) {
user, err := s.UserByID(userID)
if err != nil {
return nil, err
}
query := `
SELECT
c.id,
@ -126,11 +131,21 @@ func (s *Storage) CategoriesWithFeedCount(userID int64) (model.Categories, error
FROM categories c
WHERE
user_id=$1
ORDER BY
count_unread DESC,
c.title ASC
`
if user.CategoriesSortOrder == "alphabetical" {
query = query + `
ORDER BY
c.title ASC
`
} else {
query = query + `
ORDER BY
count_unread DESC,
c.title ASC
`
}
rows, err := s.db.Query(query, userID)
if err != nil {
return nil, fmt.Errorf(`store: unable to fetch categories: %v`, err)

View file

@ -88,7 +88,8 @@ func (s *Storage) CreateUser(userCreationRequest *model.UserCreationRequest) (*m
entry_order,
default_reading_speed,
cjk_reading_speed,
default_home_page
default_home_page,
categories_sort_order
`
tx, err := s.db.Begin()
@ -124,6 +125,7 @@ func (s *Storage) CreateUser(userCreationRequest *model.UserCreationRequest) (*m
&user.DefaultReadingSpeed,
&user.CJKReadingSpeed,
&user.DefaultHomePage,
&user.CategoriesSortOrder,
)
if err != nil {
tx.Rollback()
@ -177,9 +179,10 @@ func (s *Storage) UpdateUser(user *model.User) error {
entry_order=$16,
default_reading_speed=$17,
cjk_reading_speed=$18,
default_home_page=$19
default_home_page=$19,
categories_sort_order=$20
WHERE
id=$20
id=$21
`
_, err = s.db.Exec(
@ -203,6 +206,7 @@ func (s *Storage) UpdateUser(user *model.User) error {
user.DefaultReadingSpeed,
user.CJKReadingSpeed,
user.DefaultHomePage,
user.CategoriesSortOrder,
user.ID,
)
if err != nil {
@ -228,9 +232,10 @@ func (s *Storage) UpdateUser(user *model.User) error {
entry_order=$15,
default_reading_speed=$16,
cjk_reading_speed=$17,
default_home_page=$18
default_home_page=$18,
categories_sort_order=$19
WHERE
id=$19
id=$20
`
_, err := s.db.Exec(
@ -253,6 +258,7 @@ func (s *Storage) UpdateUser(user *model.User) error {
user.DefaultReadingSpeed,
user.CJKReadingSpeed,
user.DefaultHomePage,
user.CategoriesSortOrder,
user.ID,
)
@ -297,7 +303,8 @@ func (s *Storage) UserByID(userID int64) (*model.User, error) {
entry_order,
default_reading_speed,
cjk_reading_speed,
default_home_page
default_home_page,
categories_sort_order
FROM
users
WHERE
@ -329,7 +336,8 @@ func (s *Storage) UserByUsername(username string) (*model.User, error) {
entry_order,
default_reading_speed,
cjk_reading_speed,
default_home_page
default_home_page,
categories_sort_order
FROM
users
WHERE
@ -361,7 +369,8 @@ func (s *Storage) UserByField(field, value string) (*model.User, error) {
entry_order,
default_reading_speed,
cjk_reading_speed,
default_home_page
default_home_page,
categories_sort_order
FROM
users
WHERE
@ -400,7 +409,8 @@ func (s *Storage) UserByAPIKey(token string) (*model.User, error) {
u.entry_order,
u.default_reading_speed,
u.cjk_reading_speed,
u.default_home_page
u.default_home_page,
u.categories_sort_order
FROM
users u
LEFT JOIN
@ -434,6 +444,7 @@ func (s *Storage) fetchUser(query string, args ...interface{}) (*model.User, err
&user.DefaultReadingSpeed,
&user.CJKReadingSpeed,
&user.DefaultHomePage,
&user.CategoriesSortOrder,
)
if err == sql.ErrNoRows {
@ -528,7 +539,8 @@ func (s *Storage) Users() (model.Users, error) {
entry_order,
default_reading_speed,
cjk_reading_speed,
default_home_page
default_home_page,
categories_sort_order
FROM
users
ORDER BY username ASC
@ -563,6 +575,7 @@ func (s *Storage) Users() (model.Users, error) {
&user.DefaultReadingSpeed,
&user.CJKReadingSpeed,
&user.DefaultHomePage,
&user.CategoriesSortOrder,
)
if err != nil {