Changed range filter to routes for every view.

This commit is contained in:
2020-05-09 01:10:07 +02:00
parent 525995615a
commit de5b729c0b
16 changed files with 125 additions and 73 deletions

View File

@@ -46,7 +46,7 @@ function curateActor(actor) {
}
function initActorActions(store, _router) {
async function fetchActorBySlug({ _commit }, { slug, limit = 100, range = 'latest' }) {
async function fetchActorBySlug({ _commit }, { actorSlug, limit = 100, range = 'latest' }) {
const { before, after, orderBy } = getDateRange(range);
const { actor } = await graphql(`
@@ -171,7 +171,7 @@ function initActorActions(store, _router) {
}
}
`, {
actorSlug: slug,
actorSlug,
limit,
after,
before,

View File

@@ -84,6 +84,7 @@ const releasePosterFragment = `
sfw: sfwMedia {
id
thumbnail
lazy
path
comment
}
@@ -102,6 +103,7 @@ const releaseCoversFragment = `
sfw: sfwMedia {
id
thumbnail
lazy
path
comment
}
@@ -115,10 +117,12 @@ const releasePhotosFragment = `
index
path
thumbnail
lazy
comment
sfw: sfwMedia {
id
thumbnail
lazy
path
comment
}

View File

@@ -1,9 +1,12 @@
import { graphql } from '../api';
import { sitesFragment, releaseFields } from '../fragments';
import { curateNetwork } from '../curate';
import getDateRange from '../get-date-range';
function initNetworksActions(store, _router) {
async function fetchNetworkBySlug(networkSlug, limit = 100) {
async function fetchNetworkBySlug({ _commit }, { networkSlug, limit = 100, range = 'latest' }) {
const { before, after, orderBy } = getDateRange(range);
const { network, releases } = await graphql(`
query Network(
$networkSlug: String!
@@ -106,22 +109,18 @@ function initNetworksActions(store, _router) {
`, {
networkSlug,
limit,
after: store.getters.after,
before: store.getters.before,
after,
before,
orderBy,
afterTime: store.getters.after,
beforeTime: store.getters.before,
orderBy: store.getters.orderBy,
exclude: store.state.ui.filter,
});
return curateNetwork(network, releases);
}
async function fetchNetworks({ _commit }, networkSlug) {
if (networkSlug) {
return fetchNetworkBySlug(networkSlug);
}
async function fetchNetworks({ _commit }) {
const { networks } = await graphql(`
query Networks {
networks(orderBy: NAME_ASC) {
@@ -138,6 +137,7 @@ function initNetworksActions(store, _router) {
}
return {
fetchNetworkBySlug,
fetchNetworks,
};
}

View File

@@ -19,25 +19,29 @@ const routes = [
{
path: '/',
redirect: {
name: 'home',
params: {
range: 'latest',
},
name: 'latest',
},
},
{
path: '/home',
redirect: {
name: 'home',
params: {
range: 'latest',
},
name: 'latest',
},
},
{
path: '/:range',
path: '/latest',
component: Home,
name: 'home',
name: 'latest',
},
{
path: '/upcoming',
component: Home,
name: 'upcoming',
},
{
path: '/new',
component: Home,
name: 'new',
},
{
path: '/scene/:releaseId/:releaseSlug?',
@@ -69,16 +73,52 @@ const routes = [
path: '/site/:siteSlug',
component: Site,
name: 'site',
redirect: from => ({
name: 'siteRange',
params: {
...from.params,
range: 'latest',
},
}),
},
{
path: '/site/:siteSlug/:range',
component: Site,
name: 'siteRange',
},
{
path: '/network/:networkSlug',
component: Network,
name: 'network',
redirect: from => ({
name: 'networkRange',
params: {
...from.params,
range: 'latest',
},
}),
},
{
path: '/network/:networkSlug/:range',
component: Network,
name: 'networkRange',
},
{
path: '/tag/:tagSlug',
component: Tag,
name: 'tag',
redirect: from => ({
name: 'tagRange',
params: {
...from.params,
range: 'latest',
},
}),
},
{
path: '/tag/:tagSlug/:range',
component: Tag,
name: 'tagRange',
},
{
path: '/actors/:gender?/:letter?',

View File

@@ -1,9 +1,12 @@
import { graphql } from '../api';
import { releasesFragment } from '../fragments';
import { curateSite } from '../curate';
import getDateRange from '../get-date-range';
function initSitesActions(store, _router) {
async function fetchSiteBySlug(siteSlug, limit = 100) {
async function fetchSiteBySlug({ _commit }, { siteSlug, limit = 100, range = 'latest' }) {
const { before, after, orderBy } = getDateRange(range);
const { site } = await graphql(`
query Site(
$siteSlug: String!,
@@ -36,21 +39,17 @@ function initSitesActions(store, _router) {
`, {
siteSlug,
limit,
after: store.getters.after,
before: store.getters.before,
after,
before,
orderBy,
isNew: store.getters.isNew,
orderBy: store.getters.orderBy,
exclude: store.state.ui.filter,
});
return curateSite(site);
}
async function fetchSites({ _commit }, { siteSlug, limit = 100 }) {
if (siteSlug) {
return fetchSiteBySlug(siteSlug, limit);
}
async function fetchSites({ _commit }, { limit = 100 }) {
const { sites } = await graphql(`
query Sites(
$actorSlug: String!
@@ -102,6 +101,7 @@ function initSitesActions(store, _router) {
}
return {
fetchSiteBySlug,
fetchSites,
searchSites,
};

View File

@@ -3,9 +3,12 @@ import {
releaseFields,
} from '../fragments';
import { curateTag } from '../curate';
import getDateRange from '../get-date-range';
function initTagsActions(store, _router) {
async function fetchTagBySlug(tagSlug, limit = 100) {
async function fetchTagBySlug({ _commit }, { tagSlug, limit = 100, range = 'latest' }) {
const { before, after, orderBy } = getDateRange(range);
const { tagBySlug } = await graphql(`
query Tag(
$tagSlug:String!
@@ -84,9 +87,9 @@ function initTagsActions(store, _router) {
`, {
tagSlug,
limit,
after: store.getters.after,
before: store.getters.before,
orderBy: store.getters.isNew,
after,
before,
orderBy: orderBy === 'DATE_DESC' ? 'RELEASE_BY_RELEASE_ID__DATE_DESC' : 'RELEASE_BY_RELEASE_ID__DATE_ASC',
exclude: store.state.ui.filter,
});
@@ -94,16 +97,11 @@ function initTagsActions(store, _router) {
}
async function fetchTags({ _commit }, {
tagSlug,
limit = 100,
slugs = [],
_group,
_priority,
}) {
if (tagSlug) {
return fetchTagBySlug(tagSlug);
}
const { tags } = await graphql(`
query Tags(
$slugs: [String!] = [],
@@ -153,9 +151,9 @@ function initTagsActions(store, _router) {
}
return {
fetchTagBySlug,
fetchTags,
fetchTagReleases,
fetchTagBySlug,
};
}

View File

@@ -1,29 +1,16 @@
function initUiObservers(store, _router) {
let keyHistory = [];
document.addEventListener('keypress', (event) => {
if (event.target.tagName === 'INPUT') {
return;
}
keyHistory = keyHistory
.concat({
key: event.key,
time: new Date().getTime(),
})
.slice(-3);
if (keyHistory.length === 3
&& keyHistory.every(input => input.key === 's')
&& new Date().getTime() - keyHistory[0].time < 1000
) {
store.dispatch('setSfw', false);
return;
}
if (event.key === 's') {
store.dispatch('setSfw', true);
}
if (event.key === 'n') {
store.dispatch('setSfw', false);
}
});
}