Remove rowselect, build data with imagery, use nicer json formatting.

This commit is contained in:
Tom MacWright
2013-03-08 16:53:26 -05:00
parent 0352c5b979
commit fe2c57d7f4
4 changed files with 14 additions and 83 deletions
+1 -2
View File
@@ -32,7 +32,6 @@ data/data.js: \
js/lib/d3.geo.tile.js \
js/lib/d3.keybinding.js \
js/lib/d3.one.js \
js/lib/d3.rowselect.js \
js/lib/d3.size.js \
js/lib/d3.trigger.js \
js/lib/d3.typeahead.js \
@@ -78,7 +77,7 @@ iD.js: Makefile
%.min.js: %.js Makefile
@rm -f $@
$(JS_COMPILER) $< -m -o $@
$(JS_COMPILER) $< -c -m -o $@
clean:
rm -f iD*.js
+2 -1
View File
@@ -21,6 +21,7 @@ fs.writeFileSync('data/presets/presets.json', JSON.stringify(
fs.writeFileSync('data/data.js', 'iD.data = ' + JSON.stringify({
deprecated: r('deprecated.json'),
discarded: r('discarded.json'),
imagery: r('imagery.json'),
keys: r('keys.json'),
presets: {
presets: rp('presets.json'),
@@ -28,4 +29,4 @@ fs.writeFileSync('data/data.js', 'iD.data = ' + JSON.stringify({
categories: rp('categories.json'),
forms: rp('forms.json')
}
}) + ';');
}, null, 4) + ';');
+11 -17
View File
@@ -96,23 +96,17 @@ iD.ui.preset = function(context) {
break;
case 'select':
wrap = this.append('span').attr('class', 'input-wrap-position'),
i = wrap.append('input').attr('type', 'text');
if (d.options.length <= 5) {
var select = d3.rowselect()
.data(d.options)
.on('change', key);
i.datum(d);
wrap.call(select);
event.on('setTags.' + d.key, select.update);
} else {
wrap.call(d3.combobox().data(d.options.map(function(d) {
var o = {};
o.title = o.value = d.replace('_', ' ');
return o;
})));
}
i = wrap.append('input')
.attr('type', 'text')
.attr('placeholder', function() {
if (d.options.length < 3) return '';
return d.options.slice(0, 3).join(', ') + '...';
});
wrap.call(d3.combobox().data(d.options.map(function(d) {
var o = {};
o.title = o.value = d.replace('_', ' ');
return o;
})));
break;
case 'combo':
var combobox = d3.combobox();
-63
View File
@@ -1,63 +0,0 @@
d3.rowselect = function() {
var input, data, wrap,
event = d3.dispatch('change');
var select = function(selection) {
input = selection.select('input')
.style('display', 'none');
wrap = selection.append('div')
.attr('class', 'rowselect');
var labels = wrap.selectAll('div')
.data(data)
.enter()
.append('div')
.style('display', 'inline-block')
.style('width', ~~(100 / data.length) + '%')
.attr('class', 'item')
.append('label')
.on('click', function() {
var checkbox = d3.select(this).select('input'),
val = !!checkbox.property('checked');
wrap.selectAll('input').property('checked', false);
checkbox.property('checked', val);
input.property('value', val ? checkbox.datum() : '');
event.change();
d3.event.stopPropagation();
});
var value = input.property('value');
labels.append('div')
.append('input')
.attr('type', 'checkbox');
labels.append('span').text(function(d) { return d; });
input.on('change.select', update);
};
function update() {
var value = input.property('value');
wrap.selectAll('input')
.property('checked', function(d) {
return d === value;
});
}
select.data = function(_) {
if (!arguments.length) return data;
data = _;
return select;
};
select.update = update;
return d3.rebind(select, event, 'on');
};