From aee24f17f192f85b782da65119d5c2426c9962a6 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Thu, 19 Sep 2024 10:29:24 +0200 Subject: [PATCH] enable and disable map on modal open/close --- assets/js/leaflet/geocoding.js | 3 +++ assets/js/sections/common.js | 20 ++++++++++++++++++++ assets/js/sections/gridmap.js | 10 +++++++--- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/assets/js/leaflet/geocoding.js b/assets/js/leaflet/geocoding.js index 6f5a6fcd5..d0f1179ec 100644 --- a/assets/js/leaflet/geocoding.js +++ b/assets/js/leaflet/geocoding.js @@ -158,6 +158,9 @@ function isMarkerInsidePolygon(marker, poly) { } function onMapClick(event) { + if ($('.modal-dialog')[0]) { + return; + } var LatLng = event.latlng; var lat = LatLng.lat; var lng = LatLng.lng; diff --git a/assets/js/sections/common.js b/assets/js/sections/common.js index db2202eba..eb1e2b069 100644 --- a/assets/js/sections/common.js +++ b/assets/js/sections/common.js @@ -1123,6 +1123,26 @@ function newpath(latlng1, latlng2, locator1, locator2) { }).addTo(map); } +function disableMap() { + console.log('disable map') + map.dragging.disable(); + map.scrollWheelZoom.disable(); + map.touchZoom.disable(); + map.doubleClickZoom.disable(); + map.boxZoom.disable(); + map.keyboard.disable(); +} + +function enableMap() { + console.log('enable map') + map.dragging.enable(); + map.scrollWheelZoom.enable(); + map.touchZoom.enable(); + map.doubleClickZoom.enable(); + map.boxZoom.enable(); + map.keyboard.enable(); +} + console.log("Ready to unleash your coding prowess and join the fun?\n\n" + "Check out our GitHub Repository and dive into the coding adventure:\n\n" + "🚀 https://www.github.com/wavelog/wavelog"); diff --git a/assets/js/sections/gridmap.js b/assets/js/sections/gridmap.js index 86afa67b6..936bef4a1 100644 --- a/assets/js/sections/gridmap.js +++ b/assets/js/sections/gridmap.js @@ -161,7 +161,7 @@ function spawnGridsquareModal(loc_4char) { success: function (html) { var dialog = new BootstrapDialog({ title: lang_general_word_qso_data, - cssClass: 'qso-dialog', + cssClass: 'qso-dialog bg-black bg-opacity-50', size: BootstrapDialog.SIZE_WIDE, nl2br: false, message: html, @@ -192,6 +192,9 @@ function spawnGridsquareModal(loc_4char) { showQsoActionsMenu($(this).closest('.dropdown')); }); }, + onhide: function(dialog) { + enableMap(); + }, buttons: [{ label: lang_admin_close, action: function(dialogItself) { @@ -200,9 +203,10 @@ function spawnGridsquareModal(loc_4char) { }] }); dialog.realize(); - $("body").append(dialog.getModal()); + $('#gridsquare_map').append(dialog.getModal()); + disableMap(); dialog.open(); -}, + }, error: function(e) { modalloading=false; }