Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
(Created page with "→Any JavaScript here will be loaded for all users on every page load.: // Navi Copy JQuery Code by Kaddy! $('.navi-copy').each(function(index, element) { if ($("#...") |
|||
| Line 32: | Line 32: | ||
document.execCommand('copy'); | document.execCommand('copy'); | ||
} | } | ||
| + | |||
| + | |||
| + | //Latest in Topic | ||
| + | mw.loader.using(['mediawiki.api','mediawiki.util']).then(function () { | ||
| + | function showLatestInCategory(el, catTitle) { | ||
| + | new mw.Api().get({ | ||
| + | action: 'query', | ||
| + | list: 'categorymembers', | ||
| + | cmtitle: 'Category:' + catTitle, | ||
| + | cmprop: 'title|timestamp', | ||
| + | cmsort: 'timestamp', // newest added to category | ||
| + | cmdir: 'desc', | ||
| + | cmlimit: 1, | ||
| + | formatversion: 2 | ||
| + | }).done(function (data) { | ||
| + | var item = data?.query?.categorymembers?.[0]; | ||
| + | if (!item) { el.textContent = 'No pages in category.'; return; } | ||
| + | el.innerHTML = '<a href="' + mw.util.getUrl(item.title) + '">' + | ||
| + | mw.html.escape(item.title) + '</a>'; | ||
| + | }).fail(function () { el.textContent = 'Failed to load.'; }); | ||
| + | } | ||
| + | |||
| + | // Auto-initialize any placeholders: | ||
| + | document.querySelectorAll('[data-latest-category]').forEach(function (el) { | ||
| + | showLatestInCategory(el, el.getAttribute('data-latest-category')); | ||
| + | }); | ||
| + | }); | ||
Revision as of 23:40, 11 September 2025
/* Any JavaScript here will be loaded for all users on every page load. */
// Navi Copy JQuery Code by Kaddy!
$('.navi-copy').each(function(index, element) {
if ($("#navi-copy-textarea").attr('exists') != "true") {
txtdiv = '<textarea style="height:1px;width:1px; position:absolute;left:-1000px;" id="navi-copy-textarea" exists="true">Filler Text</textarea><style>.navi-copy-text { cursor:pointer; color:#2899e8; padding:1px; display:inline-block; } .navi-copy-text:hover { color:#c1a1f1; } .navi-copied { text-align:center; border:1px dotted #2899e8; border-radius:3px; color:#2899e8; display:inline-block; } .navi-copy { display:inline-block; } </style>';
$("body").append(txtdiv);
}
var map = $(element).children().get(0).innerHTML;
var x = $(element).children().get(1).innerHTML;
var y = $(element).children().get(2).innerHTML;
var newhtml = "<div class=\"navi-copy-text\" title=\"Click here to copy to the clipboard, then paste in game\" onclick=\"CopyNaviLink(this, '"+map+"','"+x+"','"+y+"');\">("+map+" "+x+", "+y+")</div><div class=\"navi-copied\" style=\"display:none;\">Copied!</div>";
$(element).html(newhtml);
});
function CopyNaviLink(ele, map, x, y) {
element = $(ele);
sibling = element.siblings();
width = element.width();
height = element.height()+0;
sibling.css('width',width);
sibling.css('height',height);
element.css('display','none');
sibling.css('display','inline-block');
setTimeout(function() {
sibling.fadeOut().delay(300).css('display','none');
element.css('display','inline-block');
}, 1400);
var ClipBoardText = "/navi "+map+" "+x+"/"+y;
var textarea = document.getElementById('navi-copy-textarea');
$('#navi-copy-textarea').text(ClipBoardText);
$("#navi-copy-textarea").select();
document.execCommand('copy');
}
//Latest in Topic
mw.loader.using(['mediawiki.api','mediawiki.util']).then(function () {
function showLatestInCategory(el, catTitle) {
new mw.Api().get({
action: 'query',
list: 'categorymembers',
cmtitle: 'Category:' + catTitle,
cmprop: 'title|timestamp',
cmsort: 'timestamp', // newest added to category
cmdir: 'desc',
cmlimit: 1,
formatversion: 2
}).done(function (data) {
var item = data?.query?.categorymembers?.[0];
if (!item) { el.textContent = 'No pages in category.'; return; }
el.innerHTML = '<a href="' + mw.util.getUrl(item.title) + '">' +
mw.html.escape(item.title) + '</a>';
}).fail(function () { el.textContent = 'Failed to load.'; });
}
// Auto-initialize any placeholders:
document.querySelectorAll('[data-latest-category]').forEach(function (el) {
showLatestInCategory(el, el.getAttribute('data-latest-category'));
});
});