MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
(Created page with "→Any JavaScript here will be loaded for all users on every page load.: $(function () { var link = $('<a>') .attr('href', '/wiki/Deklaracja_dostepnosci') .text('Deklaracja dostępności'); $('<li>').append(link).appendTo('#footer-places').parent(); });") |
No edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
$('<li>').append(link).appendTo('#footer-places').parent(); | $('<li>').append(link).appendTo('#footer-places').parent(); | ||
}); | |||
$(function () { | |||
if (!mw.config.get('wgUserName')) return; | |||
console.log("START"); | |||
var namespace = mw.config.get('wgNamespaceNumber'); | |||
if (namespace !== 120) return; | |||
var entityId = mw.config.get('wgTitle'); | |||
var pageName = mw.config.get('wgPageName'); | |||
var userLang = mw.config.get('wgUserLanguage'); | |||
var url = window.location.href; | |||
// data dostępu | |||
var now = new Date(); | |||
var day = String(now.getDate()).padStart(2, '0'); | |||
var month = String(now.getMonth() + 1).padStart(2, '0'); | |||
var year = now.getFullYear(); | |||
var messageCurrentDate = day + '.' + month + '.' + year; | |||
// REQUESTY | |||
var labelRequest = $.getJSON(mw.util.wikiScript('api'), { | |||
action: 'wbgetentities', | |||
ids: entityId, | |||
props: 'labels', | |||
languages: userLang, | |||
format: 'json' | |||
}); | |||
var revisionRequest = $.getJSON(mw.util.wikiScript('api'), { | |||
action: 'query', | |||
prop: 'revisions', | |||
titles: pageName, | |||
rvprop: 'timestamp', | |||
format: 'json' | |||
}); | |||
$.when(labelRequest, revisionRequest).done(function (labelRes, revisionRes) { | |||
var labelData = labelRes[0]; | |||
var revisionData = revisionRes[0]; | |||
// 🏷️ LABEL | |||
var messageLabel = entityId; | |||
var entity = labelData.entities[entityId]; | |||
if (entity.labels && entity.labels[userLang]) { | |||
messageLabel = entity.labels[userLang].value; | |||
} | |||
// DATA EDYCJI | |||
var messageEdit = ''; | |||
var pages = revisionData.query.pages; | |||
var page = pages[Object.keys(pages)[0]]; | |||
if (page.revisions && page.revisions.length > 0) { | |||
var lastEdit = new Date(page.revisions[0].timestamp); | |||
var ed = String(lastEdit.getDate()).padStart(2, '0'); | |||
var em = String(lastEdit.getMonth() + 1).padStart(2, '0'); | |||
var ey = lastEdit.getFullYear(); | |||
messageEdit = ed + '.' + em + '.' + ey; | |||
} | |||
// HTML | |||
var citationHTML = | |||
messageLabel + ', ' + | |||
'<a href="' + url + '" target="_blank">' + url + '</a>, ' + | |||
'[ostatnia edycja strony: ' + messageEdit + ', dostęp: ' + messageCurrentDate + '].'; | |||
var box = $( | |||
'<div class="item-message">' + | |||
'Referując do tego elementu użyj:<br>' + | |||
'<span id="copy-target">' + citationHTML + '</span>' + | |||
'<button id="copy-button" style="margin-left:8px;cursor:pointer;">⧉</button>' + | |||
'</div>' | |||
); | |||
var target = $('#mw-content-text, #content, .mw-body-content').first(); | |||
target.prepend(box); | |||
// kopiowanie | |||
$('#copy-button').on('click', function () { | |||
var text = $('#copy-target').text(); | |||
var temp = $('<textarea>'); | |||
$('body').append(temp); | |||
temp.val(text).select(); | |||
document.execCommand('copy'); | |||
temp.remove(); | |||
$(this).text('✔'); | |||
setTimeout(function () { | |||
$('#copy-button').text('⧉'); | |||
}, 1500); | |||
}); | |||
}); | |||
}); | }); | ||
Latest revision as of 14:28, 23 March 2026
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
var link = $('<a>')
.attr('href', '/wiki/Deklaracja_dostepnosci')
.text('Deklaracja dostępności');
$('<li>').append(link).appendTo('#footer-places').parent();
});
$(function () {
if (!mw.config.get('wgUserName')) return;
console.log("START");
var namespace = mw.config.get('wgNamespaceNumber');
if (namespace !== 120) return;
var entityId = mw.config.get('wgTitle');
var pageName = mw.config.get('wgPageName');
var userLang = mw.config.get('wgUserLanguage');
var url = window.location.href;
// data dostępu
var now = new Date();
var day = String(now.getDate()).padStart(2, '0');
var month = String(now.getMonth() + 1).padStart(2, '0');
var year = now.getFullYear();
var messageCurrentDate = day + '.' + month + '.' + year;
// REQUESTY
var labelRequest = $.getJSON(mw.util.wikiScript('api'), {
action: 'wbgetentities',
ids: entityId,
props: 'labels',
languages: userLang,
format: 'json'
});
var revisionRequest = $.getJSON(mw.util.wikiScript('api'), {
action: 'query',
prop: 'revisions',
titles: pageName,
rvprop: 'timestamp',
format: 'json'
});
$.when(labelRequest, revisionRequest).done(function (labelRes, revisionRes) {
var labelData = labelRes[0];
var revisionData = revisionRes[0];
// 🏷️ LABEL
var messageLabel = entityId;
var entity = labelData.entities[entityId];
if (entity.labels && entity.labels[userLang]) {
messageLabel = entity.labels[userLang].value;
}
// DATA EDYCJI
var messageEdit = '';
var pages = revisionData.query.pages;
var page = pages[Object.keys(pages)[0]];
if (page.revisions && page.revisions.length > 0) {
var lastEdit = new Date(page.revisions[0].timestamp);
var ed = String(lastEdit.getDate()).padStart(2, '0');
var em = String(lastEdit.getMonth() + 1).padStart(2, '0');
var ey = lastEdit.getFullYear();
messageEdit = ed + '.' + em + '.' + ey;
}
// HTML
var citationHTML =
messageLabel + ', ' +
'<a href="' + url + '" target="_blank">' + url + '</a>, ' +
'[ostatnia edycja strony: ' + messageEdit + ', dostęp: ' + messageCurrentDate + '].';
var box = $(
'<div class="item-message">' +
'Referując do tego elementu użyj:<br>' +
'<span id="copy-target">' + citationHTML + '</span>' +
'<button id="copy-button" style="margin-left:8px;cursor:pointer;">⧉</button>' +
'</div>'
);
var target = $('#mw-content-text, #content, .mw-body-content').first();
target.prepend(box);
// kopiowanie
$('#copy-button').on('click', function () {
var text = $('#copy-target').text();
var temp = $('<textarea>');
$('body').append(temp);
temp.val(text).select();
document.execCommand('copy');
temp.remove();
$(this).text('✔');
setTimeout(function () {
$('#copy-button').text('⧉');
}, 1500);
});
});
});