23-Aug-2026 — CSV walks import: leader-to-member matching and per-row feedback ref #302
build 846 — commit 042058f
Rework the walk CSV import matching step end to end.
- Migrate the matching table to the shared sortable-table (mint-cake header, column sort, URL-persisted sort state) and reuse app-maximisable-panel so it can fill the screen, with a select-all header checkbox and a widescreen maximise hint. Consolidates the two alerts and removes the dead hand-rolled sort code; migrates the two SORT_ASC users to the shared SORT_ORDER key and adds an optional header-cell template to sortable-table.
- Per-row feedback shows whether each walk updates an existing record or creates a new one (matched by Walk ID or by title and date), with an update-versus-create summary.
- Member matching gains a surname fallback: when the forename differs (Liz Jones vs Elizabeth Jones) a unique surname match is suggested as a click-to-confirm amber tentative state rather than left unmatched, with a Tentative filter and badge and a 3-state status icon with tooltip.
- The member cell is a multiple ng-select (first selected is the primary contact), matching the Walk Leader tab; tentative suggestions pre-select for confirmation and the apply-to-other-walks action keeps selections in sync.
