From c0bc25bfcdbeb8fd8c8537a43869e20bb5ffd15b Mon Sep 17 00:00:00 2001 From: Aaron Lidman Date: Thu, 21 Nov 2013 16:31:41 -0800 Subject: [PATCH] Copy presets from parent presets to quick add presets --- build.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/build.js b/build.js index c2f5294ff..5087d8b3b 100644 --- a/build.js +++ b/build.js @@ -110,7 +110,6 @@ function suggestionsToPresets(presets) { if (tag !== 'count') tags[tag] = suggestions[key][value][name][tag]; } - tags[key] = value; tags.name = name; if (existing[name]) { @@ -121,27 +120,34 @@ function suggestionsToPresets(presets) { } } - addPreset(item, tags, name, getIcon(key + '/' + value), count); + addPreset(item, tags, name, count); } } } - function getIcon(tag) { - if (presets[tag] && presets[tag].icon) { - return presets[tag].icon; + function harvestParentPreset(tag) { + var properties = {}, + parent = presets[tag]; + + if (parent) { + if (parent.tags) properties.tags = parent.tags; + if (parent.geometry) properties.geometry = parent.geometry; + if (parent.icon) properties.icon = parent.icon; + if (parent.fields) properties.fields = parent.fields; } - return tag.split('/')[1]; + return properties; } - function addPreset(category, tags, name, icon, count) { + function addPreset(category, tags, name, count) { + var tag = category.split('/'), + parent = harvestParentPreset(tag[0] + '/' + tag[1]); + presets[category] = { - tags: tags, + tags: parent.tags ? _.merge(tags, parent.tags) : tags, name: name, - icon: icon, - geometry: [ - 'point', - 'area' - ], + icon: parent.icon || tag[1], + geometry: parent.geometry || ['point', 'vertex', 'area'], + fields: parent.fields || [], suggestion: true };