From f56e27ad2a6d8a4dd8ba88b0c6796796071e5779 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Sat, 9 Feb 2013 17:21:28 -0500 Subject: [PATCH] Style tweaks and refactoring --- css/app.css | 4 ---- js/id/ui/geocoder.js | 33 +++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/css/app.css b/css/app.css index 35f7c3821..355fd7262 100644 --- a/css/app.css +++ b/css/app.css @@ -859,10 +859,6 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} border-bottom: 1px solid #333; } -.geocode-control div span:hover { - background-color: #333; -} - /* Geolocator */ .geolocate-control { diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js index 22c897653..c873e1c10 100644 --- a/js/id/ui/geocoder.js +++ b/js/id/ui/geocoder.js @@ -2,48 +2,53 @@ iD.ui.geocoder = function() { var map, context; + function resultExtent(bounds) { + return new iD.geo.Extent( + [parseFloat(bounds[3]), parseFloat(bounds[0])], + [parseFloat(bounds[2]), parseFloat(bounds[1])]); + } + function geocoder(selection) { function keydown() { if (d3.event.keyCode !== 13) return; d3.event.preventDefault(); var searchVal = this.value; d3.json('http://nominatim.openstreetmap.org/search/' + - encodeURIComponent(searchVal) + '?limit=10&format=json', function (err, resp) { + encodeURIComponent(searchVal) + '?limit=10&format=json', function(err, resp) { if (err) return hide(); if (!resp.length) { return iD.ui.flash(context.container()) .select('.content') .append('h3') .text('No location found for "' + searchVal + '"'); - } - if(resp.length > 1) { + } else if (resp.length > 1) { var spans = resultsList.selectAll('span') .data(resp, function (d) { return d.place_id; }); + spans.enter() .append('span') - .text(function(d) { + .text(function(d) { return d.type.charAt(0).toUpperCase() + d.type.slice(1) + ': '; }) .append('a') .text(function(d) { - if(d.display_name > 80) return d.display_name.substr(0,80) + '...'; - return d.display_name; + if (d.display_name > 80) { + return d.display_name.substr(0, 80) + '…'; + } else { + return d.display_name; + } }) .on('click', clickResult); spans.exit().remove(); - resultsList.classed('hide',false); + resultsList.classed('hide', false); } else { - var bounds = resp[0].boundingbox; - var extent = iD.geo.Extent([parseFloat(bounds[3]), parseFloat(bounds[0])], [parseFloat(bounds[2]), parseFloat(bounds[1])]); - applyBounds(extent); + applyBounds(resultExtent(resp[0].boundingbox)); } }); } - function clickResult(data) { - var bounds = data.boundingbox; - var extent = iD.geo.Extent([parseFloat(bounds[3]), parseFloat(bounds[0])], [parseFloat(bounds[2]), parseFloat(bounds[1])]); - applyBounds(extent); + function clickResult(d) { + applyBounds(resultExtent(d.boundingbox)); } function applyBounds(extent) {