diff --git a/pages/search.vue b/pages/search.vue index e580e2821..3deaec34d 100644 --- a/pages/search.vue +++ b/pages/search.vue @@ -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" />
@@ -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) {