@geogirafe/lib-geoportal 1.2.0-dev.2714239322 → 1.2.0-dev.2729313771

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.
@@ -1,6 +1,6 @@
1
1
  import type { BaseCustomizer, MFPLayer, MFPMap, MFPWmtsLayer, MFPWmsLayer } from '@geoblocks/mapfishprint';
2
- import GroupLayer from '../../../models/layers/grouplayer.js';
3
2
  import type BaseLayer from '../../../models/layers/baselayer.js';
3
+ import GroupLayer from '../../../models/layers/grouplayer.js';
4
4
  import MapManager from '../../../tools/state/mapManager.js';
5
5
  import State from '../../../tools/state/state.js';
6
6
  import LayerLocalFile from '../../../models/layers/layerlocalfile.js';
@@ -1,5 +1,5 @@
1
- import GroupLayer from '../../../models/layers/grouplayer.js';
2
1
  import { getAbsoluteUrl, getWmtsMatrices, getWmtsUrl, MFPVectorEncoder } from '@geoblocks/mapfishprint';
2
+ import GroupLayer from '../../../models/layers/grouplayer.js';
3
3
  import { toDegrees } from 'ol/math.js';
4
4
  import LayerLocalFile from '../../../models/layers/layerlocalfile.js';
5
5
  import LayerWms from '../../../models/layers/layerwms.js';
@@ -9,6 +9,7 @@ import { isLayerVisible } from './printUtils.js';
9
9
  import VectorSource from 'ol/source/Vector.js';
10
10
  import LayerWmtsExternal from '../../../models/layers/layerwmtsexternal.js';
11
11
  import LayerWmsExternal from '../../../models/layers/layerwmsexternal.js';
12
+ import WmsClient from '../../../tools/wms/wmsclient.js';
12
13
  /** Supported MapFishPRint servers
13
14
  * see https://github.com/mapfish/mapfish-print/blob/master/core/src/main/java/org/mapfish/print/map/image/wms/WmsLayerParam.java#L123
14
15
  */
@@ -190,6 +191,9 @@ export default class MFPEncoder {
190
191
  customParams[key] = value;
191
192
  });
192
193
  }
194
+ if (layerWms.filter) {
195
+ customParams.FILTER = WmsClient.buildFilterQuery(layerWms);
196
+ }
193
197
  let serverType = layerWms.ogcServer.type;
194
198
  // Remove unsupported serverType (otherwise, you'll get an error from the print server).
195
199
  if (!MFPSupportedServerType.has(serverType)) {
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "name": "GeoGirafe PSC",
6
6
  "url": "https://doc.geogirafe.org"
7
7
  },
8
- "version": "1.2.0-dev.2714239322",
8
+ "version": "1.2.0-dev.2729313771",
9
9
  "type": "module",
