Switch loaders to OR filtering (#460)

* Switch loaders to OR filtering

* Add or filters to clear button

* Fix clear filters button again
This commit is contained in:
Geometrically 2022-04-22 11:36:48 -07:00 committed by GitHub
parent 06d921d855
commit dc11340faf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,7 +24,8 @@
selectedLicenses.length === 0 &&
selectedEnvironments.length === 0 &&
selectedVersions.length === 0 &&
facets.length === 0
facets.length === 0 &&
orFacets.length === 0
"
class="iconified-button"
@click="clearFilters"
@ -70,11 +71,11 @@
x.supported_project_types.includes(projectType)
)"
:key="loader.name"
:active-filters="facets"
:active-filters="orFacets"
:display-name="loader.name"
:facet-name="`categories:${loader.name}`"
:icon="loader.icon"
@toggle="toggleFacet"
@toggle="toggleOrFacet"
/>
</section>
<section aria-label="Environment filters">
@ -286,6 +287,7 @@ export default {
selectedEnvironments: [],
facets: [],
orFacets: [],
results: null,
pages: [],
currentPage: 1,
@ -376,13 +378,15 @@ export default {
methods: {
async clearFilters() {
for (const facet of [...this.facets]) await this.toggleFacet(facet, true)
for (const facet of [...this.orFacets])
await this.toggleOrFacet(facet, true)
this.selectedLicenses = []
this.selectedVersions = []
this.selectedEnvironments = []
await this.onSearchChange(1)
},
async toggleFacet(elementName, sendRequest) {
async toggleFacet(elementName, doNotSendRequest) {
const index = this.facets.indexOf(elementName)
if (index !== -1) {
this.facets.splice(index, 1)
@ -390,7 +394,17 @@ export default {
this.facets.push(elementName)
}
if (!sendRequest) await this.onSearchChange(1)
if (!doNotSendRequest) await this.onSearchChange(1)
},
async toggleOrFacet(elementName, doNotSendRequest) {
const index = this.orFacets.indexOf(elementName)
if (index !== -1) {
this.orFacets.splice(index, 1)
} else {
this.orFacets.push(elementName)
}
if (!doNotSendRequest) await this.onSearchChange(1)
},
async toggleEnv(environment, sendRequest) {
const index = this.selectedEnvironments.indexOf(environment)
@ -431,6 +445,10 @@ export default {
formattedFacets.push([facet])
}
if (this.orFacets.length > 0) {
formattedFacets.push(this.orFacets)
}
if (this.selectedVersions.length > 0) {
const versionFacets = []
for (const facet of this.selectedVersions) {