add defaultcheck input type

This commit is contained in:
Ansis Brammanis
2013-03-09 23:12:21 -05:00
parent 1aefc6e7c5
commit d736cddccd
4 changed files with 28 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
{
"key": "bridge",
"type": "check"
}
"type": "defaultcheck"
}

View File

@@ -1,4 +1,4 @@
{
"key": "tunnel",
"type": "check"
}
"type": "defaultcheck"
}

View File

@@ -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;
};

View File

@@ -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');
};