From 8004ddfa2050239e606063354bd9fe5778946833 Mon Sep 17 00:00:00 2001 From: Marwin Hochfelsner <50826859+hlfan@users.noreply.github.com> Date: Wed, 2 Jul 2025 08:59:30 +0200 Subject: [PATCH] Refactor share pane buttons to use Bootstrap tabs --- app/assets/javascripts/leaflet.share.js | 24 ++++++-------------- app/views/share_panes/show.html.erb | 30 ++++++++++++++----------- config/eslint.config.mjs | 1 + 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/app/assets/javascripts/leaflet.share.js b/app/assets/javascripts/leaflet.share.js index 4bca5ebd6..b4547cc79 100644 --- a/app/assets/javascripts/leaflet.share.js +++ b/app/assets/javascripts/leaflet.share.js @@ -12,18 +12,8 @@ L.OSM.share = function (options) { $ui.find("#link_marker").on("change", toggleMarker); $ui.find(".btn-group .btn") - .on("click", function (e) { - e.preventDefault(); - if (!$(this).hasClass("btn-primary")) return; - const id = "#" + $(this).attr("for"); - $(this).siblings("a") - .removeClass("active"); - $(this).addClass("active"); - $ui.find(".share-tab") - .prop("hidden", true); - $ui.find(".share-tab:has(" + id + ")") - .prop("hidden", false) - .find("input, textarea") + .on("shown.bs.tab", () =>{ + $ui.find(".tab-pane.active [id]") .trigger("select"); }); @@ -146,13 +136,13 @@ L.OSM.share = function (options) { params.set("marker", latLng.lat + "," + latLng.lng); } + if (!canEmbed && $("#nav-embed").hasClass("active")) { + bootstrap.Tab.getOrCreateInstance($("#long_link")).show(); + } $("#embed_link") - .toggleClass("btn-primary", canEmbed) - .toggleClass("btn-secondary", !canEmbed) + .toggleClass("disabled", !canEmbed) + .parent() .tooltip(canEmbed ? "disable" : "enable"); - if (!canEmbed && $("#embed_link").hasClass("active")) { - $("#long_link").trigger("click"); - } $("#embed_html").val( "