mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
honor dlna sort order to content exceeding the first page (#3747)
This commit is contained in:
@@ -440,15 +440,21 @@ func getRootObjects() []interface{} {
|
|||||||
return objs
|
return objs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getSortDirection(sceneFilter *models.SceneFilterType, sort string) models.SortDirectionEnum {
|
||||||
|
direction := models.SortDirectionEnumDesc
|
||||||
|
if sort == "title" {
|
||||||
|
direction = models.SortDirectionEnumAsc
|
||||||
|
}
|
||||||
|
|
||||||
|
return direction
|
||||||
|
}
|
||||||
|
|
||||||
func (me *contentDirectoryService) getVideos(sceneFilter *models.SceneFilterType, parentID string, host string) []interface{} {
|
func (me *contentDirectoryService) getVideos(sceneFilter *models.SceneFilterType, parentID string, host string) []interface{} {
|
||||||
var objs []interface{}
|
var objs []interface{}
|
||||||
|
|
||||||
if err := txn.WithReadTxn(context.TODO(), me.txnManager, func(ctx context.Context) error {
|
if err := txn.WithReadTxn(context.TODO(), me.txnManager, func(ctx context.Context) error {
|
||||||
sort := me.VideoSortOrder
|
sort := me.VideoSortOrder
|
||||||
direction := models.SortDirectionEnumDesc
|
direction := getSortDirection(sceneFilter, sort)
|
||||||
if sort == "title" {
|
|
||||||
direction = models.SortDirectionEnumAsc
|
|
||||||
}
|
|
||||||
findFilter := &models.FindFilterType{
|
findFilter := &models.FindFilterType{
|
||||||
PerPage: &pageSize,
|
PerPage: &pageSize,
|
||||||
Sort: &sort,
|
Sort: &sort,
|
||||||
@@ -497,8 +503,10 @@ func (me *contentDirectoryService) getPageVideos(sceneFilter *models.SceneFilter
|
|||||||
parentID: parentID,
|
parentID: parentID,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sort := me.VideoSortOrder
|
||||||
|
direction := getSortDirection(sceneFilter, sort)
|
||||||
var err error
|
var err error
|
||||||
objs, err = pager.getPageVideos(ctx, me.repository.SceneFinder, me.repository.FileFinder, page, host)
|
objs, err = pager.getPageVideos(ctx, me.repository.SceneFinder, me.repository.FileFinder, page, host, sort, direction)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,14 +60,14 @@ func (p *scenePager) getPages(ctx context.Context, r scene.Queryer, total int) (
|
|||||||
return objs, nil
|
return objs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *scenePager) getPageVideos(ctx context.Context, r SceneFinder, f file.Finder, page int, host string) ([]interface{}, error) {
|
func (p *scenePager) getPageVideos(ctx context.Context, r SceneFinder, f file.Finder, page int, host string, sort string, direction models.SortDirectionEnum) ([]interface{}, error) {
|
||||||
var objs []interface{}
|
var objs []interface{}
|
||||||
|
|
||||||
sort := "title"
|
|
||||||
findFilter := &models.FindFilterType{
|
findFilter := &models.FindFilterType{
|
||||||
PerPage: &pageSize,
|
PerPage: &pageSize,
|
||||||
Page: &page,
|
Page: &page,
|
||||||
Sort: &sort,
|
Sort: &sort,
|
||||||
|
Direction: &direction,
|
||||||
}
|
}
|
||||||
|
|
||||||
scenes, err := scene.Query(ctx, r, p.sceneFilter, findFilter)
|
scenes, err := scene.Query(ctx, r, p.sceneFilter, findFilter)
|
||||||
|
|||||||
Reference in New Issue
Block a user