Skip to content

Commit 74e815f

Browse files
committed
Use Masterportal URL parameter "highlightFeaturesByAttribute" for "View in Masterportal" link if Masterportal version 3 is selected in configuration
1 parent db54b14 commit 74e815f

3 files changed

Lines changed: 18 additions & 8 deletions

File tree

l10n/custom-data-type-nfis-geometry.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,5 @@ server.config.parameter.system.nfisGeoservices.masterportal_configurations.name.
9090
server.config.parameter.system.nfisGeoservices.masterportal_configurations.file_name.label,Name der Konfigurationsdatei,Name of configuration file
9191
server.config.option.system.nfisGeoservices.masterportal_version.2,2,2
9292
server.config.option.system.nfisGeoservices.masterportal_version.3,3,3
93+
server.config.option.system.nfisGeoservices.masterportal_version.3_use_extent,3 (ohne 'Highlight features by attribute'),3 (without 'Highlight features by attribute')
9394
base.error.realm.multipleGeometryLinking,Mehrfachverknüpfung von Geometrien nicht erlaubt,Multiple linking of geometries not permitted

manifest.master.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ base_config:
3939
position: 0
4040
masterportal_version:
4141
type: select
42-
options: ["2", "3"]
42+
options: ["2", "3", "3_use_extent"]
4343
position: 1
4444
geoserver_read_username:
4545
type: text

src/webfrontend/js/customDataType/contentLoader.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ function renderDetailContent(contentElement, cdata, settings, wfsData) {
5252
} else {
5353
renderMap(
5454
contentElement, cdata, settings, wfsData, false,
55-
renderViewGeometriesButton(contentElement)
55+
renderViewGeometriesButton(contentElement, settings, wfsData)
5656
);
5757
}
5858
}
@@ -109,10 +109,10 @@ function isAddingGeometriesAllowed(cdata, settings) {
109109
return settings.isMultiSelect || !cdata.geometry_ids?.length
110110
}
111111

112-
function renderViewGeometriesButton(contentElement) {
112+
function renderViewGeometriesButton(contentElement, settings, wfsData) {
113113
return extent => {
114114
const showGeometryButton = new CUI.ButtonHref({
115-
href: getViewGeometriesUrl(extent),
115+
href: getViewGeometriesUrl(settings, extent, wfsData),
116116
target: '_blank',
117117
icon_left: new CUI.Icon({ class: 'fa-external-link' }),
118118
text: $$('custom.data.type.nfis.geometry.viewGeometry')
@@ -587,11 +587,20 @@ function configureCursor(map) {
587587
});
588588
}
589589

590-
function getViewGeometriesUrl(extent) {
590+
function getViewGeometriesUrl(settings, extent, wfsData) {
591591
const url = getMasterportalUrl();
592-
if (!url) return '';
593-
594-
return url + 'zoomToExtent=' + extent.join(',');
592+
const masterportalVersion = getBaseConfiguration().masterportal_version;
593+
const vectorLayerIds = getMasterportalVectorLayerIds(settings.fieldConfiguration, wfsData);
594+
const layerId = vectorLayerIds?.length ? vectorLayerIds[0] : undefined;
595+
596+
if (!url || !layerId) return '';
597+
598+
return masterportalVersion === '2' || masterportalVersion === '3_use_extent'
599+
? (url + 'zoomToExtent=' + extent.join(','))
600+
: (url + 'highlightFeaturesByAttribute=1&wfsId=' + layerId
601+
+ '&attributeName=' + settings.geometryIdFieldName
602+
+ '&attributeValue=' + wfsData.features.map(feature => feature.properties[settings.geometryIdFieldName])
603+
+ '&attributeQuery=isIn');
595604
}
596605

597606
function getEditGeometryUrl(settings, wfsData, extent, geometryId, upload = false) {

0 commit comments

Comments
 (0)