Added tag filter dialog.

This commit is contained in:
DebaucheryLibrarian
2021-01-03 22:53:51 +01:00
parent f27af19670
commit 7bbb2f3557
18 changed files with 329 additions and 16 deletions

View File

@@ -159,7 +159,7 @@ function initEntitiesActions(store, router) {
orderBy,
afterTime: store.getters.after,
beforeTime: store.getters.before,
exclude: store.state.ui.filter,
exclude: store.state.ui.tagFilter,
});
if (!entity) {

View File

@@ -15,8 +15,11 @@ import Container from '../components/container/container.vue';
import Icon from '../components/icon/icon.vue';
import Footer from '../components/footer/footer.vue';
import Tooltip from '../components/tooltip/tooltip.vue';
import Dialog from '../components/dialog/dialog.vue';
async function init() {
let uid = 0;
const store = initStore(router);
const app = createApp(Container);
const events = mitt();
@@ -38,6 +41,7 @@ async function init() {
Footer,
Tooltip,
'v-popover': Tooltip,
Dialog,
},
data() {
return {
@@ -60,6 +64,10 @@ async function init() {
isAfter: (dateA, dateB) => dayjs(dateA).isAfter(dateB),
isBefore: (dateA, dateB) => dayjs(dateA).isBefore(dateB),
},
beforeCreate() {
this.uid = uid;
uid += 1;
},
});
app.directive('tooltip', {

View File

@@ -24,7 +24,7 @@ function initReleasesActions(store, router) {
after,
before,
orderBy,
exclude: store.state.ui.filter,
exclude: store.state.ui.tagFilter,
});
return {

View File

@@ -99,7 +99,7 @@ function initTagsActions(store, _router) {
before,
orderBy: orderBy === 'DATE_DESC' ? 'DATE_DESC' : 'DATE_ASC',
offset: Math.max(0, (pageNumber - 1)) * limit,
exclude: store.state.ui.filter,
exclude: store.state.ui.tagFilter.filter(tagFilter => tagFilter !== tagSlug),
});
return {

View File

@@ -2,9 +2,11 @@ import { graphql } from '../api';
import { curateRelease, curateActor } from '../curate';
function initUiActions(_store, _router) {
function setFilter({ commit }, filter) {
commit('setFilter', filter);
localStorage.setItem('filter', filter);
function setTagFilter({ commit }, filter) {
const tagFilter = Array.from(new Set(filter));
commit('setTagFilter', tagFilter);
localStorage.setItem('tagFilter', tagFilter);
}
function setRange({ commit }, range) {
@@ -184,7 +186,7 @@ function initUiActions(_store, _router) {
return {
search,
setFilter,
setTagFilter,
setRange,
setBatch,
setSfw,

View File

@@ -1,5 +1,5 @@
function setFilter(state, filter) {
state.filter = filter;
function setTagFilter(state, tagFilter) {
state.tagFilter = tagFilter;
}
function setRange(state, range) {
@@ -19,7 +19,7 @@ function setTheme(state, theme) {
}
export default {
setFilter,
setTagFilter,
setRange,
setBatch,
setSfw,

View File

@@ -1,10 +1,10 @@
const storedFilter = localStorage.getItem('filter');
const storedTagFilter = localStorage.getItem('tagFilter');
const storedBatch = localStorage.getItem('batch');
const storedSfw = localStorage.getItem('sfw');
const storedTheme = localStorage.getItem('theme');
export default {
filter: storedFilter ? storedFilter.split(',') : [],
tagFilter: storedTagFilter ? storedTagFilter.split(',') : [],
range: 'latest',
batch: storedBatch || 'all',
sfw: storedSfw === 'true' || false,