Skip to content

Commit 5d5f7c5

Browse files
committed
Merge configuration options masterportal_default_vector_layer_id & masterportal_vector_layer_ids
1 parent 74e815f commit 5d5f7c5

3 files changed

Lines changed: 23 additions & 48 deletions

File tree

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,10 @@ server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields
6161
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.add_icon_points_to_polygons.label,Darstellung von Polygonen,Display of polygons
6262
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.add_icon_points_to_polygons.checkbox,Punkte zur Icon-Anzeige hinzufügen,Add points for displaying icons
6363
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_raster_layer_id.label,Masterportal: Raster-Layer-ID,Masterportal: Raster layer ID
64-
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_default_vector_layer_id.label,Masterportal: Vektor-Layer-ID (Standard),Masterportal: Vector layer ID (default)
65-
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_default_vector_layer_id.group_id.label,Benutzergruppen-ID (optional),User group ID (optional)
66-
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_default_vector_layer_id.layer_id.label,Layer-ID,Layer ID
6764
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_vector_layer_field_name.label,Masterportal: Name des WFS-Feldes für Zuordnung der Masterportal-Vektor-Layer-ID,Masterportal: Name of WFS field for assigning Masterportal vector layer ID
6865
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_vector_layer_ids.label,Masterportal: Vektor-Layer-IDs abhängig von WFS-Feldwert,Masterportal: Vector layer IDs based on WFS field value
6966
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_vector_layer_ids.field_value.label,Feldwert,Field value
67+
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_vector_layer_ids.group_id.label,Benutzergruppen-ID,User group ID
7068
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.masterportal_vector_layer_ids.layer_id.label,Layer-ID,Layer ID
7169
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.send_data_to_geoserver.label,Datenübertragung an Geoserver,Data transfer to geoserver
7270
server.config.parameter.system.nfisGeoservices.wfs_configuration.geometry_fields.send_data_to_geoserver.checkbox,Aktivieren,Activate

manifest.master.yml

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,32 +116,25 @@ base_config:
116116
- name: masterportal_raster_layer_id
117117
type: text
118118
position: 8
119-
- name: masterportal_default_vector_layer_id
120-
type: table
121-
fields:
122-
- name: group_id
123-
type: int
124-
position: 0
125-
- name: layer_id
126-
type: text
127-
position: 1
128-
position: 9
129119
- name: masterportal_vector_layer_field_name
130120
type: text
131-
position: 10
121+
position: 9
132122
- name: masterportal_vector_layer_ids
133123
type: table
134124
fields:
135125
- name: field_value
136126
type: text
137127
position: 0
128+
- name: group_id
129+
type: int
130+
position: 1
138131
- name: layer_id
139132
type: text
140-
position: 1
141-
position: 11
133+
position: 2
134+
position: 10
142135
- name: send_data_to_geoserver
143136
type: bool
144-
position: 12
137+
position: 11
145138
- name: fields
146139
type: table
147140
fields:
@@ -154,7 +147,7 @@ base_config:
154147
- name: fylr_function
155148
type: text
156149
position: 2
157-
position: 13
150+
position: 12
158151
- name: tags
159152
type: table
160153
fields:
@@ -170,6 +163,7 @@ base_config:
170163
- name: wfs_field_value
171164
type: text
172165
position: 3
166+
position: 13
173167
- name: wfs_pool_field
174168
type: text
175169
position: 14

src/webfrontend/js/customDataType/contentLoader.js

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -590,8 +590,7 @@ function configureCursor(map) {
590590
function getViewGeometriesUrl(settings, extent, wfsData) {
591591
const url = getMasterportalUrl();
592592
const masterportalVersion = getBaseConfiguration().masterportal_version;
593-
const vectorLayerIds = getMasterportalVectorLayerIds(settings.fieldConfiguration, wfsData);
594-
const layerId = vectorLayerIds?.length ? vectorLayerIds[0] : undefined;
593+
const layerId = getMasterportalVectorLayerId(settings.fieldConfiguration, wfsData);
595594

596595
if (!url || !layerId) return '';
597596

@@ -622,39 +621,23 @@ function getEditGeometryUrl(settings, wfsData, extent, geometryId, upload = fals
622621

623622
function getMasterportalLayerIds(fieldConfiguration, wfsData) {
624623
const rasterLayerId = fieldConfiguration.masterportal_raster_layer_id;
625-
const vectorLayerIds = getMasterportalVectorLayerIds(fieldConfiguration, wfsData);
626-
627-
return rasterLayerId
628-
? [rasterLayerId].concat(vectorLayerIds)
629-
: vectorLayerIds;
624+
const vectorLayerId = getMasterportalVectorLayerId(fieldConfiguration, wfsData);
625+
626+
const result = [];
627+
if (rasterLayerId) result.push(rasterLayerId);
628+
if (vectorLayerId) result.push(vectorLayerId);
629+
630+
return result;
630631
}
631632

632-
function getMasterportalVectorLayerIds(fieldConfiguration, wfsData) {
633+
function getMasterportalVectorLayerId(fieldConfiguration, wfsData) {
633634
const fieldName = fieldConfiguration.masterportal_vector_layer_field_name;
634635
const mapping = fieldConfiguration.masterportal_vector_layer_ids;
635636

636-
let result;
637-
if (fieldName && mapping && wfsData) {
638-
result = wfsData.features.map(feature => feature.properties[fieldName])
639-
.reduce((result, value) => {
640-
const layerId = mapping.find(entry => entry.field_value === value)?.layer_id;
641-
if (layerId && !result.includes(layerId)) result.push(layerId);
642-
return result;
643-
}, []);
644-
}
645-
646-
if (result?.length) {
647-
return result;
648-
} else {
649-
const defaultLayerId = getDefaultMasterportalVectorLayerId(fieldConfiguration);
650-
return defaultLayerId ? [defaultLayerId] : [];
651-
}
652-
}
653-
654-
function getDefaultMasterportalVectorLayerId(fieldConfiguration) {
655-
return fieldConfiguration.masterportal_default_vector_layer_id
656-
?.find(entry => entry.group_id === null || getUserGroupIds().includes(entry.group_id))
657-
?.layer_id;
637+
return mapping.find(entry => {
638+
return (!entry.field_value || wfsData?.features.find(feature => feature.properties[fieldName] === entry.field_value))
639+
&& (!entry.group_id || getUserGroupIds().includes(entry.group_id));
640+
})?.layer_id;
658641
}
659642

660643
function getMasterportalUrl() {

0 commit comments

Comments
 (0)