mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 12:54:38 +03:00
Add rating sorting to galleries (#1720)
* Add rating sorting to galleries Fixes: #1717
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
### ✨ New Features
|
### ✨ New Features
|
||||||
|
* Added sort by option for gallery rating. ([#1720](https://github.com/stashapp/stash/pull/1720))
|
||||||
* Added support for querying scene scrapers using keywords. ([#1712](https://github.com/stashapp/stash/pull/1712))
|
* Added support for querying scene scrapers using keywords. ([#1712](https://github.com/stashapp/stash/pull/1712))
|
||||||
* Added support for Studio aliases. ([#1660](https://github.com/stashapp/stash/pull/1660))
|
* Added support for Studio aliases. ([#1660](https://github.com/stashapp/stash/pull/1660))
|
||||||
* Added support for Tag hierarchies. ([#1519](https://github.com/stashapp/stash/pull/1519))
|
* Added support for Tag hierarchies. ([#1519](https://github.com/stashapp/stash/pull/1519))
|
||||||
|
|||||||
@@ -6,6 +6,16 @@ interface ISortByOption {
|
|||||||
value: string;
|
value: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const MediaSortByOptions = [
|
||||||
|
"title",
|
||||||
|
"path",
|
||||||
|
"rating",
|
||||||
|
"file_mod_time",
|
||||||
|
"tag_count",
|
||||||
|
"performer_count",
|
||||||
|
"random",
|
||||||
|
];
|
||||||
|
|
||||||
export class ListFilterOptions {
|
export class ListFilterOptions {
|
||||||
public readonly defaultSortBy: string = "";
|
public readonly defaultSortBy: string = "";
|
||||||
public readonly sortByOptions: ISortByOption[] = [];
|
public readonly sortByOptions: ISortByOption[] = [];
|
||||||
|
|||||||
@@ -9,20 +9,12 @@ import {
|
|||||||
PerformerTagsCriterionOption,
|
PerformerTagsCriterionOption,
|
||||||
TagsCriterionOption,
|
TagsCriterionOption,
|
||||||
} from "./criteria/tags";
|
} from "./criteria/tags";
|
||||||
import { ListFilterOptions } from "./filter-options";
|
import { ListFilterOptions, MediaSortByOptions } from "./filter-options";
|
||||||
import { DisplayMode } from "./types";
|
import { DisplayMode } from "./types";
|
||||||
|
|
||||||
const defaultSortBy = "path";
|
const defaultSortBy = "path";
|
||||||
|
|
||||||
const sortByOptions = [
|
const sortByOptions = ["date", ...MediaSortByOptions]
|
||||||
"date",
|
|
||||||
"path",
|
|
||||||
"file_mod_time",
|
|
||||||
"tag_count",
|
|
||||||
"performer_count",
|
|
||||||
"title",
|
|
||||||
"random",
|
|
||||||
]
|
|
||||||
.map(ListFilterOptions.createSortBy)
|
.map(ListFilterOptions.createSortBy)
|
||||||
.concat([
|
.concat([
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,22 +13,14 @@ import {
|
|||||||
PerformerTagsCriterionOption,
|
PerformerTagsCriterionOption,
|
||||||
TagsCriterionOption,
|
TagsCriterionOption,
|
||||||
} from "./criteria/tags";
|
} from "./criteria/tags";
|
||||||
import { ListFilterOptions } from "./filter-options";
|
import { ListFilterOptions, MediaSortByOptions } from "./filter-options";
|
||||||
import { DisplayMode } from "./types";
|
import { DisplayMode } from "./types";
|
||||||
|
|
||||||
const defaultSortBy = "path";
|
const defaultSortBy = "path";
|
||||||
|
|
||||||
const sortByOptions = [
|
const sortByOptions = ["o_counter", "filesize", ...MediaSortByOptions].map(
|
||||||
"title",
|
ListFilterOptions.createSortBy
|
||||||
"path",
|
);
|
||||||
"rating",
|
|
||||||
"o_counter",
|
|
||||||
"filesize",
|
|
||||||
"file_mod_time",
|
|
||||||
"tag_count",
|
|
||||||
"performer_count",
|
|
||||||
"random",
|
|
||||||
].map(ListFilterOptions.createSortBy);
|
|
||||||
|
|
||||||
const displayModeOptions = [DisplayMode.Grid, DisplayMode.Wall];
|
const displayModeOptions = [DisplayMode.Grid, DisplayMode.Wall];
|
||||||
const criterionOptions = [
|
const criterionOptions = [
|
||||||
|
|||||||
@@ -16,28 +16,22 @@ import {
|
|||||||
PerformerTagsCriterionOption,
|
PerformerTagsCriterionOption,
|
||||||
TagsCriterionOption,
|
TagsCriterionOption,
|
||||||
} from "./criteria/tags";
|
} from "./criteria/tags";
|
||||||
import { ListFilterOptions } from "./filter-options";
|
import { ListFilterOptions, MediaSortByOptions } from "./filter-options";
|
||||||
import { DisplayMode } from "./types";
|
import { DisplayMode } from "./types";
|
||||||
import { PhashCriterionOption } from "./criteria/phash";
|
import { PhashCriterionOption } from "./criteria/phash";
|
||||||
|
|
||||||
const defaultSortBy = "date";
|
const defaultSortBy = "date";
|
||||||
const sortByOptions = [
|
const sortByOptions = [
|
||||||
"title",
|
|
||||||
"path",
|
|
||||||
"rating",
|
|
||||||
"organized",
|
"organized",
|
||||||
"o_counter",
|
"o_counter",
|
||||||
"date",
|
"date",
|
||||||
"filesize",
|
"filesize",
|
||||||
"file_mod_time",
|
|
||||||
"duration",
|
"duration",
|
||||||
"framerate",
|
"framerate",
|
||||||
"bitrate",
|
"bitrate",
|
||||||
"tag_count",
|
|
||||||
"performer_count",
|
|
||||||
"random",
|
|
||||||
"movie_scene_number",
|
"movie_scene_number",
|
||||||
"interactive",
|
"interactive",
|
||||||
|
...MediaSortByOptions,
|
||||||
].map(ListFilterOptions.createSortBy);
|
].map(ListFilterOptions.createSortBy);
|
||||||
|
|
||||||
const displayModeOptions = [
|
const displayModeOptions = [
|
||||||
|
|||||||
Reference in New Issue
Block a user