qwc2 2026.6.9 → 2026.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -377,9 +377,9 @@ var AttributeForm = /*#__PURE__*/function (_React$Component) {
377
377
  var changed = _this.props.editContext.changed;
378
378
  var relTable = _this.state.relationTables[table];
379
379
  var fkVal = relTable.pkField ? _this.props.editContext.feature.properties[relTable.pkField] : _this.props.editContext.feature.id;
380
- var fk = _this.state.relationTables[table].fk;
381
- if (_this.props.editContext.action !== "Draw" && feature.properties[fk] !== fkVal) {
382
- newRelationValues[table].features[idx].properties[fk] = fkVal;
380
+ var fkField = _this.state.relationTables[table].fkField;
381
+ if (_this.props.editContext.action !== "Draw" && feature.properties[fkField] !== fkVal) {
382
+ newRelationValues[table].features[idx].properties[fkField] = fkVal;
383
383
  newRelationValues[table].features[idx].__status__ = "changed";
384
384
  changed = true;
385
385
  }
@@ -108,6 +108,7 @@ var AttributeTableWidget = /*#__PURE__*/function (_React$Component) {
108
108
  type: "checkbox"
109
109
  }));
110
110
  } else if (constraints.values || constraints.keyvalrel) {
111
+ var _constraints$keyvalre, _constraints$keyvalre2;
111
112
  var filterExpr = null;
112
113
  if (field.filterExpression) {
113
114
  filterExpr = parseExpression(field.filterExpression, feature, editConfig, _this.props.iface, mapPrefix, _this.props.mapCrs, function () {
@@ -120,7 +121,8 @@ var AttributeTableWidget = /*#__PURE__*/function (_React$Component) {
120
121
  editIface: _this.props.iface,
121
122
  fieldId: field.id,
122
123
  filterExpr: filterExpr,
123
- keyvalrel: constraints.keyvalrel,
124
+ keyvalrel: (_constraints$keyvalre = constraints.keyvalrel) === null || _constraints$keyvalre === void 0 || (_constraints$keyvalre2 = _constraints$keyvalre.replace) === null || _constraints$keyvalre2 === void 0 ? void 0 : _constraints$keyvalre2.call(_constraints$keyvalre, new RegExp("^".concat(mapPrefix, "\\.")), ''),
125
+ mapPrefix: mapPrefix,
124
126
  multiSelect: constraints.allowMulti === true,
125
127
  name: field.id,
126
128
  readOnly: constraints.readOnly || disabled,
@@ -539,6 +539,7 @@ var QtDesignerForm = /*#__PURE__*/function (_React$Component) {
539
539
  editIface: _this.props.iface,
540
540
  fieldId: widget.name,
541
541
  key: widget.name,
542
+ mapPrefix: _this.props.mapPrefix,
542
543
  name: elname,
543
544
  placeholder: inputConstraints.placeholder,
544
545
  readOnly: inputConstraints.readOnly || inputConstraints.readOnly,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qwc2",
3
- "version": "2026.06.09",
3
+ "version": "2026.06.10",
4
4
  "description": "QGIS Web Client",
5
5
  "author": "Sourcepole AG",
6
6
  "license": "BSD-2-Clause",
package/plugins/Print.js CHANGED
@@ -252,10 +252,15 @@ var Print = /*#__PURE__*/function (_React$Component) {
252
252
  onChange: _this.changeLayout,
253
253
  value: _this.state.layout.name
254
254
  }, _this.state.layouts.map(function (item) {
255
+ var name = _this.translateLayoutName(themeLayer, item);
256
+ if (_this.props.omitLayoutPathsFromTitle) {
257
+ name = name.replace(/.*\//, '');
258
+ }
255
259
  return /*#__PURE__*/React.createElement("option", {
256
260
  key: item.name,
261
+ title: name,
257
262
  value: item.name
258
- }, _this.translateLayoutName(themeLayer, item));
263
+ }, name);
259
264
  })))), _this.props.formats.length > 1 ? /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, LocaleUtils.tr("common.format")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("select", {
260
265
  disabled: _this.state.printSeriesEnabled,
261
266
  name: "FORMAT",
@@ -1199,6 +1204,8 @@ _defineProperty(Print, "propTypes", {
1199
1204
  map: PropTypes.object,
1200
1205
  /** Whether to allow moving the extent while selecting the print series. */
1201
1206
  movePrintSeries: PropTypes.bool,
1207
+ /** Whether to cut off any layout path prefixes (i.e. as in `subdir/Layout Name`) from the layout titles displayed in selection combo. */
1208
+ omitLayoutPathsFromTitle: PropTypes.bool,
1202
1209
  /** Whether to print external layers. Requires QGIS Server 3.x! */
1203
1210
  printExternalLayers: PropTypes.bool,
1204
1211
  /** Whether to print highlights on the map, e.g. selected features or redlining. */
@@ -282,23 +282,6 @@ export default function layers() {
282
282
  }
283
283
  });
284
284
  }
285
- // Ensure (empty) theme layer is present
286
- if (!_newLayers5.find(function (l) {
287
- return l.role === LayerRole.THEME;
288
- })) {
289
- var prevThemeLayer = state.flat.find(function (l) {
290
- return l.role === LayerRole.THEME;
291
- });
292
- if (prevThemeLayer) {
293
- var themeLayer = _objectSpread(_objectSpread({}, prevThemeLayer), {}, {
294
- sublayers: []
295
- });
296
- var pos = _newLayers5.findIndex(function (l) {
297
- return l.role === LayerRole.BACKGROUND;
298
- });
299
- _newLayers5.splice(pos === -1 ? _newLayers5.length : pos, 0, _objectSpread(_objectSpread({}, themeLayer), LayerUtils.buildWMSLayerParams(themeLayer, state.filter)));
300
- }
301
- }
302
285
  UrlParams.updateParams({
303
286
  l: LayerUtils.buildWMSLayerUrlParam(_newLayers5)
304
287
  });