10
10
  "engines": {
11
11
  "node": ">=20.19.0"
@@ -1 +1 @@
1
- {"version":"1.2.0-dev.2714239322", "build":"2714239322", "date":"29/07/2026"}
1
+ {"version":"1.2.0-dev.2729313771", "build":"2729313771", "date":"04/08/2026"}
@@ -42,7 +42,14 @@ export default abstract class WmsClient {
42
42
  private manageLayerOptions;
43
43
  private makeLayerIndependent;
44
44
  private updateLayerFilter;
45
- abstract buildFilterQuery(layerWms: LayerWms): string;
45
+ /**
46
+ * MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
47
+ * QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
48
+ *
49
+ * MapServer: (<filter>...</filter><filter>...</filter>)
50
+ * QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
51
+ */
52
+ static buildFilterQuery(layerWms: LayerWms): string;
46
53
  private updateTimeRestriction;
47
54
  selectFeatures(extent: number[]): void;
48
55
  /**
@@ -62,17 +69,11 @@ export declare class WmsClientQgis extends WmsClient {
62
69
  * Solution: directly query the queryLayers
63
70
  */
64
71
  getOpenLayerLayerNames(layerList: LayerWms[]): string[];
65
- /** MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
66
- * QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
67
- *
68
- * MapServer: (<filter>...</filter><filter>...</filter>)
69
- * QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
70
- */
71
- buildFilterQuery(layerWms: LayerWms): string;
72
+ static buildFilterQuery(layerWms: LayerWms): string;
72
73
  }
73
74
  export declare class WmsClientMapServer extends WmsClient {
74
75
  getOpenLayerLayerNames(layerList: LayerWms[]): string[];
75
- buildFilterQuery(layerWms: LayerWms): string;
76
+ static buildFilterQuery(layerWms: LayerWms): string;
76
77
  }
77
78
  export declare const WmsClientDefault: typeof WmsClientQgis;
78
79
  export declare const WmsClientGeoServer: typeof WmsClientMapServer;
@@ -231,7 +231,7 @@ export default class WmsClient {
231
231
  updateLayerFilter(layerWms, olayer) {
232
232
  const source = olayer.getSource();
233
233
  if (layerWms.hasFilter) {
234
- const filterStr = this.buildFilterQuery(layerWms);
234
+ const filterStr = WmsClient.buildFilterQuery(layerWms);
235
235
  source.updateParams({ FILTER: filterStr });
236
236
  }
237
237
  else {
@@ -243,6 +243,19 @@ export default class WmsClient {
243
243
  }
244
244
  }
245
245
  }
246
+ /**
247
+ * MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
248
+ * QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
249
+ *
250
+ * MapServer: (<filter>...</filter><filter>...</filter>)
251
+ * QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
252
+ */
253
+ static buildFilterQuery(layerWms) {
254
+ if (layerWms.ogcServer.type === 'qgisserver') {
255
+ return WmsClientQgis.buildFilterQuery(layerWms);
256
+ }
257
+ return WmsClientMapServer.buildFilterQuery(layerWms);
258
+ }
246
259
  updateTimeRestriction(layerWms, olayer) {
247
260
  const source = olayer.getSource();
248
261
  if (layerWms.hasTimeRestriction) {
@@ -414,34 +427,26 @@ export class WmsClientQgis extends WmsClient {
414
427
  return layerNames;
415
428
  }
416
429
  }
417
- /** MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
418
- * QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
419
- *
420
- * MapServer: (<filter>...</filter><filter>...</filter>)
421
- * QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
422
- */
423
- buildFilterQuery(layerWms) {
424
- let filterStr = '';
425
- if (layerWms.hasFilter) {
426
- const filter = layerWms.filter;
427
- const nbQuerylayers = layerWms.queryLayers.split(',').length;
428
- filterStr = ('(' + filter.toWmsGetMapFilter() + ')').repeat(nbQuerylayers);
430
+ static buildFilterQuery(layerWms) {
431
+ if (!layerWms.hasFilter) {
432
+ return '';
429
433
  }
430
- return filterStr;
434
+ const filter = layerWms.filter;
435
+ const nbQuerylayers = layerWms.queryLayers.split(',').length;
436
+ return ('(' + filter.toWmsGetMapFilter() + ')').repeat(nbQuerylayers);
431
437
  }
432
438
  }
433
439
  export class WmsClientMapServer extends WmsClient {
434
440
  getOpenLayerLayerNames(layerList) {
435
441
  return layerList.map((l) => l.layers);
436
442
  }
437
- buildFilterQuery(layerWms) {
438
- let filterStr = '';
439
- if (layerWms.hasFilter) {
440
- const filter = layerWms.filter;
441
- const nbQuerylayers = layerWms.queryLayers.split(',').length;
442
- filterStr = '(' + filter.toWmsGetMapFilter().repeat(nbQuerylayers) + ')';
443
+ static buildFilterQuery(layerWms) {
444
+ if (!layerWms.hasFilter) {
445
+ return '';
443
446
  }
444
- return filterStr;
447
+ const filter = layerWms.filter;
448
+ const nbQuerylayers = layerWms.queryLayers.split(',').length;
449
+ return '(' + filter.toWmsGetMapFilter().repeat(nbQuerylayers) + ')';
445
450
  }
446
451
  }
447
452
  export const WmsClientDefault = WmsClientQgis;