Added unidentified actors and actor count filters.

This commit is contained in:
2026-11-11 22:23:50 +01:00
parent 10ac366e87
commit 76ccd3729f
24 changed files with 575 additions and 70 deletions
+18
View File
@@ -12,6 +12,7 @@ import Campaign from '#/components/campaigns/campaign.vue';
import ActorsFilter from '#/components/filters/actors.vue';
import ChannelsFilter from '#/components/filters/channels.vue';
import Filters from '#/components/filters/filters.vue';
import GroupsFilter from '#/components/filters/groups.vue';
import TagsFilter from '#/components/filters/tags.vue';
import YearsFilter from '#/components/filters/years.vue';
@@ -23,6 +24,7 @@ import { get } from '#/src/api.js';
import entityPrefixes from '#/src/entities-prefixes.js';
import navigate from '#/src/navigate.js';
import { getActorIdentifier, parseActorIdentifier } from '#/src/query.js';
import { formatRange, parseRange } from '#/utils/parse-range.js';
const props = defineProps({
showFilters: {
@@ -64,6 +66,7 @@ const aggActors = ref(pageProps.aggActors || []);
const aggTags = ref(pageProps.aggTags || []);
const aggActorTags = ref(pageProps.aggActorTags || []);
const aggChannels = ref(pageProps.aggChannels || []);
const aggActorCounts = ref(pageProps.aggActorCounts || null);
const currentPage = ref(Number(routeParams.page));
const scope = ref(routeParams.scope || props.defaultScope);
@@ -88,6 +91,10 @@ const filters = ref({
onlyActorTags: Object.hasOwn(urlParsed.search, 'at'),
entity: queryEntity,
actors: queryActors,
group: parseRange(urlParsed.search.group),
females: parseRange(urlParsed.search.females),
males: parseRange(urlParsed.search.males),
trans: parseRange(urlParsed.search.trans),
});
const sceneCampaign = campaigns?.scenes;
@@ -132,6 +139,10 @@ async function search(options = {}) {
const query = {
q: filters.value.search || undefined,
group: formatRange(filters.value.group),
females: formatRange(filters.value.females),
males: formatRange(filters.value.males),
trans: formatRange(filters.value.trans),
};
const entity = filters.value.entity || pageEntity;
@@ -168,6 +179,7 @@ async function search(options = {}) {
aggTags.value = res.aggTags;
aggActorTags.value = res.aggActorTags;
aggChannels.value = res.aggChannels;
aggActorCounts.value = res.aggActorCounts;
total.value = res.total;
loading.value = false;
@@ -248,6 +260,12 @@ function setView(newView) {
:actors="aggActors"
@update="updateFilter"
/>
<GroupsFilter
:filters="filters"
:counts="aggActorCounts"
@update="updateFilter"
/>
</Filters>
</transition>