Link search results directly to browse pages

This commit is contained in:
John Firebaugh 2013-11-05 12:26:36 -08:00
parent 9f3dace353
commit ee9642a28b
2 changed files with 9 additions and 20 deletions

View file

@ -26,26 +26,20 @@ OSM.Search = function(map) {
}
function clickSearchResult(e) {
e.preventDefault();
e.stopPropagation();
var data = $(this).data(),
center = L.latLng(data.lat, data.lon);
if (data.type && data.id) return; // Browse link
e.preventDefault();
e.stopPropagation();
if (data.minLon && data.minLat && data.maxLon && data.maxLat) {
map.fitBounds([[data.minLat, data.minLon],
[data.maxLat, data.maxLon]]);
} else {
map.setView(center, data.zoom);
}
marker
.setLatLng(center)
.addTo(map);
if (data.type && data.id) {
map.addObject(data, { zoom: false, style: { opacity: 0.2, fill: false } });
}
}
var marker = L.marker([0, 0], {icon: getUserIcon()});

View file

@ -2,7 +2,9 @@ module GeocoderHelper
def result_to_html(result)
html_options = { :class => "set_position", :data => {} }
if result[:min_lon] and result[:min_lat] and result[:max_lon] and result[:max_lat]
if result[:type] and result[:id]
url = url_for(:controller => :browse, :action => result[:type], :id => result[:id])
elsif result[:min_lon] and result[:min_lat] and result[:max_lon] and result[:max_lat]
url = "?minlon=#{result[:min_lon]}&minlat=#{result[:min_lat]}&maxlon=#{result[:max_lon]}&maxlat=#{result[:max_lat]}"
else
url = "?mlat=#{result[:lat]}&mlon=#{result[:lon]}&zoom=#{result[:zoom]}"
@ -17,14 +19,7 @@ module GeocoderHelper
html << " " if result[:prefix] and result[:name]
html << link_to(result[:name], url, html_options) if result[:name]
html << result[:suffix] if result[:suffix]
# if result[:type] and result[:id]
# html << content_tag(:small, :class => ["deemphasize", "search_details"]) do
# link_to(t("browse.#{result[:type]}_history.view_details"), :controller => :browse, :action => result[:type], :id => result[:id])
# end
# end
return raw(html)
html.html_safe
end
def describe_location(lat, lon, zoom = nil, language = nil)