MediaWiki:Common.js: Difference between revisions
From Jcastle.info
No edit summary |
No edit summary |
||
(24 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
mw.loader.load('//use.fontawesome.com/053a76b93c.js'); | mw.loader.load('//use.fontawesome.com/053a76b93c.js'); | ||
setTimeout(function () { | |||
$ | var $gpsInput = $('input[name="Castle Photo[GPSLocation]"]'); | ||
var $orderInput = $('input[name="Castle Photo[order]"]'); | |||
var $imgEl = $('img[alt$=".jpg"], img[alt$=".jpeg"], img[alt$=".JPG"], img[alt$=".JPEG"]'); | |||
if ($gpsInput.length === 0 || $orderInput.length === 0 || $imgEl.length === 0) return; | |||
var filename = $imgEl.attr('alt'); // e.g., yakami25.jpg | |||
// Try to extract GPS values (optional) | |||
var gpsValue = null; | |||
var $latEl = $('.mediaexif-gpslatitude'); | |||
var $lonEl = $('.mediaexif-gpslongitude'); | |||
if ($latEl.length && $lonEl.length) { | |||
var latDec = parseFloat($latEl.text().trim()); | |||
var lonDec = parseFloat($lonEl.text().trim()); | |||
if (!isNaN(latDec) && !isNaN(lonDec)) { | |||
gpsValue = latDec.toFixed(6) + ", " + lonDec.toFixed(6); | |||
} | |||
} | |||
var $button = $('<button>') | |||
.text("📋 Insert EXIF GPS & Order") | |||
.attr("type", "button") | |||
.css({ marginLeft: "0.5em", fontSize: "90%" }) | |||
.click(function () { | |||
if (gpsValue) { | |||
$gpsInput.val(gpsValue).focus().trigger('change'); | |||
} | } | ||
if ( | var match = filename.match(/\d+/); | ||
var | if (match) { | ||
var orderValue = parseInt(match[0], 10) * 10; | |||
$orderInput.val(orderValue).focus().trigger('change'); | |||
} | |||
// alert("✅ Fields updated."); | |||
}); | |||
$gpsInput.after($button); | |||
}, 500); | |||
Latest revision as of 16:09, 18 May 2025
/* Any JavaScript here will be loaded for all users on every page load. */ mw.loader.load('//use.fontawesome.com/053a76b93c.js'); setTimeout(function () { var $gpsInput = $('input[name="Castle Photo[GPSLocation]"]'); var $orderInput = $('input[name="Castle Photo[order]"]'); var $imgEl = $('img[alt$=".jpg"], img[alt$=".jpeg"], img[alt$=".JPG"], img[alt$=".JPEG"]'); if ($gpsInput.length === 0 || $orderInput.length === 0 || $imgEl.length === 0) return; var filename = $imgEl.attr('alt'); // e.g., yakami25.jpg // Try to extract GPS values (optional) var gpsValue = null; var $latEl = $('.mediaexif-gpslatitude'); var $lonEl = $('.mediaexif-gpslongitude'); if ($latEl.length && $lonEl.length) { var latDec = parseFloat($latEl.text().trim()); var lonDec = parseFloat($lonEl.text().trim()); if (!isNaN(latDec) && !isNaN(lonDec)) { gpsValue = latDec.toFixed(6) + ", " + lonDec.toFixed(6); } } var $button = $('<button>') .text("📋 Insert EXIF GPS & Order") .attr("type", "button") .css({ marginLeft: "0.5em", fontSize: "90%" }) .click(function () { if (gpsValue) { $gpsInput.val(gpsValue).focus().trigger('change'); } var match = filename.match(/\d+/); if (match) { var orderValue = parseInt(match[0], 10) * 10; $orderInput.val(orderValue).focus().trigger('change'); } // alert("✅ Fields updated."); }); $gpsInput.after($button); }, 500);