diff --git a/src/client/components/facet_results/ResultTableCell.js b/src/client/components/facet_results/ResultTableCell.js index bf13776041770818fe0a5575f56a423104a8182d..6127147120bf70606242d679be67e6b40af2e3f2 100644 --- a/src/client/components/facet_results/ResultTableCell.js +++ b/src/client/components/facet_results/ResultTableCell.js @@ -21,6 +21,25 @@ const styles = () => ({ const ResultTableCell = props => { + const ISOStringToDate = str => { + let year; + let month; + let day; + if (str.charAt(0) == '-') { + year = parseInt(str.substring(0,5)); + month = parseInt(str.substring(7,8)); + day = parseInt(str.substring(10,11)); + } else { + year = parseInt(str.substring(0,4)); + month = parseInt(str.substring(6,7)); + day = parseInt(str.substring(9,10)); + } + // console.log(year) + // console.log(month) + // console.log(day) + return new Date(year, month, day); + }; + const stringListRenderer = cell => { if (cell == null || cell === '-'){ return '-'; @@ -43,7 +62,14 @@ const ResultTableCell = props => { } else if (Array.isArray(cell)) { if (props.columnId == 'productionTimespan') { - cell = sortValues ? sortBy(cell, obj => Number(obj.start)) : cell; + cell = sortValues + ? cell.sort((a,b) => { + a = ISOStringToDate(a.start); + b = ISOStringToDate(b.start); + // arrange from the most recent to the oldest + return a > b ? 1 : a < b ? -1 : 0; + }) + : cell; } else { cell = sortValues ? orderBy(cell, 'prefLabel') : cell; } diff --git a/src/server/sparql/SparqlQueriesManuscripts.js b/src/server/sparql/SparqlQueriesManuscripts.js index 46e736b6cbda00787e95fda078cb76d0063b91bd..9e7af91adde96ce857e61d9238eedc65594e4e70 100644 --- a/src/server/sparql/SparqlQueriesManuscripts.js +++ b/src/server/sparql/SparqlQueriesManuscripts.js @@ -18,8 +18,8 @@ export const manuscriptProperties = ` ?production crm:P108_has_produced ?id . ?production crm:P4_has_time-span ?productionTimespan . ?productionTimespan skos:prefLabel ?productionTimespan__id . - OPTIONAL { ?productionTimespan crm:P79_beginning_is_qualified_by ?productionTimespan__start } - OPTIONAL { ?productionTimespan crm:P80_end_is_qualified_by ?productionTimespan__end } + OPTIONAL { ?productionTimespan crm:P82a_begin_of_the_begin ?productionTimespan__start } + OPTIONAL { ?productionTimespan crm:P82b_end_of_the_end ?productionTimespan__end } BIND (?productionTimespan__id AS ?productionTimespan__prefLabel) } UNION