From ea054a00a5b81ac9038dbc3d8bf5df6aa1520901 Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Fri, 7 Jul 2023 12:49:55 +0200 Subject: [PATCH] fix bug in "lang=badvalue" handling for wikidata api see https://github.com/openstreetmap/iD/pull/9638#issuecomment-1623497481 --- modules/services/wikidata.js | 7 ++++--- modules/ui/fields/wikidata.js | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/services/wikidata.js b/modules/services/wikidata.js index a45ff0ac2..82e70c0bc 100644 --- a/modules/services/wikidata.js +++ b/modules/services/wikidata.js @@ -17,7 +17,7 @@ export default { // Search for Wikidata items matching the query - itemsForSearchQuery: function _itemsForSearchQuery(query, callback, language) { + itemsForSearchQuery: function(query, callback, language) { if (!query) { if (callback) callback('No query', {}); return; @@ -40,13 +40,14 @@ export default { }); d3_json(url) - .then(function(result) { + .then(result => { if (result && result.error) { if (result.error.code === 'badvalue' && result.error.info.includes(lang) && !language && lang.includes('-')) { // retry without "country suffix" region subtag - _itemsForSearchQuery(query, callback, lang.split('-')[0]); + this.itemsForSearchQuery(query, callback, lang.split('-')[0]); + return; } else { throw new Error(result.error); } diff --git a/modules/ui/fields/wikidata.js b/modules/ui/fields/wikidata.js index 3842e1756..4931fb6e1 100644 --- a/modules/ui/fields/wikidata.js +++ b/modules/ui/fields/wikidata.js @@ -146,7 +146,10 @@ export function uiFieldWikidata(field, context) { } wikidata.itemsForSearchQuery(q, function(err, data) { - if (err) return; + if (err) { + if (err !== 'No query') console.error(err); + return; + } var result = data.map(function (item) { return {