Skip to content

[Filtered] compacted client payload, base-layer switcher, and GeoJSON overlays - #1133

Merged
kghbln merged 1 commit into
masterfrom
filtered-payload-compaction
Jul 24, 2026
Merged

[Filtered] compacted client payload, base-layer switcher, and GeoJSON overlays#1133
kghbln merged 1 commit into
masterfrom
filtered-payload-compaction

Conversation

@kghbln

@kghbln kghbln commented Jul 23, 2026

Copy link
Copy Markdown
Member

Three changes to the filtered format:

  • Compacted client payload (v2 serialization): per-item printouts become a positional array of {v, f, s} slots (formatted/sort values omitted when identical, value-less printouts as null), coordinates single-sourced. Decoded srfFilteredConfig −53% (3.57 → 1.68 MB on a 2,575-item page), page −37%, identical behavior. Gadgets reading srfFilteredConfig must adapt (release note included).
  • map view layers parameter: multiple base layers with a Leaflet switcher. Names are leaflet-providers strings and/or custom layers defined by the Maps extension's new $egMapsLeafletLayerDefinitions (Maps 13.1+, Add egMapsLeafletLayerDefinitions setting for custom Leaflet layers ProfessionalWiki/Maps#921); without Maps, provider names still work and unknown names are skipped without breaking the map.
  • map view geojson parameter: a GeoJSON overlay from a GeoJson: page or URL, fetched through the Maps extension (SSRF-guarded), simplestyle styling and popups, toggleable via the layer switcher, unaffected by the client-side filtering. With Maps absent the parameter yields an i18n'd query error and the view renders normally.

All three parts were independently pr-reviewed (report-only) with findings integrated: numeric layer names keep their configured order, malformed GeoJSON degrades to no-overlay instead of a blank map, value-filter radio DOM ids are page-unique, and GeoJSON point features use the explicitly-pathed marker icon.

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 67.52137% with 38 lines in your changes missing coverage. Please review.
✅ Project coverage is 58.36%. Comparing base (7807da1) to head (bafbc7b).

Files with missing lines Patch % Lines
formats/filtered/src/View/MapView.php 75.75% 16 Missing ⚠️
formats/filtered/src/Filters/DistanceFilter.php 0.00% 10 Missing ⚠️
formats/filtered/src/View/MapsGeoJsonProvider.php 60.00% 6 Missing ⚠️
...filtered/src/View/MapsLayerDefinitionsProvider.php 45.45% 6 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1133      +/-   ##
============================================
+ Coverage     58.17%   58.36%   +0.18%     
- Complexity     2435     2468      +33     
============================================
  Files           127      129       +2     
  Lines         11743    11825      +82     
  Branches        473      473              
============================================
+ Hits           6832     6902      +70     
- Misses         4566     4578      +12     
  Partials        345      345              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@JeroenDeDauw JeroenDeDauw left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Tested locally

@kghbln
kghbln merged commit 0786bd2 into master Jul 24, 2026
6 checks passed
@kghbln
kghbln deleted the filtered-payload-compaction branch July 24, 2026 07:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants