From 3a10afbe3220fe5120821a94dc6c5c9561de167e Mon Sep 17 00:00:00 2001 From: Christos Sidiropoulos Date: Mon, 30 Jun 2025 17:28:04 +0200 Subject: [PATCH 1/2] Add dropdown menu and button to retrieve location from metadata Signed-off-by: Christos Sidiropoulos --- views/shared/map/input-partial.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/views/shared/map/input-partial.php b/views/shared/map/input-partial.php index 2f4b4a2..de557e1 100644 --- a/views/shared/map/input-partial.php +++ b/views/shared/map/input-partial.php @@ -17,6 +17,20 @@ + + +
@@ -57,5 +71,12 @@ jQuery('#geolocation_find_location_by_address').click(); } }); + + // Make the metadata load button set the hidden form fields the plugin uses. + jQuery('#metadata-load-btn').on('click', function (event) { + var metadata = $('#metadata-location-select').val(); + if (!metadata) return; + $('input[name="location]').val(metadata); + }); }); From b9693fcee005a5619f6c1bfe3a4d4a977b63a4d2 Mon Sep 17 00:00:00 2001 From: Christos Sidiropoulos Date: Thu, 3 Jul 2025 18:19:12 +0200 Subject: [PATCH 2/2] Add metadata retrieval and insertion logic Signed-off-by: Christos Sidiropoulos --- views/shared/css/geolocation-marker.css | 7 +++ views/shared/map/input-partial.php | 57 ++++++++++++++++++------- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/views/shared/css/geolocation-marker.css b/views/shared/css/geolocation-marker.css index c413414..a15e203 100644 --- a/views/shared/css/geolocation-marker.css +++ b/views/shared/css/geolocation-marker.css @@ -10,6 +10,13 @@ button#geolocation_find_location_by_address { float: none; } +#geolocation_metadata_select { + width: 80%; +} +#geolocation_metadata_select_label { + font-weight: bold; + margin-right: 5px; +} div#geolocation { clear: both; diff --git a/views/shared/map/input-partial.php b/views/shared/map/input-partial.php index de557e1..c82187b 100644 --- a/views/shared/map/input-partial.php +++ b/views/shared/map/input-partial.php @@ -8,6 +8,22 @@ +getAllElementTexts(); + + foreach ($texts as $textRecord) { + $element = $item->getElementById($textRecord->element_id); + // Build a label like "Title: My Item Title" and store it in the metadata array: + $metadata[] = sprintf('%s: %s', $element->name, substr($tmp = $textRecord->text, 0, 40) . (strlen($tmp) > 40 ? '...' : '')); + } + + $metadata = array_unique($metadata); +} +?> +
@@ -16,19 +32,20 @@
-
-
@@ -73,10 +90,18 @@ }); // Make the metadata load button set the hidden form fields the plugin uses. - jQuery('#metadata-load-btn').on('click', function (event) { - var metadata = $('#metadata-location-select').val(); - if (!metadata) return; - $('input[name="location]').val(metadata); + jQuery('#geolocation_metadata_load_btn').on('click', function (event) { + event.preventDefault(); + + // Get the raw selected option text, e.g. "Title: My Awesome Place" + var selected = jQuery('#geolocation_metadata_select').val(); + if (!selected) return; + + // Split off the part after the first ": " + var parts = selected.split(': '); + var address = parts.slice(1).join(': '); + + jQuery('#geolocation_address').val(address).trigger('change'); }); });