diff --git a/src/client/components/facet_results/ResultClassRoute.js b/src/client/components/facet_results/ResultClassRoute.js index da68e9e9935066c6a64c1efcc93dac9cf8218def..626c8073ae24c68496a99308d143a00c8989e4eb 100644 --- a/src/client/components/facet_results/ResultClassRoute.js +++ b/src/client/components/facet_results/ResultClassRoute.js @@ -95,6 +95,10 @@ const ResultClassRoute = props => { showInstanceCountInClusters = true } = resultClassConfig const resultClassMap = maps[resultClass] + let createPopUpContent = props.leafletConfig.createPopUpContentDefault + if (resultClassConfig.instanceConfig && resultClassConfig.instanceConfig.createPopUpContent) { + createPopUpContent = props.leafletConfig[resultClassConfig.instanceConfig.createPopUpContent] + } let leafletProps = { portalConfig, perspectiveConfig: perspective, @@ -107,7 +111,7 @@ const ResultClassRoute = props => { facetClass, mapMode, instance: perspectiveState.instanceTableData, - createPopUpContent: props.leafletConfig.createPopUpContentMMM, + createPopUpContent, popupMaxHeight, popupMinWidth, popupMaxWidth, diff --git a/src/client/configs/sampo/Leaflet/LeafletConfig.js b/src/client/configs/sampo/Leaflet/LeafletConfig.js index 53b56d2c607e9401dac5326fe3fc8e08e3fffc05..dd0801d289986fe49ed8c0b9b6f89c0eedb51c5e 100644 --- a/src/client/configs/sampo/Leaflet/LeafletConfig.js +++ b/src/client/configs/sampo/Leaflet/LeafletConfig.js @@ -2,6 +2,25 @@ import { has, orderBy } from 'lodash' import history from '../../../History' import intl from 'react-intl-universal' +export const createPopUpContentDefault = ({ data, resultClass }) => { + if (Array.isArray(data.prefLabel)) { + data.prefLabel = data.prefLabel[0] + } + const container = document.createElement('div') + const h3 = document.createElement('h3') + if (has(data.prefLabel, 'dataProviderUrl')) { + const link = document.createElement('a') + link.addEventListener('click', () => history.push(data.prefLabel.dataProviderUrl)) + link.textContent = data.prefLabel.prefLabel + link.style.cssText = 'cursor: pointer; text-decoration: underline' + h3.appendChild(link) + } else { + h3.textContent = data.prefLabel.prefLabel + } + container.appendChild(h3) + return container +} + export const createPopUpContentMMM = ({ data, resultClass }) => { if (Array.isArray(data.prefLabel)) { data.prefLabel = data.prefLabel[0] diff --git a/src/client/configs/sampo/perspective_configs/search_perspectives/perspective1.json b/src/client/configs/sampo/perspective_configs/search_perspectives/perspective1.json index 61912ccce052a08bdeb537fbddeacb89529f888c..b4609c98ca13e32f22585a2ef5e34d2669b4e459 100644 --- a/src/client/configs/sampo/perspective_configs/search_perspectives/perspective1.json +++ b/src/client/configs/sampo/perspective_configs/search_perspectives/perspective1.json @@ -74,7 +74,8 @@ "facetID": "productionPlace", "instanceConfig": { "propertiesQueryBlock": "placePropertiesInfoWindow", - "relatedInstances": "manuscriptsProducedAt" + "relatedInstances": "manuscriptsProducedAt", + "createPopUpContent": "createPopUpContentMMM" } }, "placesMsProducedHeatmap": { diff --git a/src/client/helpers/helpers.js b/src/client/helpers/helpers.js index d090eec5822fd6cf17959622a4ed7e84e98734cb..9190c4553066da1bbef5ad3b911dd7d14c2a2964 100644 --- a/src/client/helpers/helpers.js +++ b/src/client/helpers/helpers.js @@ -232,10 +232,9 @@ export const createPerspectiveConfig = async ({ portalID, searchPerspectives }) icon: <MuiIcon iconName={tabIcon} /> }) } - sortBy(tabs, 'value') }) - perspective.tabs = tabs - perspective.instancePageTabs = instancePageTabs + perspective.tabs = sortBy(tabs, 'value') + perspective.instancePageTabs = sortBy(instancePageTabs, 'value') } if (has(perspective, 'defaultActiveFacets')) { perspective.defaultActiveFacets = new Set(perspective.defaultActiveFacets)