diff --git a/src/client/epics/index.js b/src/client/epics/index.js index 87c3867bee1796ad82d75e37c8e0bf452653504a..f660a123ca803ed6e2d8a0f349b7833e55457692 100644 --- a/src/client/epics/index.js +++ b/src/client/epics/index.js @@ -251,40 +251,36 @@ export const stateToUrl = ({ if (sortBy !== null) { params.sortBy = sortBy; } if (sortDirection !== null) { params.sortDirection = sortDirection; } if (variant !== null) { params.variant = variant; } - let uriFilters = {}; - let spatialFilters = {}; - let textFilters = {}; - let timespanFilters = {}; - let activeUriFilters = false; - let activeSpatialFilters = false; - let activeTextFilters = false; - let activeTimespanFilters = false; + let constraints = {}; for (const [key, value] of Object.entries(facets)) { if (has(value, 'uriFilter') && value.uriFilter !== null) { - activeUriFilters = true; - uriFilters[key] = Object.keys(value.uriFilter); + constraints[key] = { + filterType: value.filterType, + priority: value.priority, + values: Object.keys(value.uriFilter) + }; } else if (has(value, 'spatialFilter') && value.spatialFilter !== null) { - activeSpatialFilters = true; - spatialFilters[key] = boundsToValues(value.spatialFilter._bounds); + constraints[key] = { + filterType: value.filterType, + priority: value.priority, + values: boundsToValues(value.spatialFilter._bounds) + }; } else if (has(value, 'textFilter') && value.textFilter !== null) { - activeTextFilters = true; - textFilters[key] = value.textFilter; + constraints[key] = { + filterType: value.filterType, + priority: value.priority, + values: value.textFilter + }; } else if (has(value, 'timespanFilter') && value.timespanFilter !== null) { - activeTimespanFilters = true; - timespanFilters[key] = value.timespanFilter; + constraints[key] = { + filterType: value.filterType, + priority: value.priority, + values: value.timespanFilter + }; } } - if (activeUriFilters) { - params.uriFilters = JSON.stringify(uriFilters); - } - if (activeSpatialFilters) { - params.spatialFilters = JSON.stringify(spatialFilters); - } - if (activeTextFilters) { - params.textFilters = JSON.stringify(textFilters); - } - if (activeTimespanFilters) { - params.timespanFilters = JSON.stringify(timespanFilters); + if (Object.keys(constraints).length > 0) { + params.constraints = JSON.stringify(constraints); } return querystring.stringify(params); }; diff --git a/src/client/reducers/eventsFacets.js b/src/client/reducers/eventsFacets.js index 642cfd6d214e391c6486b0073ae651ff609ac3ce..e27f848dfe09e19aed27a92e1483d72d08d6d2e5 100644 --- a/src/client/reducers/eventsFacets.js +++ b/src/client/reducers/eventsFacets.js @@ -16,23 +16,6 @@ export const INITIAL_STATE = { facetUpdateID: 0, updatedFilter: null, facets: { - label: { - id: 'label', - label: 'Label', - // predicate: defined in backend - distinctValueCount: 0, - values: [], - flatValues: [], - //sortBy: 'instanceCount', - //sortDirection: 'desc', - sortButton: false, - spatialFilterButton: false, - isFetching: false, - searchField: false, - containerClass: 'one', - filterType: 'textFilter', - textFilter: null, - }, type: { id: 'type', label: 'Type', @@ -49,7 +32,8 @@ export const INITIAL_STATE = { containerClass: 'three', filterType: 'uriFilter', uriFilter: null, - spatialFilter: null + spatialFilter: null, + priority: 3 }, eventTimespan: { id: 'eventTimespan', @@ -69,7 +53,8 @@ export const INITIAL_STATE = { min: null, max: null, timespanFilter: null, - type: 'timespan' + type: 'timespan', + priority: 2 }, place: { id: 'place', @@ -88,7 +73,8 @@ export const INITIAL_STATE = { filterType: 'uriFilter', uriFilter: null, spatialFilter: null, - type: 'hierarchical' + type: 'hierarchical', + priority: 1 }, } }; diff --git a/src/server/index.js b/src/server/index.js index bea6aa44f71ab02e2d2fd8daf9a01f3493cdf073..25a5ef437a3094fdf4d9684397e761247c414046 100644 --- a/src/server/index.js +++ b/src/server/index.js @@ -48,7 +48,8 @@ app.get(`${apiPath}/:resultClass/paginated`, async (req, res, next) => { textFilters: req.query.textFilters == null ? null : JSON.parse(req.query.textFilters), timespanFilters: req.query.timespanFilters == null ? null : JSON.parse(req.query.timespanFilters), sortBy: req.query.sortBy || null, - sortDirection: req.query.sortDirection || null + sortDirection: req.query.sortDirection || null, + constraints: req.query.constraints }); res.json(data); } catch(error) { diff --git a/src/server/sparql/FacetResults.js b/src/server/sparql/FacetResults.js index c86a63326d88a914c809c8d2ede4093d9c3b56bf..68815fb9a7b4d95298ad94837dfece5069228bb8 100644 --- a/src/server/sparql/FacetResults.js +++ b/src/server/sparql/FacetResults.js @@ -206,7 +206,7 @@ const getPaginatedData = ({ resultSetProperties = ''; } q = q.replace('<RESULT_SET_PROPERTIES>', resultSetProperties); - // console.log(prefixes + q) + console.log(prefixes + q) return runSelectQuery(prefixes + q, endpoint, makeObjectList); };