Saved filters (#1474)

* Refactor list filter
* Filter/criterion refactor
* Rename option value to type
* Remove None from options
* Add saved filter button
* Integrate default filters
This commit is contained in:
WithoutPants
2021-06-16 14:53:32 +10:00
committed by GitHub
parent 4fe4da6c01
commit dc7584d77e
74 changed files with 2583 additions and 1263 deletions

View File

@@ -233,7 +233,7 @@ export const Scene: React.FC = () => {
return;
}
const filterCopy = Object.assign(new ListFilterModel(), sceneQueue.query);
const filterCopy = sceneQueue.query.clone();
const newStart = queueStart - filterCopy.itemsPerPage;
filterCopy.currentPage = Math.ceil(newStart / filterCopy.itemsPerPage);
const query = await queryFindScenes(filterCopy);
@@ -254,7 +254,7 @@ export const Scene: React.FC = () => {
return;
}
const filterCopy = Object.assign(new ListFilterModel(), sceneQueue.query);
const filterCopy = sceneQueue.query.clone();
const newStart = queueStart + queueScenes.length;
filterCopy.currentPage = Math.ceil(newStart / filterCopy.itemsPerPage);
const query = await queryFindScenes(filterCopy);
@@ -291,7 +291,7 @@ export const Scene: React.FC = () => {
const pages = Math.ceil(queueTotal / query.itemsPerPage);
const page = Math.floor(Math.random() * pages) + 1;
const index = Math.floor(Math.random() * query.itemsPerPage);
const filterCopy = Object.assign(new ListFilterModel(), sceneQueue.query);
const filterCopy = sceneQueue.query.clone();
filterCopy.currentPage = page;
const queryResults = await queryFindScenes(filterCopy);
if (queryResults.data.findScenes.scenes.length > index) {