MediaWiki:Common.js
Appearance
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// The form is already present in the DOM, so we can run immediately
$(function() {
const addr = $('input[name="Place[address]"]');
const lat = $('input[name="Place[latitude]"]');
const lon = $('input[name="Place[longitude]"]');
console.log("Address fields found:", addr.length);
if (addr.length === 0) {
console.log("Address field not found");
return;
}
addr.on('change', function() {
console.log("Address changed:", addr.val()); // <— ADD THIS LINE
const q = encodeURIComponent(addr.val());
if (!q) return;
const url = 'https://nominatim.openstreetmap.org/search?format=json&q=' + q;
$.getJSON(url, function(data) {
if (data && data.length > 0) {
lat.val(data[0].lat);
lon.val(data[0].lon);
}
});
});
});
$(function() {
const lat = $('input[name="Place[latitude]"]');
const lon = $('input[name="Place[longitude]"]');
// Add a small container under the longitude field
const linkBox = $('<div id="pf-osm-link" style="margin-top:4px;"></div>');
lon.closest('td').append(linkBox);
function updateOSMLink() {
const la = lat.val();
const lo = lon.val();
if (la && lo) {
const url = 'https://www.openstreetmap.org/?mlat=' + la + '&mlon=' + lo;
linkBox.html('<a href="' + url + '" target="_blank">View on OpenStreetMap</a>');
} else {
linkBox.empty();
}
}
// Update whenever coordinates change
lat.on('change keyup', updateOSMLink);
lon.on('change keyup', updateOSMLink);
// Initial update (for editing existing pages)
updateOSMLink();
});