diff --git a/src/client/containers/SemanticPortal.js b/src/client/containers/SemanticPortal.js index 2f1095bae23125278f5b0242454b8ef75ff83935..42712868405303f0497faf49acf66a1604bbad56 100644 --- a/src/client/containers/SemanticPortal.js +++ b/src/client/containers/SemanticPortal.js @@ -64,7 +64,8 @@ const { portalID, rootUrl, perspectives, - layoutConfig + layoutConfig, + knowledgeGraphMetadataSource } = portalConfig const perspectiveConfig = await createPerspectiveConfig({ portalID, @@ -627,31 +628,33 @@ const SemanticPortal = props => { /> {/* create routes for info buttons */} - <Route - path={`${rootUrlWithLang}/about`} - render={() => - <div className={classNames(classes.mainContainer, classes.textPageContainer)}> - <TextPage> - {intl.getHTML('aboutThePortalPartOne')} - <KnowledgeGraphMetadataTable - portalConfig={portalConfig} - layoutConfig={layoutConfig} - perspectiveID='perspective1' - resultClass='perspective1KnowledgeGraphMetadata' - fetchKnowledgeGraphMetadata={props.fetchKnowledgeGraphMetadata} - knowledgeGraphMetadata={props.perspective1.knowledgeGraphMetadata} - /> - {intl.getHTML('aboutThePortalPartTwo')} - </TextPage> - </div>} - /> - <Route - path={`${rootUrlWithLang}/instructions`} - render={() => - <div className={classNames(classes.mainContainer, classes.textPageContainer)}> - <TextPage>{intl.getHTML('instructions')}</TextPage> - </div>} - /> + {!layoutConfig.topBar.externalAboutPage && + <Route + path={`${rootUrlWithLang}/about`} + render={() => + <div className={classNames(classes.mainContainer, classes.textPageContainer)}> + <TextPage> + {intl.getHTML('aboutThePortalPartOne')} + <KnowledgeGraphMetadataTable + portalConfig={portalConfig} + layoutConfig={layoutConfig} + perspectiveID={knowledgeGraphMetadataSource} + resultClass='knowledgeGraphMetadata' + fetchKnowledgeGraphMetadata={props.fetchKnowledgeGraphMetadata} + knowledgeGraphMetadata={props[knowledgeGraphMetadataSource].knowledgeGraphMetadata} + /> + {intl.getHTML('aboutThePortalPartTwo')} + </TextPage> + </div>} + />} + {!layoutConfig.topBar.externalInstructions && + <Route + path={`${rootUrlWithLang}/instructions`} + render={() => + <div className={classNames(classes.mainContainer, classes.textPageContainer)}> + <TextPage>{intl.getHTML('instructions')}</TextPage> + </div>} + />} </> </div> </MuiPickersUtilsProvider> diff --git a/src/client/epics/index.js b/src/client/epics/index.js index dfcf8fae7cd330e97c462b1a728f038cc2d8cbca..85a619f175356e4e8f814cd6ab452cd4a6e5355e 100644 --- a/src/client/epics/index.js +++ b/src/client/epics/index.js @@ -545,7 +545,7 @@ const fetchKnowledgeGraphMetadataEpic = (action$, state$) => action$.pipe( }).pipe( map(ajaxResponse => updateKnowledgeGraphMetadata({ resultClass: action.resultClass, - data: ajaxResponse.response.data[0], + data: ajaxResponse.response.data ? ajaxResponse.response.data[0] : null, sparqlQuery: ajaxResponse.response.sparqlQuery })), catchError(error => of({ diff --git a/src/configs/portalConfig.json b/src/configs/portalConfig.json index 30b6dc74227a9365457e68ec4def59531dcf6a43..41fee6fae56657a3ec0cd854c92ad440a3619e01 100644 --- a/src/configs/portalConfig.json +++ b/src/configs/portalConfig.json @@ -19,6 +19,7 @@ "places" ] }, + "knowledgeGraphMetadataSource": "perspective1", "localeConfig": { "defaultLocale": "en", "readTranslationsFromGoogleSheets": "false", @@ -60,6 +61,8 @@ "topBar": { "showLanguageButton": true, "feedbackLink": "https://link.webropolsurveys.com/...", + "externalInstructions": false, + "externalAboutPage": false, "reducedHeight": 44, "defaultHeight": 64, "mobileMenuBreakpoint": 1360, diff --git a/src/configs/sampo/search_perspectives/perspective1.json b/src/configs/sampo/search_perspectives/perspective1.json index 53152059e441fcc1e7234ea2633f7c523e29dc15..42b7771cec0c014a608e383a5cddf6554436bc4d 100644 --- a/src/configs/sampo/search_perspectives/perspective1.json +++ b/src/configs/sampo/search_perspectives/perspective1.json @@ -55,7 +55,7 @@ "resultClass": "perspective1", "facetClass": "perspective1" }, - "perspective1KnowledgeGraphMetadata": { + "knowledgeGraphMetadata": { "sparqlQuery": "knowledgeGraphMetadataQuery", "resultMapper": "makeObjectList" } diff --git a/src/server/sparql/FacetResults.js b/src/server/sparql/FacetResults.js index 6970933874c80c089f19a90675c402071e6cdccc..5a29697b4d1f18ddb06c7f3dfdf667d62148c210 100644 --- a/src/server/sparql/FacetResults.js +++ b/src/server/sparql/FacetResults.js @@ -118,6 +118,13 @@ export const getAllResults = ({ langTagSecondary = null } = perspectiveConfig const resultClassConfig = perspectiveConfig.resultClasses[resultClass] + if (resultClassConfig === undefined) { + console.log(`Error: result class "${resultClass}" not defined for perspective "${perspectiveID}"`) + return Promise.resolve({ + data: null, + sparqlQuery: '' + }) + } const { sparqlQuery, sparqlQueryNodes = null,