From c9d780e7b061f7dccc4c770eb03fe521c6ca06f4 Mon Sep 17 00:00:00 2001 From: Marwin Hochfelsner <50826859+hlfan@users.noreply.github.com> Date: Fri, 4 Apr 2025 10:31:56 +0200 Subject: [PATCH] Clean OSM.formatHash calls --- app/assets/javascripts/fixthemap.js | 8 -------- app/assets/javascripts/index/history.js | 5 +---- app/assets/javascripts/welcome.js | 17 ++++------------- app/helpers/geocoder_helper.rb | 8 +++++++- app/views/site/fixthemap.html.erb | 5 +---- app/views/site/welcome.html.erb | 2 +- 6 files changed, 14 insertions(+), 31 deletions(-) delete mode 100644 app/assets/javascripts/fixthemap.js diff --git a/app/assets/javascripts/fixthemap.js b/app/assets/javascripts/fixthemap.js deleted file mode 100644 index 1c381df3c..000000000 --- a/app/assets/javascripts/fixthemap.js +++ /dev/null @@ -1,8 +0,0 @@ -$(function () { - const params = new URLSearchParams(location.search); - - let url = "/note/new"; - if (!params.has("zoom")) params.set("zoom", 17); - if (params.has("lat") && params.has("lon")) url += OSM.formatHash(params); - $(".icon.note").attr("href", url); -}); diff --git a/app/assets/javascripts/index/history.js b/app/assets/javascripts/index/history.js index 245949a47..3e6520d78 100644 --- a/app/assets/javascripts/index/history.js +++ b/app/assets/javascripts/index/history.js @@ -163,10 +163,7 @@ OSM.History = function (map) { function setPaginationMapHashes() { $("#sidebar .pagination a").each(function () { - $(this).prop("hash", OSM.formatHash({ - center: map.getCenter(), - zoom: map.getZoom() - })); + $(this).prop("hash", OSM.formatHash(map)); }); } diff --git a/app/assets/javascripts/welcome.js b/app/assets/javascripts/welcome.js index dc269a310..c3eafacdf 100644 --- a/app/assets/javascripts/welcome.js +++ b/app/assets/javascripts/welcome.js @@ -1,18 +1,9 @@ $(function () { - const params = new URLSearchParams(location.search); - - if (params.has("lat") && params.has("lon")) { - let url = "/edit"; - - if (params.has("editor")) url += "?editor=" + params.get("editor"); - if (!params.has("zoom")) params.set("zoom", 17); - url += OSM.formatHash(params); - - $(".start-mapping").attr("href", url); - } else { - $(".start-mapping").on("click", function (e) { + const mappingBtn = $(".start-mapping"); + if (!mappingBtn.prop("hash")) { + mappingBtn.on("click", function (e) { e.preventDefault(); - $(".start-mapping").addClass("loading"); + mappingBtn.addClass("loading"); if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(geoSuccess, manualEdit); diff --git a/app/helpers/geocoder_helper.rb b/app/helpers/geocoder_helper.rb index 4040307cc..a58beded2 100644 --- a/app/helpers/geocoder_helper.rb +++ b/app/helpers/geocoder_helper.rb @@ -7,7 +7,7 @@ module GeocoderHelper elsif result[:min_lon] && result[:min_lat] && result[:max_lon] && result[:max_lat] "/?bbox=#{result[:min_lon]},#{result[:min_lat]},#{result[:max_lon]},#{result[:max_lat]}" else - "/#map=#{result[:zoom]}/#{result[:lat]}/#{result[:lon]}" + "/##{map_hash(result)}" end result.each do |key, value| @@ -23,6 +23,12 @@ module GeocoderHelper safe_join(html) end + def map_hash(params) + return nil unless params[:lat].present? && params[:lon].present? + + "map=#{params[:zoom] || 17}/#{params[:lat]}/#{params[:lon]}" + end + def describe_location(lat, lon, zoom = nil, language = nil) Nominatim.describe_location(lat, lon, zoom, language) end diff --git a/app/views/site/fixthemap.html.erb b/app/views/site/fixthemap.html.erb index c4951f7cc..b604b45dd 100644 --- a/app/views/site/fixthemap.html.erb +++ b/app/views/site/fixthemap.html.erb @@ -1,7 +1,3 @@ -<% content_for :head do %> - <%= javascript_include_tag "fixthemap" %> -<% end %> - <% content_for :heading do %>
<%= t "site.welcome.add_a_note.para_1" %>
<%= t ".how_to_help.add_a_note.instructions_1_html", :note_icon => tag.a(:class => "icon note bg-dark rounded-1", + :href => new_note_path(:anchor => map_hash(params)), :title => t("javascripts.site.createnote_tooltip")) %>
diff --git a/app/views/site/welcome.html.erb b/app/views/site/welcome.html.erb index a27e3faa0..b41397e5e 100644 --- a/app/views/site/welcome.html.erb +++ b/app/views/site/welcome.html.erb @@ -81,7 +81,7 @@ <% if params[:oauth_return_url] %> <%= t ".continue_authorization" %> <% else %> - <%= t ".start_mapping" %> + <%= link_to t(".start_mapping"), edit_path(:editor => params[:editor], :anchor => map_hash(params)), :class => "btn btn-primary start-mapping" %> <% end %> -- 2.39.5