# 1st October 2025 — Interactive Area Maps
## [build 297](https://github.com/nbarrett/ngx-ramblers/actions/runs/18171205586)

This release introduces a comprehensive Interactive Area Maps feature that allows you to display geographical boundaries for walking groups on interactive maps. Users can explore group regions, view tooltips on hover, and click through to group  websites or walks. The map below is a live map, not a screenshot.

# 3rd October 2025 — Walk Leader Management & Event Audit Fixes
  ## [build 299](https://github.com/nbarrett/ngx-ramblers/actions/runs/18217891024)
  ____
  _Note that this functionality is only accessible on sites with Local Walk Population. This release delivers improvements to walk leader management, event change detection, and database index handling. Key fixes include a new searchable leader selector, resolved false positive change notifications, and database schema migration
  improvements._  🎯
  ____

  ## Clear Walk Leader Enhancements and searchable member selector (refs [#56](https://github.com/nbarrett/ngx-ramblers/issues/56)) ([fd40ea8](https://github.com/nbarrett/ngx-ramblers/commit/fd40ea8))
- **Reusable member selector**: Introduce searchable member-selector; replaces legacy dropdown with built-in `x` **Clear** button and uniform styling. Walk Leader selector can be seen in screenshot below:

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/4a75b274-aa07-4a22-8e2e-f382fa29ecd7.jpg)

- **Enhanced leader tab UI**: Retain **Me** quick-assign button; add **Clear** button (auto-disables post-clear); auto-populate contact fields (name, phone, email) on selection (as shown on screenshot above).
- **Streamlined clearing flow**: Trigger user-choice confirmation (**Keep Walk Details** vs. **Free Slot**) from **Walk Leader Selector**, `x` inside select, **Clear** button, or Changing **Walk Status** to **Awaiting Walk Leader** (see screenshot below that shows the **Clear** option just having been taken):
  - **Keep Walk Details**: clears leader/contact info only; preserves walk details (so another walk leader could subsequently be assigned to the same walk) and sets status to **Awaiting Walk Leader**.
  - **Free Slot**: resets walk to defaults (retaining date, type, events, start/end times); sets status to **Awaiting Walk Leader**.

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/5e9d492d-45a8-4d38-a675-d087fde7055f.jpg)

- After walk leader is reset an alert is displayed and the walk can then be saved

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/0ae0336a-9d49-466e-b561-db384a3c8f0b.jpg)

- **Improved empty states**: Another general appearance improvement in this release was to Hide leader fields/icons in walk cards, detail panels, and list views when no leader assigned; prevent auto-expansion of blank **Awaiting Walk Leader** slots when the walks programme is paginated through. Previously the first item on a page was expanded, regardless of whether there was any walk details.

## Event audit fixes, database index migration & unit test cleanup (refs [#56](https://github.com/nbarrett/ngx-ramblers/issues/56)) ([c069f93](https://github.com/nbarrett/ngx-ramblers/commit/c069f93))
____
  _For tecchies only!_   🚀
  ____
  - refactor(events): improve default merge, walk slot resets, fix badge display, and resolve false positive changes: 
    - **Walk badge display fix**: it now displays correctly for **Awaiting Walk Leader** status walks
    - **False positive change detection fix**: Update `valuesEqual()` to treat properties as equal when one is undefined.
    - **Walk deletion fix**: Assign unique title `Deleted walk {id}` when walk is deleted (soft delete); prevents unique index violations when multiple walks on same date have null titles; resolves 500 errors when clearing walk leaders on dates with previously deleted
  walks.
    - **Database index migration fix**: Improve recreateIndex() to use field-based comparison instead of JSON.stringify; add debug logging; properly detects and drops legacy 3-field index (`start_date_time, item_type, group_code`); syncs new 4-field index including title
   field.
    - **Walk date management**: Set `end_date_time` to `start_date_time` on walk creation (was null); add `migrateOldWalkData()` to fix old walks with null end_date_time when opening walk edit
    - **Code quality improvements**: Use `sortBy("-date")` from `arrays.ts` instead of inline sort; use `DateUtilsService.asValue()` for date comparisons; apply es-toolkit functions (`isNull, isUndefined, isObject, isArray`)
    - **Event defaults & slot management**: Enhance event-defaults.service.ts with improved merge logic; add utility-types.ts for type safety; update walk-edit components to preserve walk metadata during leader clearing.
    - **Unit test fixes**: Add missing w3w property to LocationDetails; mock `WalksConfigService` and add `RouterTestingModule`; initialise fields.publishing; use full deep copy for event data structure; fix walk events array assignment.
    - **Testing infrastructure**: Add `test:watch npm` script for live test development.