diff --git a/datagouv-components/src/components/Search/Filter/OrganizationFacetFilter.vue b/datagouv-components/src/components/Search/Filter/OrganizationFacetFilter.vue
new file mode 100644
index 000000000..b39db7388
--- /dev/null
+++ b/datagouv-components/src/components/Search/Filter/OrganizationFacetFilter.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
diff --git a/datagouv-components/src/components/Search/GlobalSearch.vue b/datagouv-components/src/components/Search/GlobalSearch.vue
index 5fc2db712..128373ae7 100644
--- a/datagouv-components/src/components/Search/GlobalSearch.vue
+++ b/datagouv-components/src/components/Search/GlobalSearch.vue
@@ -152,6 +152,13 @@
:loading="searchResultsStatus === 'pending'"
:style="{ order: getOrder('type') }"
/>
+
> = Object.fromEntrie
// All filter values as a record
const allFilters: Record> = {
organization: organizationId,
+ organization_facet: organizationId,
organization_badge: organizationType,
tag,
format,
diff --git a/datagouv-components/src/composables/useStableQueryParams.ts b/datagouv-components/src/composables/useStableQueryParams.ts
index 30f9ae7bf..1832c592b 100644
--- a/datagouv-components/src/composables/useStableQueryParams.ts
+++ b/datagouv-components/src/composables/useStableQueryParams.ts
@@ -1,5 +1,5 @@
import { ref, watch, type Ref } from 'vue'
-import type { SearchTypeConfig } from '../types/search'
+import { SearchFilterAliases, type SearchTypeConfig } from '../types/search'
type FilterRefs = Record>
@@ -46,7 +46,8 @@ export function useStableQueryParams(options: StableQueryParamsOptions) {
if (filterRef) {
const value = filterRef.value
if (value !== undefined && value !== '' && value !== null) {
- params[filterName as string] = value
+ const paramName = SearchFilterAliases[filterName as string] ?? filterName as string
+ params[paramName] = value
}
}
}
diff --git a/datagouv-components/src/main.ts b/datagouv-components/src/main.ts
index 7ef7d6c2e..d9aa17bb9 100644
--- a/datagouv-components/src/main.ts
+++ b/datagouv-components/src/main.ts
@@ -24,7 +24,7 @@ import type { Weight, WellType } from './types/ui'
import type { User, UserReference } from './types/users'
import type { Report, ReportSubject, ReportReason } from './types/reports'
import type { GlobalSearchConfig, SearchType, SortOption, TagFilterConfig, TagFilterValue, HiddenFilter, DatasetSearchFilters, DataserviceSearchFilters, ReuseSearchFilters, OrganizationSearchFilters, TopicSearchFilters } from './types/search'
-import { getDefaultDatasetConfig, getDefaultDataserviceConfig, getDefaultReuseConfig, getDefaultOrganizationConfig, getDefaultTopicConfig, getDefaultGlobalSearchConfig, defaultDatasetSortOptions, defaultDataserviceSortOptions, defaultReuseSortOptions, defaultOrganizationSortOptions } from './types/search'
+import { SearchFilterAliases, getDefaultDatasetConfig, getDefaultDataserviceConfig, getDefaultReuseConfig, getDefaultOrganizationConfig, getDefaultTopicConfig, getDefaultGlobalSearchConfig, defaultDatasetSortOptions, defaultDataserviceSortOptions, defaultReuseSortOptions, defaultOrganizationSortOptions } from './types/search'
import ActivityList from './components/ActivityList/ActivityList.vue'
import UserActivityList from './components/ActivityList/UserActivityList.vue'
@@ -227,6 +227,7 @@ export type {
}
export {
+ SearchFilterAliases,
getDefaultDatasetConfig,
getDefaultDataserviceConfig,
getDefaultReuseConfig,
diff --git a/datagouv-components/src/types/search.ts b/datagouv-components/src/types/search.ts
index 511ad3ede..f1de0dccb 100644
--- a/datagouv-components/src/types/search.ts
+++ b/datagouv-components/src/types/search.ts
@@ -301,12 +301,17 @@ export type SortOption = {
label: string
}
+// UI filter keys that map to a different API param name
+export const SearchFilterAliases: Record = {
+ organization_facet: 'organization',
+}
+
export type DatasetSearchConfig = {
class: 'datasets'
name?: string
hiddenFilters?: HiddenFilter[]
- basicFilters?: (keyof DatasetSearchFilters)[]
- advancedFilters?: (keyof DatasetSearchFilters)[]
+ basicFilters?: (keyof DatasetSearchFilters | keyof typeof SearchFilterAliases)[]
+ advancedFilters?: (keyof DatasetSearchFilters | keyof typeof SearchFilterAliases)[]
sortOptions?: SortOption[]
tagFilters?: TagFilterConfig[]
}
@@ -315,8 +320,8 @@ export type DataserviceSearchConfig = {
class: 'dataservices'
name?: string
hiddenFilters?: HiddenFilter[]
- basicFilters?: (keyof DataserviceSearchFilters)[]
- advancedFilters?: (keyof DataserviceSearchFilters)[]
+ basicFilters?: (keyof DataserviceSearchFilters | keyof typeof SearchFilterAliases)[]
+ advancedFilters?: (keyof DataserviceSearchFilters | keyof typeof SearchFilterAliases)[]
sortOptions?: SortOption[]
tagFilters?: TagFilterConfig[]
}
@@ -325,8 +330,8 @@ export type ReuseSearchConfig = {
class: 'reuses'
name?: string
hiddenFilters?: HiddenFilter[]
- basicFilters?: (keyof ReuseSearchFilters)[]
- advancedFilters?: (keyof ReuseSearchFilters)[]
+ basicFilters?: (keyof ReuseSearchFilters | keyof typeof SearchFilterAliases)[]
+ advancedFilters?: (keyof ReuseSearchFilters | keyof typeof SearchFilterAliases)[]
sortOptions?: SortOption[]
tagFilters?: TagFilterConfig[]
}
@@ -345,8 +350,8 @@ export type TopicSearchConfig = {
class: 'topics'
name?: string
hiddenFilters?: HiddenFilter[]
- basicFilters?: (keyof TopicSearchFilters)[]
- advancedFilters?: (keyof TopicSearchFilters)[]
+ basicFilters?: (keyof TopicSearchFilters | keyof typeof SearchFilterAliases)[]
+ advancedFilters?: (keyof TopicSearchFilters | keyof typeof SearchFilterAliases)[]
sortOptions?: SortOption[]
tagFilters?: TagFilterConfig[]
}