diff --git a/Makefile b/Makefile index 8f3d7e8ef..56bc73fb7 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/build.js b/build.js index 8c11b74a0..b0fa50056 100644 --- a/build.js +++ b/build.js @@ -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) + ';'); diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index d44f6c43c..1947d6ab9 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -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(); diff --git a/js/lib/d3.rowselect.js b/js/lib/d3.rowselect.js deleted file mode 100644 index 478e104fa..000000000 --- a/js/lib/d3.rowselect.js +++ /dev/null @@ -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'); -};