From 77c7091cf24b1fc76d71818d65554d24ae68148c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Sun, 29 Sep 2013 21:17:21 -0700 Subject: [PATCH] Show relation documentation for relation presets See http://taginfo.openstreetmap.org/taginfo/apidoc#api_4_relation_wiki_pages Fixes #1862. --- js/id/presets/preset.js | 10 ++++++++-- js/id/services/taginfo.js | 7 ++++++- js/id/ui/entity_editor.js | 2 +- js/id/ui/preset_list.js | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/js/id/presets/preset.js b/js/id/presets/preset.js index ab9f77779..4e855165c 100644 --- a/js/id/presets/preset.js +++ b/js/id/presets/preset.js @@ -46,8 +46,14 @@ iD.presets.Preset = function(id, preset, fields) { return Object.keys(preset.tags).length === 0; }; - preset.reference = function() { - var reference = {key: Object.keys(preset.tags)[0]}; + preset.reference = function(geometry) { + var key = Object.keys(preset.tags)[0]; + + if (geometry === 'relation' && key === 'type') { + return {rtype: preset.tags[key]}; + } + + var reference = {key: key}; if (preset.tags[reference.key] !== '*') { reference.value = preset.tags[reference.key]; diff --git a/js/id/services/taginfo.js b/js/id/services/taginfo.js index 6ef8cbd98..6ff629da2 100644 --- a/js/id/services/taginfo.js +++ b/js/id/services/taginfo.js @@ -117,7 +117,12 @@ iD.taginfo = function() { taginfo.docs = function(parameters, callback) { var debounce = parameters.debounce; parameters = clean(setSort(parameters)); - request(endpoint + (parameters.value ? 'tag/wiki_pages?' : 'key/wiki_pages?') + + + var path = 'key/wiki_pages?'; + if (parameters.value) path = 'tag/wiki_pages?'; + else if (parameters.rtype) path = 'relation/wiki_pages?'; + + request(endpoint + path + iD.util.qsString(parameters), debounce, callback); }; diff --git a/js/id/ui/entity_editor.js b/js/id/ui/entity_editor.js index 53ba37c1b..4f59f209e 100644 --- a/js/id/ui/entity_editor.js +++ b/js/id/ui/entity_editor.js @@ -169,7 +169,7 @@ iD.ui.EntityEditor = function(context) { if (!arguments.length) return preset; if (_ !== preset) { preset = _; - reference = iD.ui.TagReference(preset.reference()) + reference = iD.ui.TagReference(preset.reference(context.geometry(id))) .showing(false); } return entityEditor; diff --git a/js/id/ui/preset_list.js b/js/id/ui/preset_list.js index d5dc241c7..595dea7b5 100644 --- a/js/id/ui/preset_list.js +++ b/js/id/ui/preset_list.js @@ -213,7 +213,7 @@ iD.ui.PresetList = function(context) { }; item.preset = preset; - item.reference = iD.ui.TagReference(preset.reference()); + item.reference = iD.ui.TagReference(preset.reference(context.geometry(id))); return item; }