{"id":"6977f69ddb99aea10eaca00a","title":"2026 01 26 Issue 132","path":"how-to/committee/release-notes/2026-01-26-issue-132","contentMarkdown":"# 26-Jan-2026 — walks: add map-based venue selection and bidirectional postcode sync [#132](https://github.com/nbarrett/ngx-ramblers/issues/132)\n\n## [build 437](https://github.com/nbarrett/ngx-ramblers/actions/runs/21377482016) — [commit f46166e](https://github.com/nbarrett/ngx-ramblers/commit/f46166edc5dd92a17451954d5436cce593ce4df3)\n\n_____\n\n## Summary\nAdditional enhancements to venue management: interactive map selection,\nOS Explorer style markers, and prompts to keep venue and starting point aligned.\n## User Guide\n### Walk Editing - Adding Venue Details\n**URL:** `/walks/edit/<walk-id>` → Details tab → Route & Venue section\n**What's Changed**\n- Venue details have moved from the Links tab to the Route & Venue tab, keeping\nall location-related information in one place\n- Route and Venue can be toggled independently or viewed together\n- Venue and starting point stay in step:\n- When you update the venue postcode, you'll be prompted to update the walk\nstarting point to match\n- When you update the starting point, you'll be prompted to update the venue\npostcode to match\n**Search Previous (Default)**\n- Type to search across all previously used venues\n- Results sorted by distance from walk start point (nearest venues shown first)\n- Shows usage count and last-used date for each venue\n- Select a venue to auto-fill all fields (name, address, postcode, type, URL)\n**Website URL**\n- Paste a venue's website URL (e.g., https://www.theredlion.co.uk)\n- Click \"Fetch Details\" to automatically extract venue information\n- System checks local venues first, then scrapes the website if needed\n- Use the search button next to URL field to find a venue's website\n**Smart Paste**\n- Copy venue details from any website (e.g., a pub's contact page)\n- Paste into the text area and click \"Parse & Apply\"\n- Intelligently extracts name, address lines, postcode, and URL\n- Confidence score indicates how well the text was parsed\n**Map**\n- Interactive split-panel view with venue markers on the left\n- Filter venues by type using the dropdown (pub, cafe, car park, etc.)\n- Click an existing marker to select that venue\n- Click anywhere on the map to create a new venue at that location\n- OS Explorer style pins show venue type icons\n**Starting Point Integration**\n- Prompts are optional\n- choose \"Yes\" to sync or \"No\" to keep them different\n- This reduces duplicate data entry when the walk starts from the venue\n- Useful when venue and meeting point are the same location\n### Administration - Managing Venues\n**URL:** `/admin/venue-settings`\nAdministrators can also access venue management via the \"Manage Venues\" button\nshown on the walk edit venue section (admin users only).\n**Venue List**\n- View all stored venues with name, address, type, and usage statistics\n- Sort by name, usage count, or last used date\n- Search to filter the venue list\n**Adding Venues**\n- Click \"Add Venue\" to create a new venue\n- Enter name, address lines, postcode, type, and optional website URL\n- Postcode is automatically geocoded for map positioning\n**Editing Venues**\n- Click any venue to edit its details\n- Update venue type using the icon-based dropdown\n- Changes apply to future walks; existing walks retain their data\n**Venue Types**\n- Pub (beer mug icon)\n- Cafe (coffee cup icon)\n- Restaurant (utensils icon)\n- Car Park (parking icon)\n- Church (cross icon)\n- Hall (building icon)\n- Station (train icon)\n- Other (map marker icon)\n## Technical\n### New Components\n- VenueEditorComponent: reusable venue editing form\n- VenueLookupComponent: tabbed interface for venue search methods\n- VenueMapSelectorComponent: interactive map with venue markers\n### Enhancements\n- OS Explorer style teardrop pins with venue type icons\n- Local venue lookup by base URL before web scraping\n- Fire station recognition in venue parser\n- DRY field references using EventField enum in migrations\n- Mobile responsive toggle layout\n- Consistent button heights and text alignment\n\nVenue Management:\n- Add venue smart paste to parse venue details from clipboard text\n- Add venue autocomplete with distance-based sorting from walk start point\n- Create new VenueService, StoredVenueService, and VenueParserService\n- Add venue settings admin page and backend API endpoints\n- Implement venue type selection with icons (pub, cafe, restaurant, etc.)\n- Fix venue selection to properly clear old field values\nMap View:\n- Add fullscreen map toggle for expanded walk viewing\n- Ensure map centres correctly when a GPX route is displayed on it\n- Finer graduations added to Zoom controls\nWalk List & Search:\n- Simplify walk list by removing client-side pagination (server always returns 10 rows)\n- Load area groups once on service startup and share via ReplaySubject\n- Advanced search now uses cached group data instead of separate API calls\n- Remove dead code (replaceWalkInList, lookupPlaceName)\nRelated Links Tab:\n- Reorder tabs to: Ramblers, OS Maps, Meetup (Ramblers as default)\n- Add section titles for Ramblers, OS Maps, and Meetup tabs\n- Remove duplicate frame wrapper from Meetup component\n- Move DetailsTab enum from component to walk.model.ts\nMeeting Point:\n- Fix alignment between Meeting Time and Meeting Location inputs\n- Add venue postcode prompt to update walk starting point\n- Add option to use venue as meeting point","contentHtml":"<h1>26-Jan-2026 — walks: add map-based venue selection and bidirectional postcode sync <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/132\">#132</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/21377482016\">build 437</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/f46166edc5dd92a17451954d5436cce593ce4df3\">commit f46166e</a></h2>\n<hr>\n<h2>Summary</h2>\n<p>Additional enhancements to venue management: interactive map selection,\nOS Explorer style markers, and prompts to keep venue and starting point aligned.</p>\n<h2>User Guide</h2>\n<h3>Walk Editing - Adding Venue Details</h3>\n<p><strong>URL:</strong> <code>/walks/edit/&lt;walk-id&gt;</code> → Details tab → Route &amp; Venue section\n<strong>What&#39;s Changed</strong></p>\n<ul>\n<li>Venue details have moved from the Links tab to the Route &amp; Venue tab, keeping\nall location-related information in one place</li>\n<li>Route and Venue can be toggled independently or viewed together</li>\n<li>Venue and starting point stay in step:</li>\n<li>When you update the venue postcode, you&#39;ll be prompted to update the walk\nstarting point to match</li>\n<li>When you update the starting point, you&#39;ll be prompted to update the venue\npostcode to match\n<strong>Search Previous (Default)</strong></li>\n<li>Type to search across all previously used venues</li>\n<li>Results sorted by distance from walk start point (nearest venues shown first)</li>\n<li>Shows usage count and last-used date for each venue</li>\n<li>Select a venue to auto-fill all fields (name, address, postcode, type, URL)\n<strong>Website URL</strong></li>\n<li>Paste a venue&#39;s website URL (e.g., <a href=\"https://www.theredlion.co.uk\">https://www.theredlion.co.uk</a>)</li>\n<li>Click &quot;Fetch Details&quot; to automatically extract venue information</li>\n<li>System checks local venues first, then scrapes the website if needed</li>\n<li>Use the search button next to URL field to find a venue&#39;s website\n<strong>Smart Paste</strong></li>\n<li>Copy venue details from any website (e.g., a pub&#39;s contact page)</li>\n<li>Paste into the text area and click &quot;Parse &amp; Apply&quot;</li>\n<li>Intelligently extracts name, address lines, postcode, and URL</li>\n<li>Confidence score indicates how well the text was parsed\n<strong>Map</strong></li>\n<li>Interactive split-panel view with venue markers on the left</li>\n<li>Filter venues by type using the dropdown (pub, cafe, car park, etc.)</li>\n<li>Click an existing marker to select that venue</li>\n<li>Click anywhere on the map to create a new venue at that location</li>\n<li>OS Explorer style pins show venue type icons\n<strong>Starting Point Integration</strong></li>\n<li>Prompts are optional</li>\n<li>choose &quot;Yes&quot; to sync or &quot;No&quot; to keep them different</li>\n<li>This reduces duplicate data entry when the walk starts from the venue</li>\n<li>Useful when venue and meeting point are the same location</li>\n</ul>\n<h3>Administration - Managing Venues</h3>\n<p><strong>URL:</strong> <code>/admin/venue-settings</code>\nAdministrators can also access venue management via the &quot;Manage Venues&quot; button\nshown on the walk edit venue section (admin users only).\n<strong>Venue List</strong></p>\n<ul>\n<li>View all stored venues with name, address, type, and usage statistics</li>\n<li>Sort by name, usage count, or last used date</li>\n<li>Search to filter the venue list\n<strong>Adding Venues</strong></li>\n<li>Click &quot;Add Venue&quot; to create a new venue</li>\n<li>Enter name, address lines, postcode, type, and optional website URL</li>\n<li>Postcode is automatically geocoded for map positioning\n<strong>Editing Venues</strong></li>\n<li>Click any venue to edit its details</li>\n<li>Update venue type using the icon-based dropdown</li>\n<li>Changes apply to future walks; existing walks retain their data\n<strong>Venue Types</strong></li>\n<li>Pub (beer mug icon)</li>\n<li>Cafe (coffee cup icon)</li>\n<li>Restaurant (utensils icon)</li>\n<li>Car Park (parking icon)</li>\n<li>Church (cross icon)</li>\n<li>Hall (building icon)</li>\n<li>Station (train icon)</li>\n<li>Other (map marker icon)</li>\n</ul>\n<h2>Technical</h2>\n<h3>New Components</h3>\n<ul>\n<li>VenueEditorComponent: reusable venue editing form</li>\n<li>VenueLookupComponent: tabbed interface for venue search methods</li>\n<li>VenueMapSelectorComponent: interactive map with venue markers</li>\n</ul>\n<h3>Enhancements</h3>\n<ul>\n<li>OS Explorer style teardrop pins with venue type icons</li>\n<li>Local venue lookup by base URL before web scraping</li>\n<li>Fire station recognition in venue parser</li>\n<li>DRY field references using EventField enum in migrations</li>\n<li>Mobile responsive toggle layout</li>\n<li>Consistent button heights and text alignment</li>\n</ul>\n<p>Venue Management:</p>\n<ul>\n<li>Add venue smart paste to parse venue details from clipboard text</li>\n<li>Add venue autocomplete with distance-based sorting from walk start point</li>\n<li>Create new VenueService, StoredVenueService, and VenueParserService</li>\n<li>Add venue settings admin page and backend API endpoints</li>\n<li>Implement venue type selection with icons (pub, cafe, restaurant, etc.)</li>\n<li>Fix venue selection to properly clear old field values\nMap View:</li>\n<li>Add fullscreen map toggle for expanded walk viewing</li>\n<li>Ensure map centres correctly when a GPX route is displayed on it</li>\n<li>Finer graduations added to Zoom controls\nWalk List &amp; Search:</li>\n<li>Simplify walk list by removing client-side pagination (server always returns 10 rows)</li>\n<li>Load area groups once on service startup and share via ReplaySubject</li>\n<li>Advanced search now uses cached group data instead of separate API calls</li>\n<li>Remove dead code (replaceWalkInList, lookupPlaceName)\nRelated Links Tab:</li>\n<li>Reorder tabs to: Ramblers, OS Maps, Meetup (Ramblers as default)</li>\n<li>Add section titles for Ramblers, OS Maps, and Meetup tabs</li>\n<li>Remove duplicate frame wrapper from Meetup component</li>\n<li>Move DetailsTab enum from component to walk.model.ts\nMeeting Point:</li>\n<li>Fix alignment between Meeting Time and Meeting Location inputs</li>\n<li>Add venue postcode prompt to update walk starting point</li>\n<li>Add option to use venue as meeting point</li>\n</ul>\n"}