{"id":"691677dfadcd0bfee0251efd","title":"2025 11 07 Issue 17","path":"how-to/committee/release-notes/2025-11-07-issue-17","contentMarkdown":"# 7th November 2025 — Cancelled Walk Support Part 1 [#17](https://github.com/nbarrett/ngx-ramblers/issues/17)\n## [build 356](https://github.com/nbarrett/ngx-ramblers/actions/runs/19226914031) — [Refs: #17](https://github.com/nbarrett/ngx-ramblers/issues/17) — [commit e1b36bd](https://github.com/nbarrett/ngx-ramblers/commit/e1b36bd)\n\nComprehensive support for cancelled walks from the Ramblers API, with visual indicators, map markers, and unlimited pagination.\n\n**Where to Find It**\n\n- **Walk Cards & Details**: Yellow warning banner showing \"This walk has been cancelled\" with optional reason\n- **Maps**: Grey markers with white \"X\" overlay and 60% opacity for cancelled walks\n- **Walk List**: All walks now loaded from Ramblers API (no 300-walk limit)\n\n**Benefits**\n\n- **Clear Visual Indicators**: Yellow warning banners match Ramblers.org styling (alert-warning)\n- **Cancellation Details**: Shows cancellation reason when provided by walk leader\n- **Map Distinction**: Grey markers with \"X\" overlay make cancelled walks instantly recognizable\n- **Unlimited Pagination**: Internal pagination fetches all events from Ramblers API, removing 300-walk page size limitation\n- **Comprehensive Search**: Cancelled walks are visible and searchable across entire date range\n\n**Technical Details**\n\nUI Changes:\n- Alert-warning banner in walk detail and card views\n- Map markers updated via MapMarkerStyleService with status-specific rendering\n- Pass walkStatus through MapEditComponent, CardImageOrMap, WalkViewComponent\n\nBackend Integration:\n- Map status and cancellation_reason from Ramblers Events API\n- Add fields to RamblersEventSummaryResponse interface\n- Add STATUS and CANCELLATION_REASON to GroupEventField enum\n\nPagination Enhancement:\n- Offset-based pagination pattern from list-events-by-slug.ts\n- DRY refactor: shared buildParameters, fetchPage, cacheEvents functions\n- Combine all pages into single response with accurate totals","contentHtml":"<h1>7th November 2025 — Cancelled Walk Support Part 1 <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/17\">#17</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/19226914031\">build 356</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/17\">Refs: #17</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/e1b36bd\">commit e1b36bd</a></h2>\n<p>Comprehensive support for cancelled walks from the Ramblers API, with visual indicators, map markers, and unlimited pagination.</p>\n<p><strong>Where to Find It</strong></p>\n<ul>\n<li><strong>Walk Cards &amp; Details</strong>: Yellow warning banner showing &quot;This walk has been cancelled&quot; with optional reason</li>\n<li><strong>Maps</strong>: Grey markers with white &quot;X&quot; overlay and 60% opacity for cancelled walks</li>\n<li><strong>Walk List</strong>: All walks now loaded from Ramblers API (no 300-walk limit)</li>\n</ul>\n<p><strong>Benefits</strong></p>\n<ul>\n<li><strong>Clear Visual Indicators</strong>: Yellow warning banners match Ramblers.org styling (alert-warning)</li>\n<li><strong>Cancellation Details</strong>: Shows cancellation reason when provided by walk leader</li>\n<li><strong>Map Distinction</strong>: Grey markers with &quot;X&quot; overlay make cancelled walks instantly recognizable</li>\n<li><strong>Unlimited Pagination</strong>: Internal pagination fetches all events from Ramblers API, removing 300-walk page size limitation</li>\n<li><strong>Comprehensive Search</strong>: Cancelled walks are visible and searchable across entire date range</li>\n</ul>\n<p><strong>Technical Details</strong></p>\n<p>UI Changes:</p>\n<ul>\n<li>Alert-warning banner in walk detail and card views</li>\n<li>Map markers updated via MapMarkerStyleService with status-specific rendering</li>\n<li>Pass walkStatus through MapEditComponent, CardImageOrMap, WalkViewComponent</li>\n</ul>\n<p>Backend Integration:</p>\n<ul>\n<li>Map status and cancellation_reason from Ramblers Events API</li>\n<li>Add fields to RamblersEventSummaryResponse interface</li>\n<li>Add STATUS and CANCELLATION_REASON to GroupEventField enum</li>\n</ul>\n<p>Pagination Enhancement:</p>\n<ul>\n<li>Offset-based pagination pattern from list-events-by-slug.ts</li>\n<li>DRY refactor: shared buildParameters, fetchPage, cacheEvents functions</li>\n<li>Combine all pages into single response with accurate totals</li>\n</ul>\n"}