diff --git a/cypress/e2e/searchWork.test.ts b/cypress/e2e/searchWork.test.ts index e99c476b..f27fe6b9 100644 --- a/cypress/e2e/searchWork.test.ts +++ b/cypress/e2e/searchWork.test.ts @@ -32,6 +32,7 @@ describe('Search Works', () => { expect($facet.eq(4)).to.contain('Language') expect($facet.eq(5)).to.contain('Field of Science') expect($facet.eq(6)).to.contain('Registration Agency') + expect($facet.eq(7)).to.contain('Repository Type') }) }) diff --git a/src/app/doi.org/page.tsx b/src/app/doi.org/page.tsx index dff17fd7..54d38d87 100644 --- a/src/app/doi.org/page.tsx +++ b/src/app/doi.org/page.tsx @@ -20,7 +20,8 @@ export default async function SearchDoiPage ({ searchParams }: Props) { ...vars, resourceTypeId: vars['resource-type'], fieldOfScience: vars['field-of-science'], - registrationAgency: vars['registration-agency'] + registrationAgency: vars['registration-agency'], + clientType: vars['repository-type'] } // Show examply text if there is no query diff --git a/src/app/ror.org/[rorid]/mapSearchParams.ts b/src/app/ror.org/[rorid]/mapSearchParams.ts index 6b37f0a2..2875d1a9 100644 --- a/src/app/ror.org/[rorid]/mapSearchParams.ts +++ b/src/app/ror.org/[rorid]/mapSearchParams.ts @@ -23,6 +23,7 @@ export default function mapSearchparams(searchParams: SearchParams) { fieldOfScience: searchParams['field-of-science'], license: searchParams.license, registrationAgency: searchParams['registration-agency'], + clientType: searchParams['repository-type'] }, isBot: false diff --git a/src/components/WorkFacets/WorkFacets.tsx b/src/components/WorkFacets/WorkFacets.tsx index 55629e50..088a6ecb 100644 --- a/src/components/WorkFacets/WorkFacets.tsx +++ b/src/components/WorkFacets/WorkFacets.tsx @@ -28,6 +28,7 @@ interface Facets { registrationAgencies?: Facet[] authors?: Facet[] creatorsAndContributors?: Facet[] + clientTypes?: Facet[] nodes: Work[] } @@ -139,6 +140,14 @@ export default function WorkFacets({ url={url} /> + ) } diff --git a/src/data/queries/organizationRelatedContentQuery.ts b/src/data/queries/organizationRelatedContentQuery.ts index fe47f919..77ef6216 100644 --- a/src/data/queries/organizationRelatedContentQuery.ts +++ b/src/data/queries/organizationRelatedContentQuery.ts @@ -100,6 +100,7 @@ export interface QueryVar { fieldOfScience?: string license?: string registrationAgency?: string + clientType?: string } export interface QueryData { diff --git a/src/data/queries/searchDoiFacetsQuery.ts b/src/data/queries/searchDoiFacetsQuery.ts index 0817d4de..f87e4cf0 100644 --- a/src/data/queries/searchDoiFacetsQuery.ts +++ b/src/data/queries/searchDoiFacetsQuery.ts @@ -14,6 +14,7 @@ const FACETS = [ 'registrationAgencies', 'authors', 'creatorsAndContributors', + 'clientTypes', // personToWorkTypesMultilevel: [] ] @@ -38,6 +39,7 @@ function buildDoiSearchParams(variables: QueryVar): URLSearchParams { if (variables.published) searchParams.append('published', variables.published) if (variables.resourceTypeId) searchParams.append('resource-type-id', variables.resourceTypeId) if (variables.fieldOfScience) searchParams.append('field-of-science', variables.fieldOfScience) + if (variables.clientType) searchParams.append('client-type', variables.clientType) return searchParams } @@ -59,7 +61,7 @@ function convertToQueryData(json: any): QueryData { registrationAgencies: meta.registrationAgencies, authors: [].slice(0, 10), creatorsAndContributors: meta.creatorsAndContributors.slice(0, 10), - + clientTypes: meta.clientTypes.slice(0, 10), personToWorkTypesMultilevel: [] } } diff --git a/src/data/queries/searchDoiQuery.ts b/src/data/queries/searchDoiQuery.ts index 03da74bb..ea7e015c 100644 --- a/src/data/queries/searchDoiQuery.ts +++ b/src/data/queries/searchDoiQuery.ts @@ -24,6 +24,7 @@ function buildDoiSearchParams(variables: QueryVar): URLSearchParams { if (variables.published) searchParams.append('published', variables.published) if (variables.resourceTypeId) searchParams.append('resource-type-id', variables.resourceTypeId) if (variables.fieldOfScience) searchParams.append('field-of-science', variables.fieldOfScience) + if (variables.clientType) searchParams.append('client-type', variables.clientType) return searchParams } @@ -130,6 +131,7 @@ export interface QueryVar { fieldOfScience?: string license?: string registrationAgency?: string + clientType?: string } diff --git a/src/data/types.ts b/src/data/types.ts index 82b6e936..debdbbe4 100644 --- a/src/data/types.ts +++ b/src/data/types.ts @@ -73,6 +73,7 @@ export type Works = { affiliations?: Facet[] authors?: Facet[] creatorsAndContributors?: Facet[] + clientTypes?: Facet[] nodes: Work[] personToWorkTypesMultilevel: MultilevelFacet[]