diff --git a/src/server/sparql/FacetConfigs.js b/src/server/sparql/FacetConfigs.js index 1a90c95dbecda73940ac4518e5b62d3197fa5d19..175c4341e397e2edddc9512498b19fc9de65a462 100644 --- a/src/server/sparql/FacetConfigs.js +++ b/src/server/sparql/FacetConfigs.js @@ -33,7 +33,8 @@ export const facetConfigs = { productionTimespan: { id: 'productionTimespan', facetValueFilter: '', - labelPath: '^crm:P108_has_produced/crm:P4_has_time-span/crm:P82a_begin_of_the_begin', + sortByAscPredicate: '^crm:P108_has_produced/crm:P4_has_time-span/crm:P82a_begin_of_the_begin', + sortByDescPredicate: '^crm:P108_has_produced/crm:P4_has_time-span/crm:P82b_end_of_the_end', predicate: '^crm:P108_has_produced/crm:P4_has_time-span', startProperty: 'crm:P82a_begin_of_the_begin', endProperty: 'crm:P82b_end_of_the_end', diff --git a/src/server/sparql/FacetResults.js b/src/server/sparql/FacetResults.js index 4a81b6d460c55c36ff2c73c9bcca28c4bcc2876e..75af212dc8d3df833d544a1ce10fb2ac5f30de1c 100644 --- a/src/server/sparql/FacetResults.js +++ b/src/server/sparql/FacetResults.js @@ -167,7 +167,14 @@ const getPaginatedData = ({ facetID: null})); } q = q.replace('<FACET_CLASS>', facetConfig.facetClass); - q = q.replace('<ORDER_BY_PREDICATE>', facetConfig[sortBy].labelPath); + if (sortBy.endsWith('Timespan')) { + q = q.replace('<ORDER_BY_PREDICATE>', + sortDirection === 'asc' + ? facetConfig[sortBy].sortByAscPredicate + : facetConfig[sortBy].sortByDescPredicate); + } else { + q = q.replace('<ORDER_BY_PREDICATE>', facetConfig[sortBy].labelPath); + } q = q.replace('<SORT_DIRECTION>', sortDirection); q = q.replace('<PAGE>', `LIMIT ${pagesize} OFFSET ${page * pagesize}`); let resultSetProperties;