forked from DebaucheryLibrarian/traxxx
Added 'match all' tag filter for actors and toggle to 'match any'.
This commit is contained in:
@@ -1,11 +1,6 @@
|
||||
import config from 'config';
|
||||
import { graphql, get } from '../api';
|
||||
import {
|
||||
releaseFields,
|
||||
releasePosterFragment,
|
||||
releaseActorsFragment,
|
||||
releaseTagsFragment,
|
||||
} from '../fragments';
|
||||
import { releaseFields } from '../fragments';
|
||||
import { curateActor, curateRelease } from '../curate';
|
||||
import getDateRange from '../get-date-range';
|
||||
|
||||
@@ -18,18 +13,18 @@ function initActorActions(store, router) {
|
||||
}) {
|
||||
const { before, after, orderBy } = getDateRange(range);
|
||||
const includeTags = router.currentRoute.query.tags ? router.currentRoute.query.tags.split(',') : [];
|
||||
const mode = router.currentRoute.query.mode || 'all';
|
||||
|
||||
const { actor, connection: { releases, totalCount } } = await graphql(`
|
||||
const { actor } = await graphql(`
|
||||
query Actor(
|
||||
$actorId: Int!
|
||||
$limit:Int = 10,
|
||||
$offset:Int = 0,
|
||||
$after:Datetime = "1900-01-01",
|
||||
$before:Datetime = "2100-01-01",
|
||||
$orderBy:[ReleasesActorsOrderBy!]
|
||||
$orderBy:[ReleasesOrderBy!]
|
||||
$selectableTags: [String],
|
||||
$excludeTags: [String!]
|
||||
${includeTags.length > 0 ? '$includeTags: [String!]' : ''}
|
||||
$includeTags: [String!],
|
||||
) {
|
||||
actor(id: $actorId) {
|
||||
id
|
||||
@@ -150,92 +145,35 @@ function initActorActions(store, router) {
|
||||
slug
|
||||
priority
|
||||
}
|
||||
releasesConnection: releasesActorsConnection(
|
||||
scenesConnection(
|
||||
filter: {
|
||||
release: {
|
||||
date: {
|
||||
lessThan: $before,
|
||||
greaterThan: $after,
|
||||
}
|
||||
date: {
|
||||
lessThan: $before,
|
||||
greaterThan: $after,
|
||||
}
|
||||
${mode === 'any' ? `
|
||||
releasesTagsConnection: {
|
||||
none: {
|
||||
some: {
|
||||
tag: {
|
||||
slug: {
|
||||
in: $excludeTags
|
||||
in: $includeTags
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
` : ''}
|
||||
}
|
||||
${mode === 'all' ? 'selectedTags: $includeTags' : ''}
|
||||
first: $limit
|
||||
offset: $offset
|
||||
orderBy: $orderBy
|
||||
) {
|
||||
releases: nodes {
|
||||
release {
|
||||
id
|
||||
url
|
||||
title
|
||||
date
|
||||
slug
|
||||
${releaseActorsFragment}
|
||||
${releaseTagsFragment}
|
||||
${releasePosterFragment}
|
||||
entity {
|
||||
id
|
||||
name
|
||||
slug
|
||||
url
|
||||
parent {
|
||||
id
|
||||
name
|
||||
slug
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
connection: releasesActorsConnection(
|
||||
first: $limit
|
||||
offset: $offset
|
||||
orderBy: $orderBy
|
||||
condition: {
|
||||
actorId: $actorId
|
||||
}
|
||||
filter: {
|
||||
or: [
|
||||
{
|
||||
release: {
|
||||
date: {
|
||||
lessThan: $before,
|
||||
greaterThan: $after
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
${includeTags.length > 0 ? `release: {
|
||||
releasesTagsConnection: {
|
||||
some: {
|
||||
tag: {
|
||||
slug: {
|
||||
in: $includeTags
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}` : ''}
|
||||
}
|
||||
) {
|
||||
releases: nodes {
|
||||
release {
|
||||
${releaseFields}
|
||||
}
|
||||
}
|
||||
totalCount
|
||||
}
|
||||
totalCount
|
||||
}
|
||||
}
|
||||
}
|
||||
`, {
|
||||
actorId,
|
||||
@@ -244,15 +182,15 @@ function initActorActions(store, router) {
|
||||
after,
|
||||
before,
|
||||
selectableTags: config.selectableTags,
|
||||
orderBy: orderBy === 'DATE_DESC' ? 'RELEASE_BY_RELEASE_ID__DATE_DESC' : 'RELEASE_BY_RELEASE_ID__DATE_ASC',
|
||||
orderBy,
|
||||
excludeTags: store.state.ui.filter,
|
||||
includeTags,
|
||||
});
|
||||
|
||||
return {
|
||||
actor: curateActor(actor, null, curateRelease),
|
||||
releases: releases.map(release => curateRelease(release.release)),
|
||||
totalCount,
|
||||
releases: actor.scenesConnection.releases.map(release => curateRelease(release)),
|
||||
totalCount: actor.scenesConnection.totalCount,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,13 @@ export default {
|
||||
selectableTags: [
|
||||
'airtight',
|
||||
'anal',
|
||||
'blowbang',
|
||||
'blowjob',
|
||||
'creampie',
|
||||
'deepthroat',
|
||||
'double-anal',
|
||||
'double-penetration',
|
||||
'double-vaginal',
|
||||
'dap',
|
||||
'dp',
|
||||
'dvp',
|
||||
'facefucking',
|
||||
'facial',
|
||||
'fisting',
|
||||
@@ -18,6 +19,7 @@ export default {
|
||||
'gangbang',
|
||||
'interracial',
|
||||
'lesbian',
|
||||
'threesome',
|
||||
'mff',
|
||||
'mfm',
|
||||
'orgy',
|
||||
|
||||
@@ -57,7 +57,11 @@ function init() {
|
||||
},
|
||||
});
|
||||
|
||||
Vue.use(VTooltip);
|
||||
Vue.use(VTooltip, {
|
||||
popover: {
|
||||
defaultContainer: '.container',
|
||||
},
|
||||
});
|
||||
Vue.use(VueLazyLoad, {
|
||||
throttleWait: 0,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user