From d736cddccd2a27071667c19aa17b93b2ffecca77 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Sat, 9 Mar 2013 23:12:21 -0500 Subject: [PATCH] add defaultcheck input type --- data/presets/forms/bridge.json | 4 ++-- data/presets/forms/tunnel.json | 4 ++-- js/id/ui/preset.js | 7 +------ js/id/ui/preset/defaultcheck.js | 23 +++++++++++++++++++++++ 4 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 js/id/ui/preset/defaultcheck.js diff --git a/data/presets/forms/bridge.json b/data/presets/forms/bridge.json index 0324d133a..8e2dbb424 100644 --- a/data/presets/forms/bridge.json +++ b/data/presets/forms/bridge.json @@ -1,4 +1,4 @@ { "key": "bridge", - "type": "check" -} \ No newline at end of file + "type": "defaultcheck" +} diff --git a/data/presets/forms/tunnel.json b/data/presets/forms/tunnel.json index 7dc884028..0de409650 100644 --- a/data/presets/forms/tunnel.json +++ b/data/presets/forms/tunnel.json @@ -1,4 +1,4 @@ { "key": "tunnel", - "type": "check" -} \ No newline at end of file + "type": "defaultcheck" +} diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index 49935fe9e..d866f359e 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -1,14 +1,10 @@ iD.ui.preset = function(context) { var event = d3.dispatch('change', 'setTags', 'close'), entity, - type, - hidden, - sections, tags, keys, preset; - // generate form fields for a given field. function input(d) { var i = iD.ui.preset[d.type](d, context) .on('close', event.close) @@ -30,7 +26,7 @@ iD.ui.preset = function(context) { selection.html(''); keys = []; - sections = selection.selectAll('div.preset-section') + var sections = selection.selectAll('div.preset-section') .data(preset.form) .enter() .append('div') @@ -72,7 +68,6 @@ iD.ui.preset = function(context) { presets.entity = function(_) { if (!arguments.length) return entity; entity = _; - type = entity.type === 'node' ? entity.type : entity.geometry(); return presets; }; diff --git a/js/id/ui/preset/defaultcheck.js b/js/id/ui/preset/defaultcheck.js new file mode 100644 index 000000000..a7c34bfa6 --- /dev/null +++ b/js/id/ui/preset/defaultcheck.js @@ -0,0 +1,23 @@ +iD.ui.preset.defaultcheck = function(form) { + + var event = d3.dispatch('change', 'close'), + input; + + var check = function(selection) { + + input = selection.append('input') + .attr('type', 'checkbox') + .attr('id', 'input-' + form.key) + .on('change', function() { + var t = {}; + t[form.key] = input.property('checked') ? form.value || 'yes' : undefined; + event.change(t); + }); + }; + + check.tags = function(tags) { + input.property('checked', !!tags[form.key] && tags[form.key] !== 'no'); + }; + + return d3.rebind(check, event, 'on'); +};