From 368083fa0e2818b68dee30c760afdd584d3a0790 Mon Sep 17 00:00:00 2001 From: esikkala <esko.ikkala@aalto.fi> Date: Fri, 30 Aug 2019 14:09:26 +0300 Subject: [PATCH] Facet config: add optional facet label filter --- src/server/sparql/FacetValues.js | 6 ++++++ src/server/sparql/SparqlQueriesGeneral.js | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/sparql/FacetValues.js b/src/server/sparql/FacetValues.js index 51ac3625..397ec05e 100644 --- a/src/server/sparql/FacetValues.js +++ b/src/server/sparql/FacetValues.js @@ -1,4 +1,5 @@ import { runSelectQuery } from './SparqlApi'; +import { has } from 'lodash'; import { endpoint, facetValuesQuery, @@ -94,6 +95,11 @@ export const getFacet = async ({ q = q.replace('<SELECTED_VALUES>', selectedBlock); q = q.replace('<SELECTED_VALUES_NO_HITS>', selectedNoHitsBlock); q = q.replace(/<FACET_VALUE_FILTER>/g, facetConfig.facetValueFilter); + q = q.replace(/<FACET_LABEL_FILTER>/g, + has(facetConfig.facetLabelFilter) + ? facetConfig.facetLabelFilter + : '' + ); q = q.replace('<PARENTS>', parentBlock); if (facetConfig.type === 'list') { q = q.replace('<ORDER_BY>', `ORDER BY ${sortDirection}(?${sortBy})` ); diff --git a/src/server/sparql/SparqlQueriesGeneral.js b/src/server/sparql/SparqlQueriesGeneral.js index fa5d53ce..abac4493 100644 --- a/src/server/sparql/SparqlQueriesGeneral.js +++ b/src/server/sparql/SparqlQueriesGeneral.js @@ -80,7 +80,10 @@ export const facetValuesQuery = ` FILTER(BOUND(?id)) <FACET_VALUE_FILTER> OPTIONAL { ?id gvp:broaderPreferred ?parent_ } - OPTIONAL { ?id skos:prefLabel|rdfs:label ?prefLabel_ } + OPTIONAL { + ?id skos:prefLabel|rdfs:label ?prefLabel_ + <FACET_LABEL_FILTER> + } BIND(COALESCE(?parent_, '0') as ?parent) BIND(COALESCE(STR(?prefLabel_), STR(?id)) AS ?prefLabel) } -- GitLab