Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@ public String getTheme() throws IOException {
json.set("suppressErrorLogs", ConfigUtil.get("suppressErrorLogs"));
json.set("firstLaunch", ConfigUtil.get("firstLaunch"));
json.set("uriPrefix", ConfigUtil.get("uriPrefix"));
json.set("defaultGraph", ConfigUtil.get("defaultGraph"));
String result = mapper.writeValueAsString(json);
return result;
}
Expand Down
10 changes: 9 additions & 1 deletion frontend/components/Search/AdvancedSearch/AdditionalFilter.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ export default function AdditionalFilter(properties) {
const wrapIRI = v => (v?.startsWith("http") ? `<${v}>` : v);
const searchQuery = useSelector(state => state.search.query);
const privateGraphUri = useSelector(state => state.user.graphUri);
const theme = JSON.parse(localStorage.getItem('theme')) || {};
const publicGraphUri = theme.defaultGraph || '';
const fromClause = [
publicGraphUri ? `FROM <${publicGraphUri}>` : '',
privateGraphUri ? `FROM <${privateGraphUri}>` : ''
]
.filter(Boolean)
.join('\n');

useEffect(() => {
const newFilters = [...properties.extraFilters];
Expand Down Expand Up @@ -68,7 +76,7 @@ export default function AdditionalFilter(properties) {
sparql={configureQuery(searchObject, {
predicate: wrapIRI(properties.extraFilters[properties.index].filter), //selectedPredicate
constraints: buildFacetConstraints(properties, searchQuery, undefined, properties.index),
from: privateGraphUri ? `FROM <${privateGraphUri}>` : ''
from: fromClause
})}
parseResult={result => {
const count = result.count ? ` (${result.count.value})` : '';
Expand Down
24 changes: 16 additions & 8 deletions frontend/components/Search/AdvancedSearch/Options.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,26 @@ export default function Options(properties) {
const searchQuery = useSelector(state => state.search.query);
const username = useSelector(state => state.user.username);
const privateGraphUri = useSelector(state => state.user.graphUri);
const theme = JSON.parse(localStorage.getItem('theme')) || {};
const publicGraphUri = theme.defaultGraph || '';

const fromClause = [
publicGraphUri ? `FROM <${publicGraphUri}>` : '',
privateGraphUri ? `FROM <${privateGraphUri}>` : ''
]
.filter(Boolean)
.join('\n');

const facetQuery = (template, excludeFacet) =>
configureQuery(template, {
constraints: buildFacetConstraints(properties, searchQuery, excludeFacet),
from: username ? `FROM <${privateGraphUri}>` : ''
from: fromClause
});

// load predicates on component mount
useEffect(() => {
loadPredicates(setPredicates, token, dispatch, privateGraphUri);
}, [privateGraphUri]);
loadPredicates(setPredicates, token, dispatch, fromClause);
}, [fromClause]);

// map through extra filters to display them
const filterDisplay = properties.extraFilters.map((element, index) => {
Expand Down Expand Up @@ -182,16 +191,15 @@ export default function Options(properties) {
}

// function to load predicates
const loadPredicates = async (setPredicates, token, dispatch, privateGraphUri) => {
const results = await fetchPredicates(token, dispatch, privateGraphUri);
const loadPredicates = async (setPredicates, token, dispatch, fromClause) => {
const results = await fetchPredicates(token, dispatch, fromClause);
setPredicates(results);
};

// function to fetch predicates
const fetchPredicates = async (token, dispatch, privateGraphUri) => {
const from = privateGraphUri ? `FROM <${privateGraphUri}>` : '';
const fetchPredicates = async (token, dispatch, fromClause) => {
const url = `${publicRuntimeConfig.backend}/sparql?query=${encodeURIComponent(
configureQuery(getPredicates, { from })
configureQuery(getPredicates, { from: fromClause || '' })
)}`;
try {
const headers = {
Expand Down
Loading