mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-14 13:18:15 +02:00
Fix areaKeys logic to better handle presets that can be area or line
This commit is contained in:
@@ -72,7 +72,7 @@ export function presetIndex() {
|
||||
// and the subkeys form the blacklist.
|
||||
all.areaKeys = function() {
|
||||
var areaKeys = {},
|
||||
ignore = ['barrier', 'highway', 'footway', 'railway', 'type'],
|
||||
ignore = ['barrier', 'highway', 'footway', 'railway', 'type'], // probably a line..
|
||||
presets = _.reject(all.collection, 'suggestion');
|
||||
|
||||
// whitelist
|
||||
@@ -81,7 +81,7 @@ export function presetIndex() {
|
||||
if (!key) return;
|
||||
if (ignore.indexOf(key) !== -1) return;
|
||||
|
||||
if (d.geometry.indexOf('area') !== -1) {
|
||||
if (d.geometry.indexOf('area') !== -1) { // probably an area..
|
||||
areaKeys[key] = areaKeys[key] || {};
|
||||
}
|
||||
});
|
||||
@@ -93,9 +93,9 @@ export function presetIndex() {
|
||||
if (ignore.indexOf(key) !== -1) return;
|
||||
|
||||
var value = d.tags[key];
|
||||
if (d.geometry.indexOf('area') === -1 &&
|
||||
d.geometry.indexOf('line') !== -1 &&
|
||||
key in areaKeys && value !== '*') {
|
||||
if (key in areaKeys && // probably an area...
|
||||
d.geometry.indexOf('line') !== -1 && // but sometimes a line
|
||||
value !== '*') {
|
||||
areaKeys[key][value] = true;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -85,14 +85,14 @@ describe('iD.presetIndex', function() {
|
||||
geometry: ['point','area'],
|
||||
suggestion: true
|
||||
},
|
||||
'golf/water_hazard': {
|
||||
tags: { 'golf': 'water_hazard' },
|
||||
geometry: ['line', 'area']
|
||||
},
|
||||
'highway/foo': {
|
||||
tags: { 'highway': 'foo' },
|
||||
geometry: ['area']
|
||||
},
|
||||
'leisure/track': {
|
||||
tags: { 'leisure': 'track' },
|
||||
geometry: ['line', 'area']
|
||||
},
|
||||
'natural': {
|
||||
tags: { 'natural': '*' },
|
||||
geometry: ['point', 'vertex', 'area']
|
||||
@@ -125,10 +125,10 @@ describe('iD.presetIndex', function() {
|
||||
expect(presets.areaKeys().natural.tree_row).to.be.true;
|
||||
});
|
||||
|
||||
it('does not blacklist key-values for presets with both area and line geometry', function() {
|
||||
it('blacklists key-values for presets with both area and line geometry', function() {
|
||||
iD.data.presets = testPresets;
|
||||
var presets = iD.Context().presets();
|
||||
expect(presets.areaKeys().golf).not.to.include.keys('water_hazard');
|
||||
expect(presets.areaKeys().leisure).to.include.keys('track');
|
||||
});
|
||||
|
||||
it('does not blacklist key-values for presets with neither area nor line geometry', function() {
|
||||
|
||||
Reference in New Issue
Block a user