From f7799dc824a9c32a38023afecd92ef7285ce96f3 Mon Sep 17 00:00:00 2001 From: Marwin Hochfelsner <50826859+hlfan@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:43:26 +0000 Subject: [PATCH] Collect initializations outside of modules --- app/assets/javascripts/index.js | 1 + .../javascripts/index/initializations.js | 90 +++++++++++++++++++ app/assets/javascripts/index/new_note.js | 11 --- app/assets/javascripts/index/query.js | 46 ---------- app/assets/javascripts/index/search.js | 34 ------- 5 files changed, 91 insertions(+), 91 deletions(-) create mode 100644 app/assets/javascripts/index/initializations.js diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 385702271..486c7441c 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -9,6 +9,7 @@ //= require leaflet.share //= require leaflet.query //= require index/contextmenu +//= require index/initializations //= require index/search //= require index/layers/data //= require index/export diff --git a/app/assets/javascripts/index/initializations.js b/app/assets/javascripts/index/initializations.js new file mode 100644 index 000000000..e71820315 --- /dev/null +++ b/app/assets/javascripts/index/initializations.js @@ -0,0 +1,90 @@ +OSM.initializations.push(function (map) { + $(".search_form a.btn.switch_link").on("click", function (e) { + e.preventDefault(); + const query = $(this).closest("form").find("input[name=query]").val(); + let search = ""; + if (query) search = "?" + new URLSearchParams({ to: query }); + OSM.router.route("/directions" + search + OSM.formatHash(map)); + }); + + $(".search_form").on("submit", function (e) { + e.preventDefault(); + $("header").addClass("closed"); + const params = new URLSearchParams({ + query: this.elements.query.value, + zoom: map.getZoom(), + minlon: map.getBounds().getWest(), + minlat: map.getBounds().getSouth(), + maxlon: map.getBounds().getEast(), + maxlat: map.getBounds().getNorth() + }); + const search = params.get("query") ? `/search?${params}` : "/"; + OSM.router.route(search + OSM.formatHash(map)); + }); + + $(".describe_location").on("click", function (e) { + e.preventDefault(); + $("header").addClass("closed"); + const zoom = map.getZoom(); + const { lat, lng } = OSM.cropLocation(map.getCenter(), zoom); + + OSM.router.route("/search?" + new URLSearchParams({ lat, lon: lng, zoom })); + }); +}); + +OSM.initializations.push(function () { + $(".control-note .control-button").on("click", function (e) { + e.preventDefault(); + e.stopPropagation(); + + if ($(this).hasClass("disabled")) return; + + OSM.router.route("/note/new"); + }); +}); + +OSM.initializations.push(function (map) { + const control = $(".control-query"), + queryButton = control.find(".control-button"); + + queryButton.on("click", function (e) { + e.preventDefault(); + e.stopPropagation(); + + if (control.hasClass("active")) { + disableQueryMode(); + } else if (!queryButton.hasClass("disabled")) { + enableQueryMode(); + } + }).on("disabled", function () { + if (control.hasClass("active")) { + map.off("click", clickHandler); + $(map.getContainer()).removeClass("query-active").addClass("query-disabled"); + $(this).tooltip("show"); + } + }).on("enabled", function () { + if (control.hasClass("active")) { + map.on("click", clickHandler); + $(map.getContainer()).removeClass("query-disabled").addClass("query-active"); + $(this).tooltip("hide"); + } + }); + + function clickHandler(e) { + const { lat, lng } = OSM.cropLocation(e.latlng, map.getZoom()); + + OSM.router.route("/query?" + new URLSearchParams({ lat, lon: lng })); + } + + function enableQueryMode() { + $(".control-query").addClass("active"); + map.on("click", clickHandler); + $(map.getContainer()).addClass("query-active"); + } + + function disableQueryMode() { + $(map.getContainer()).removeClass("query-active").removeClass("query-disabled"); + map.off("click", clickHandler); + $(".control-query").removeClass("active"); + } +}); diff --git a/app/assets/javascripts/index/new_note.js b/app/assets/javascripts/index/new_note.js index ee1ce9d84..0c6691f02 100644 --- a/app/assets/javascripts/index/new_note.js +++ b/app/assets/javascripts/index/new_note.js @@ -1,14 +1,3 @@ -OSM.initializations.push(function () { - $(".control-note .control-button").on("click", function (e) { - e.preventDefault(); - e.stopPropagation(); - - if ($(this).hasClass("disabled")) return; - - OSM.router.route("/note/new"); - }); -}); - OSM.NewNote = function (map) { const noteLayer = map.noteLayer, content = $("#sidebar_content"), diff --git a/app/assets/javascripts/index/query.js b/app/assets/javascripts/index/query.js index 50a961d4e..9bb999cb7 100644 --- a/app/assets/javascripts/index/query.js +++ b/app/assets/javascripts/index/query.js @@ -1,49 +1,3 @@ -OSM.initializations.push(function (map) { - const control = $(".control-query"), - queryButton = control.find(".control-button"); - - queryButton.on("click", function (e) { - e.preventDefault(); - e.stopPropagation(); - - if (control.hasClass("active")) { - disableQueryMode(); - } else if (!queryButton.hasClass("disabled")) { - enableQueryMode(); - } - }).on("disabled", function () { - if (control.hasClass("active")) { - map.off("click", clickHandler); - $(map.getContainer()).removeClass("query-active").addClass("query-disabled"); - $(this).tooltip("show"); - } - }).on("enabled", function () { - if (control.hasClass("active")) { - map.on("click", clickHandler); - $(map.getContainer()).removeClass("query-disabled").addClass("query-active"); - $(this).tooltip("hide"); - } - }); - - function clickHandler(e) { - const { lat, lng } = OSM.cropLocation(e.latlng, map.getZoom()); - - OSM.router.route("/query?" + new URLSearchParams({ lat, lon: lng })); - } - - function enableQueryMode() { - $(".control-query").addClass("active"); - map.on("click", clickHandler); - $(map.getContainer()).addClass("query-active"); - } - - function disableQueryMode() { - $(map.getContainer()).removeClass("query-active").removeClass("query-disabled"); - map.off("click", clickHandler); - $(".control-query").removeClass("active"); - } -}); - OSM.Query = function (map) { const uninterestingTags = ["source", "source_ref", "source:ref", "history", "attribution", "created_by", "tiger:county", "tiger:tlid", "tiger:upload_uuid", "KSJ2:curve_id", "KSJ2:lat", "KSJ2:lon", "KSJ2:coordinate", "KSJ2:filename", "note:ja"]; let marker; diff --git a/app/assets/javascripts/index/search.js b/app/assets/javascripts/index/search.js index 2ad294740..77d0c0d08 100644 --- a/app/assets/javascripts/index/search.js +++ b/app/assets/javascripts/index/search.js @@ -1,37 +1,3 @@ -OSM.initializations.push(function (map) { - $(".search_form a.btn.switch_link").on("click", function (e) { - e.preventDefault(); - const query = $(this).closest("form").find("input[name=query]").val(); - let search = ""; - if (query) search = "?" + new URLSearchParams({ to: query }); - OSM.router.route("/directions" + search + OSM.formatHash(map)); - }); - - $(".search_form").on("submit", function (e) { - e.preventDefault(); - $("header").addClass("closed"); - const params = new URLSearchParams({ - query: this.elements.query.value, - zoom: map.getZoom(), - minlon: map.getBounds().getWest(), - minlat: map.getBounds().getSouth(), - maxlon: map.getBounds().getEast(), - maxlat: map.getBounds().getNorth() - }); - const search = params.get("query") ? `/search?${params}` : "/"; - OSM.router.route(search + OSM.formatHash(map)); - }); - - $(".describe_location").on("click", function (e) { - e.preventDefault(); - $("header").addClass("closed"); - const zoom = map.getZoom(); - const { lat, lng } = OSM.cropLocation(map.getCenter(), zoom); - - OSM.router.route("/search?" + new URLSearchParams({ lat, lon: lng, zoom })); - }); -}); - OSM.Search = function (map) { $("#sidebar_content") .on("click", ".search_more a", clickSearchMore) -- 2.47.3