From a0de2c770600befb9914938ea286676c3b1ec84a Mon Sep 17 00:00:00 2001 From: Alex Hennings Date: Thu, 9 Jul 2020 11:05:51 -0400 Subject: [PATCH] Fix https://github.com/openstreetmap/iD/issues/7627 Accept a variety of formats in Feature Search when specifying an element by type and id. For example: n123, n 123, node123, node 123 or even https://www.openstreetmap.org/node/123/history#map=19/43.66140/-70.25415 --- modules/ui/feature_list.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index 1989e7a21..bef2c454c 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -122,14 +122,16 @@ export function uiFeatureList(context) { if (!q) return result; - var idMatch = q.match(/^([nwr])([0-9]+)$/); + var idMatch = q.match(/^(.*[^\w])?(node|n|way|w|relation|r)[^\w]?([0-9]+)([^\w].*)?$/i); if (idMatch) { + var elemType = idMatch[2][0]; + var elemId = idMatch[3]; result.push({ - id: idMatch[0], - geometry: idMatch[1] === 'n' ? 'point' : idMatch[1] === 'w' ? 'line' : 'relation', - type: idMatch[1] === 'n' ? t('inspector.node') : idMatch[1] === 'w' ? t('inspector.way') : t('inspector.relation'), - name: idMatch[2] + id: elemType + elemId, + geometry: elemType === 'n' ? 'point' : elemType === 'w' ? 'line' : 'relation', + type: elemType === 'n' ? t('inspector.node') : elemType === 'w' ? t('inspector.way') : t('inspector.relation'), + name: elemId }); }