From 41355bf2a0c8d0b0636f7a561ad7696dce9c149a Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 15 Jan 2020 14:29:45 -0500 Subject: [PATCH] Rename "visible" property of presets to "addable" (re: a06ec59514b30a52601e3614ef69006d2dc1bc91) --- modules/presets/index.js | 23 +++++++++++++---------- modules/presets/preset.js | 12 ++++++------ modules/ui/preset_list.js | 4 ++-- test/spec/presets/index.js | 8 ++++---- test/spec/presets/preset.js | 8 ++++---- 5 files changed, 29 insertions(+), 26 deletions(-) diff --git a/modules/presets/index.js b/modules/presets/index.js index fd3124918..0fa5c039d 100644 --- a/modules/presets/index.js +++ b/modules/presets/index.js @@ -184,7 +184,7 @@ export function presetIndex(context) { }, {}); }; - all.build = function(d, visible) { + all.build = function(d, addable) { if (d.fields) { Object.keys(d.fields).forEach(function(id) { var f = d.fields[id]; @@ -200,11 +200,11 @@ export function presetIndex(context) { Object.keys(d.presets).forEach(function(id) { var p = d.presets[id]; var existing = all.index(id); - var isVisible = typeof visible === 'function' ? visible(id, p) : visible; + var isAddable = typeof addable === 'function' ? addable(id, p) : addable; if (existing !== -1) { - all.collection[existing] = presetPreset(id, p, _fields, isVisible, rawPresets); + all.collection[existing] = presetPreset(id, p, _fields, isAddable, rawPresets); } else { - all.collection.push(presetPreset(id, p, _fields, isVisible, rawPresets)); + all.collection.push(presetPreset(id, p, _fields, isAddable, rawPresets)); } }); } @@ -260,14 +260,14 @@ export function presetIndex(context) { _universal = []; _index = { point: {}, vertex: {}, line: {}, area: {}, relation: {} }; - var show = true; + var addable = true; if (addablePresetIDs) { - show = function(presetID) { + addable = function(presetID) { return addablePresetIDs.indexOf(presetID) !== -1; }; } - return all.build(data.presets, show); + return all.build(data.presets, addable); }; @@ -294,8 +294,11 @@ export function presetIndex(context) { all.reset(); d3_json(external) .then(function(externalPresets) { - all.build(data.presets, false); // make default presets hidden to begin - all.build(externalPresets, true); // make the external visible + all.build(data.presets, false); // load the default presets as non-addable to start + + _addablePresetIDs = externalPresets.presets && Object.keys(externalPresets.presets); + + all.build(externalPresets, true); // then load the external presets as addable }) .catch(function() { all.init(); @@ -381,7 +384,7 @@ export function presetIndex(context) { _recents = (JSON.parse(context.storage('preset_recents')) || []) .reduce(function(output, d) { var item = ribbonItemForMinified(d, 'recent'); - if (item) output.push(item); + if (item && item.preset.addable()) output.push(item); return output; }, []); } diff --git a/modules/presets/preset.js b/modules/presets/preset.js index ed903c359..5a5dda220 100644 --- a/modules/presets/preset.js +++ b/modules/presets/preset.js @@ -4,7 +4,7 @@ import { utilArrayUniq, utilObjectOmit } from '../util'; import { utilSafeClassName } from '../util/util'; -export function presetPreset(id, preset, fields, visible, rawPresets) { +export function presetPreset(id, preset, fields, addable, rawPresets) { preset = Object.assign({}, preset); // shallow copy preset.id = id; @@ -97,7 +97,7 @@ export function presetPreset(id, preset, fields, visible, rawPresets) { preset.moreFields = (preset.moreFields || []).map(getFields); preset.geometry = (preset.geometry || []); - visible = visible || false; + addable = addable || false; function getFields(f) { return fields[f]; @@ -182,10 +182,10 @@ export function presetPreset(id, preset, fields, visible, rawPresets) { return tagCount === 0 || (tagCount === 1 && preset.tags.hasOwnProperty('area')); }; - preset.visible = function(val) { - if (!arguments.length) return visible; - visible = val; - return visible; + preset.addable = function(val) { + if (!arguments.length) return addable; + addable = val; + return addable; }; diff --git a/modules/ui/preset_list.js b/modules/ui/preset_list.js index 6e01501b6..6fb7d146a 100644 --- a/modules/ui/preset_list.js +++ b/modules/ui/preset_list.js @@ -156,11 +156,11 @@ export function uiPresetList(context) { var collection = presets.collection.reduce(function(collection, preset) { if (preset.members) { if (preset.members.collection.filter(function(preset) { - return preset.visible(); + return preset.addable(); }).length > 1) { collection.push(CategoryItem(preset)); } - } else if (preset.visible()) { + } else if (preset.addable()) { collection.push(PresetItem(preset)); } return collection; diff --git a/test/spec/presets/index.js b/test/spec/presets/index.js index 3da1a6fab..d6707cdee 100644 --- a/test/spec/presets/index.js +++ b/test/spec/presets/index.js @@ -162,7 +162,7 @@ describe('iD.presetIndex', function () { presets.build(morePresets, false); entities.forEach(function (entity) { var preset = presets.match(entity, graph); - expect(preset.visible()).to.be.false; + expect(preset.addable()).to.be.false; }); }); }); @@ -252,7 +252,7 @@ describe('iD.presetIndex', function () { server.restore(); }); - it('builds presets w/external sources set to visible', function () { + it('builds presets w/external sources set to addable', function () { var surfShop = iD.osmNode({ tags: { amenity: 'shop', 'shop:type': 'surf' } }); var graph = iD.coreGraph([surfShop]); var url = 'https://fakemaprules.io/fake.json'; @@ -274,12 +274,12 @@ describe('iD.presetIndex', function () { server.respond(); }); - it('makes only the external presets initially visible', function () { + it('makes only the external presets initially addable', function () { var url = 'https://fakemaprules.io/fake.json'; iD.coreContext().presets().fromExternal(url, function(externalPresets) { var external = externalPresets.collection.reduce(function(presets, preset) { - if (!preset.hasOwnProperty('members') && preset.visible()) { + if (!preset.hasOwnProperty('members') && preset.addable()) { presets.push(preset.id); } return presets; diff --git a/test/spec/presets/preset.js b/test/spec/presets/preset.js index c09bd6bf6..d8a53c1ca 100644 --- a/test/spec/presets/preset.js +++ b/test/spec/presets/preset.js @@ -194,12 +194,12 @@ describe('iD.presetPreset', function() { }); }); - describe('#visible', function() { + describe('#addable', function() { it('sets/gets visibility of preset', function() { var preset = iD.presetPreset('test', {}, false); - expect(preset.visible()).to.be.false; - preset.visible(true); - expect(preset.visible()).to.be.true; + expect(preset.addable()).to.be.false; + preset.addable(true); + expect(preset.addable()).to.be.true; }); }); });