User:Slomox/global.js
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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* [[d:User:Yair rand/WikidataInfo.js]] */
mw.loader.load("//www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript");
$(function() {
$('#wpSummaryLabel .oo-ui-labelElement-label').text('Grund');
var queryDict = {};
location.search.substr(1).split("&").forEach(function(item) {
queryDict[item.split("=")[0]] = item.split("=")[1];
});
if (window.location.href.indexOf('warnifexists') !== -1) {
if (mw.config.get( 'wgArticleId' ) !== 0) alert('Artikel existeert!');
}
if (window.location.href.indexOf('resizeTextbox') !== -1) {
$('#wpTextbox1').css('height', queryDict.resizeTextbox);
}
var action = mw.config.get('wgAction');
var lang = mw.config.get('wgContentLanguage');
var ns = mw.config.get('wgCanonicalNamespace');
var title = mw.config.get('wgTitle');
var baseitem = mw.config.get('wgWikibaseItemId');
/* add shortcuts (ctrl + # for "transfer article to nds.wp" and some others for easy insertion of special typographic signs) */
$('body').on('keydown', function(event) {
var e = event.originalEvent;
if (!e) return;
if ((e.key == '#') && (e.ctrlKey)) {
$('#add-to-nds').trigger('click');
}
else if ((e.key == 'ä') && (e.ctrlKey)) {
if ($('#wpTextbox1').length) $('#wpTextbox1').textSelection('encapsulateSelection', { pre: "’", peri: "", post: "" });
else if ($('#ooui-php-4').length) $('#ooui-php-4').textSelection('encapsulateSelection', { pre: "’", peri: "", post: "" });
else if ($('#searchInput').length) $('#searchInput').textSelection('encapsulateSelection', { pre: "’", peri: "", post: "" });
}
else if ((e.key == 'ö') && (e.ctrlKey)) {
$('#wpTextbox1').textSelection('encapsulateSelection', { pre: "–", peri: "", post: "" });
}
else if ((e.key == 'ü') && (e.ctrlKey)) {
$('#wpTextbox1').textSelection('encapsulateSelection', { pre: "†", peri: "", post: "" });
}
else if ((e.key == ' ') && (e.ctrlKey)) {
$('#wpTextbox1').textSelection('encapsulateSelection', { pre: " ", peri: "", post: "" });
}
});
/* add links to navigation bar above article that allows one-click transfer of article content to nds.wp */
if ((lang !== 'nds') && ($('.interwiki-nds').length === 0)) {
if ((ns === '') || (ns == 'Template') || (ns == 'Category') || (ns == 'Module')) {
$('#p-associated-pages ul')
.append($('<li>')
.attr('class', 'mw-list-item')
.append($('<span/>')
.append($('<a/>')
.attr('id', 'add-to-nds')
.attr('title', 'Artikel op nds.wp överdregen')
.html('> nds')
.on('click', transferToNdsWp))));
$('#p-associated-pages ul')
.append($('<li>')
.attr('class', 'mw-list-item')
.append($('<span/>')
.append($('<a/>')
.attr('id', 'add-to-list')
.attr('title', 'Artikel för dat Överdregen op nds.wp marken')
.html('+')
.on('click', listForNdsWp)
.on('dblclick', showListForNdsWp))));
}
}
/*
add shortcut to pagename without disambiguation markers
for persons use only the last word
that's usually the disambiguation page
*/
if ((action === 'edit') || (action === 'submit') || (action === 'view')) {
var showLastOnly = false;
var hasDisambigMarkers = false;
var isDisambig = false;
if ($.inArray($('#catlinks li a').text(), ['Mehrdüdig Begreep', 'Human name disambiguation pages', 'Disambiguation pages', 'Begriffsklärung']) !== -1) isDisambig = true;
var newtitle = title;
var linklang = ((lang == 'nds')?'de':lang);
if ((title.indexOf(' (') !== -1) && (title.indexOf(')') !== -1) && (title.indexOf(' (') < title.indexOf(')'))) {
hasDisambigMarkers = true;
newtitle = newtitle.replace(/ \(.*\)/, '');
}
else if (title.indexOf(', ') !== -1) {
hasDisambigMarkers = true;
newtitle = newtitle.replace(/, .*$/, '');
}
newtitle = newtitle.replace(/^(Mount|Kap|Cape|River|Rio|Río|Lake|Lago|Monte?) (.+)$/, '$2').replace(/^(.+)( (Mountains?|Hills?|Peaks?|Valley|Islands?|Inlet|Heights|River|Creek|Rocks?|Glacier|Valley|Nunatak)|\-(Gletscher|Nunatak|Nunatakker|Fjord|Halbinsel|Inseln?|Bucht))$/, '$1');
if ((!hasDisambigMarkers) && (title !== newtitle)) {
afterResultFromWikidata(newtitle, linklang, showLastOnly, true);
}
else if (hasDisambigMarkers) {
afterResultFromWikidata(newtitle, linklang, showLastOnly, hasDisambigMarkers);
}
else if ((isDisambig) && (newtitle.indexOf(' ') !== -1)) {
afterResultFromWikidata(newtitle, linklang, true, false);
}
else {
if (baseitem) {
$.ajax( {
url: '//www.wikidata.org/w/api.php',
data: {
'format': 'json',
'action': 'wbgetclaims',
'entity': baseitem,
'property': 'P31',
'props': ''
},
dataType: 'jsonp',
cache: true
} )
.done( function (data) {
if (typeof data.claims.P31 !== 'undefined') {
var p31 = data.claims.P31[0].mainsnak.datavalue.value.id;
if ((p31 == 'Q3863') || (p31 == 'Q5')) {
showLastOnly = true;
}
afterResultFromWikidata(newtitle, linklang, showLastOnly, hasDisambigMarkers);
}
else {
afterResultFromWikidata(newtitle, linklang, showLastOnly, hasDisambigMarkers);
}
});
}
else {
afterResultFromWikidata(newtitle, linklang, showLastOnly, hasDisambigMarkers);
}
}
}
/* add tools to linkItem to improve the speed of linking */
if ((ns === '') || (ns === 'Template') || (ns === 'Category') || (ns === 'Module')) {
var prefix = ((ns)?(ns + ':'):'');
if (($('#p-lang > div.body > ul > li.interlanguage-link').length === 0) && (action === 'view') && (mw.config.get( 'wgArticleId' ) !== 0)) {
$('body').on('click', '#addLemmaTolinkItem', function() {
$('#wbclient-linkItem-page').focus();
$('#wbclient-linkItem-page').val(prefix + title);
$('#wbclient-linkItem-goButton').prop('disabled', false).removeClass('ui-button-disabled ui-state-disabled');
});
$('body').on('click', '#addMBTolinkItem', function() {
$('#wbclient-linkItem-page').focus();
var langToLinkTo = $('#wbclient-linkItem-site').val();
$('#wbclient-linkItem-page').val(prefix + title.replace(getDisambigAffix(lang), '') + getDisambigAffix(langToLinkTo));
$('#wbclient-linkItem-goButton').prop('disabled', false).removeClass('ui-button-disabled ui-state-disabled');
});
$('body').on('click', '.addSiteTolinkItem', function() {
var inputsite = $('#wbclient-linkItem-site');
inputsite.val($(this).data('lang')+'wiki');
inputsite.trigger('keydown');
inputsite.trigger('blur');
window.setTimeout(function() {
inputsite.trigger('blur');
}, 200);
});
new MutationObserver(function(mutations) {
mutations.forEach(function( mutation ) {
var newNodes = mutation.addedNodes;
if( newNodes !== null ) {
var nodes = $(newNodes);
nodes.each(function() {
var dialog = $(this).find('#wbclient-linkItem-dialog');
if (dialog.length) {
var langs = '';
['da', 'de', 'en', 'nds', 'nl', 'ceb'].forEach(function(elem) {
if (lang != elem) langs += '<span class="addSiteTolinkItem" data-lang="' + elem + '">' + elem + '</span>';
});
dialog.append($('<div class="linkItem-sitebuttons">'
+langs
+'</div>'));
dialog.append($('<div class="linkItem-buttons"><span id="addLemmaTolinkItem">+</span><span id="addMBTolinkItem">MB</span></div>'));
}
});
}
});
}).observe($('body')[0], { attributes: false, childList: true, subtree: true });
}
}
var panel = localStorage.getItem('panel');
if (!panel) panel = '';
else if (panel === 'closed') {
$('#mw-panel').addClass('closed');
$('#content').addClass('closed');
}
$('body').append('<div id="toggle-leftpanel" class="' + panel + '"></div>').on('click', '#toggle-leftpanel', function() {
if ($(this).hasClass('closed')) {
$(this).removeClass('closed');
localStorage.setItem('panel', '');
$('#mw-panel').removeClass('closed');
$('#content').removeClass('closed');
}
else {
$(this).addClass('closed');
localStorage.setItem('panel', 'closed');
$('#mw-panel').addClass('closed');
$('#content').addClass('closed');
}
});
$('#mw-panel').prepend('<div id="ndswp-toolkit-settings" style="float: right; cursor: pointer;">⚙</div>');
$('body').on('click', '#ndswp-toolkit-settings', function() {
var replacements = localStorage.getItem('replacements');
var replacementsJson;
if (replacements) replacementsJson = JSON.parse(replacements);
else replacementsJson = [];
var r = {
regex: '',
replacement: '',
summary: ''
};
if (typeof replacementsJson[0] !== "undefined") {
r = replacementsJson[0];
}
if ($('#define-replacements').length) {
$('#define-replacements').toggle();
}
else {
$('body').append('<div id="define-replacements" style="position: fixed; bottom: 0;left: 0;right: 0; background: #fff; border-top: 1px solid #999; padding: .3em;"></div>')
replacementsJson.forEach(function(elem) {
$('#define-replacements').append(
'<div>'+
'<label>Regex: <input type="text" id="define-replacements-regex" value="' + elem.regex + '"></label>'+
'<label>Replacement: <input type="text" id="define-replacements-replacement" value="' + elem.replacement + '"></label>'+
'<label>Grund: <input type="text" id="define-replacements-summary" value="' + elem.summary + '"></label>'+
'<button>Trech</button>'+
'</div>'
);
});
$('body').on('click', '#define-replacements button', function() {
$('#define-replacements').hide();
r.regex = $('#define-replacements-regex').val();
r.replacement = $('#define-replacements-replacement').val();
r.summary = $('#define-replacements-summary').val();
replacementsJson[0] = r;
replacements = JSON.stringify(replacementsJson);
localStorage.setItem('replacements', replacements);
});
}
});
if ((mw.config.get('wgAction') === 'edit') || (mw.config.get('wgAction') === 'submit')) {
$('#catlinks').insertAfter($('#wikiPreview'));
}
if (isDisambiguation()) {
var url = 'https://wp/Skript/preload.php?source=' + mw.config.get('wgContentLanguage') + '&title=' + mw.config.get('wgTitle');
$.get(url);
}
});
function isDisambiguation() {
var lang = mw.config.get('wgContentLanguage');
if ((lang === 'nds') && ($('#Vorlaag_MB').length !== 0)) return true;
else if ((lang === 'de') && ($('#Vorlage_Begriffsklaerung').length !== 0)) return true;
else if ((lang === 'en') && ($('#disambigbox, #setindexbox').length !== 0)) return true;
else if ((lang === 'fr') && ($('#homonymie').length !== 0)) return true;
else if ((lang === 'nl') && ($('#disambig').length !== 0)) return true;
else if ((lang === 'da') && ($('table.flertydig').length !== 0)) return true;
else if ((lang === 'sv') && ($('#disambigbox').length !== 0)) return true;
else return false;
}
function afterResultFromWikidata(title, lang, showLastOnly, hasDisambigMarkers) {
if ((showLastOnly === true) || (hasDisambigMarkers === true)) {
var parts;
if (showLastOnly === true) {
parts = title.split(' ');
}
else {
parts = [title];
}
var lastpart = parts[parts.length - 1];
addDisambigLinks(lastpart, lang);
}
}
function getDisambigAffix(lang) {
lang = lang.replace('wiki', '');
var affix = ' (disambiguation)';
if (lang == 'en') affix = ' (disambiguation)';
else if (lang == 'de') affix = ' (Begriffsklärung)';
else if (lang == 'da') affix = ' (flertydig)';
else if (lang == 'fr') affix = ' (homonymie)';
else if (lang == 'nl') affix = ' (doorverwijspagina)';
else if (lang == 'nds') affix = ' (Mehrdüdig Begreep)';
else if (lang == 'es') affix = ' (desambiguación)';
return affix;
}
function addDisambigLinks(disambig, lang) {
var a = $('<a/>')
.attr('id', 'last-part')
.attr('title', 'Sied to’n Grundbegreep op ' + lang + '.wp')
.attr('href', '//' + lang + '.wikipedia.org/wiki/' + disambig)
.html('b');
$('#p-associated-pages ul')
.append($('<li/>')
.attr('class', 'mw-list-item')
.append($('<span/>')
.append(a)));
if (lang != 'de') {
var aDe = $('<a/>')
.attr('id', 'last-part')
.attr('title', 'Sied to’n Grundbegreep op de.wp')
.attr('href', '//de.wikipedia.org/wiki/' + disambig)
.html('b<sup>de</sup>');
$('#p-associated-pages ul')
.append($('<li/>')
.attr('class', 'mw-list-item')
.append($('<span/>')
.append(aDe)));
}
}
function transferToNdsWp() {
var lang = mw.config.get('wgContentLanguage');
var pagename = mw.config.get('wgPageName');
var newPagename = pagename;
if (lang == 'de') {
newPagename = newPagename
.replace(/_\(Begriffsklärung\)/, '_(Mehrdüdig Begreep)')
.replace(/Navigationsleiste/, 'Navigatschoonsliest')
.replace(/Städte_und_Gemeinden_im/, 'Gemenen_un_Städer_in’n')
.replace(/Gemeinden_in_der_(.+)_Kommune/, 'Kaspels_in_de_Kommun_$1')
.replace(/Gemeinden_im_Arrondissement/, 'Gemenen_in_dat_Arrondissement')
.replace(/Titularbistum/, 'Titulärbisdom')
.replace(/Titularerzbistum/, 'Titulärarzbisdom')
.replace(/US-Gouverneure/, 'US-Guvernöre')
.replace(/US-Senatoren_aus_(.+)/, 'US-Senaters_($1)')
.replace(/US-Kongressabgeordnete/, 'US-Kungresslüüd');
}
else if (lang == 'da') {
newPagename = newPagename
.replace(/\(([^\]\)\|]+)_Kommune\)/, '(Kommun_$1)')
.replace(/Københavns/, 'Kopenhagen')
.replace(/Bornholms/, 'Bornholm')
.replace(/Vesthimmerlands/, 'Westhimmerland')
.replace(/Jammerbugt/, 'Jammerbucht')
.replace(/Nordfyns/, 'Noordfünen')
.replace(/Faaborg\-Midtfyn/, 'Faaborg-Middfünen');
}
var url;
if ((mw.config.get('wgAction') === 'edit') || (mw.config.get('wgAction') === 'submit')) {
var insert = $('#wpTextbox1').val();
sendForm(insert, lang, pagename, newPagename);
}
else {
if (isDisambiguation()) {
var action = 'https://wp/Skript/translate.php?target=nds&source=' + lang + '&gotowiki=1&pages=' + ((pagename !== newPagename)?newPagename + '|' + pagename:pagename).replace(/_/g, ' ');
location.href = action;
}
else {
var url = "https://" + lang + ".wikipedia.org/w/index.php?title=" + pagename + "&action=raw";
$.get(url).done(function(data){
sendForm(data, lang, pagename, newPagename);
});
}
}
}
function sendForm(data, lang, pagename, newPagename) {
data = data.replace(/&/g, '&');
var nav = ((newPagename.indexOf('Navigatschoonsliest') !== -1)?'&ndsWPTScript=Nav':'');
var action = "https://nds.wikipedia.org/w/index.php?title=" + newPagename + "&linkto=" + lang + ':' + pagename.replace(/_/g, ' ') + nav + "&action=edit";
$('body').append($('<form/>')
.attr({'action': action, 'method': 'post', 'id': 'replacer'})
.append($('<textarea/>').attr({'name': 'wpTextbox1'}).html(data))
.append($('<input/>').attr({'name': 'wpSummary'}).attr({'value': mw.config.get('wgWikibaseItemId') + ' ut ' + lang + '.wp' }))
).find('#replacer').submit();
}
function listForNdsWp() {
var lang = mw.config.get('wgContentLanguage');
var pagename = mw.config.get('wgPageName');
var mbList = JSON.parse(localStorage.getItem('mb-list'));
if (mbList === null) mbList = [];
$.ajax( {
url: '//' + lang + '.wikipedia.org/w/api.php',
data: {
'format': 'json',
'action': 'query',
'prop': 'templates',
'tllimit': '500',
'titles': pagename,
'format': 'json',
'formatversion': '2'
},
dataType: 'jsonp',
cache: true
} )
.done( function (data) {
if (typeof data.query.pages[0].templates !== 'undefined') {
data.query.pages[0].templates.forEach(function(elem) {
if ((!mbList.includes(elem.title)) && (elem.title.indexOf(':') === -1)) mbList.push(elem.title);
});
}
if (!mbList.includes(pagename)) mbList.push(pagename);
localStorage.setItem('mb-list', JSON.stringify(mbList));
});
}
function unlistForNdsWp() {
var pagename = mw.config.get('wgPageName');
mbList = [];
localStorage.setItem('mb-list', JSON.stringify(mbList));
$('#remove-list').remove();
}
function showListForNdsWp() {
var pagename = mw.config.get('wgPageName');
var mbList = JSON.parse(localStorage.getItem('mb-list'));
var text = '';
if (mbList === null) mbList = [];
mbList.forEach(function(elem) {
text += elem + "\n";
});
alert(text + "\n\n" + mbList.length + ' Indrääg');
if (!$('#remove-list').length) {
$('#left-navigation ul')
.append($('<li>')
.append($('<span/>')
.append($('<a/>')
.attr('id', 'remove-list')
.attr('title', 'Artikellist för dat Överdregen op nds.wp leddig maken')
.html('del')
.on('click', unlistForNdsWp))));
}
}
function replaceInTextbox(regex, replaceWith, summary) {
var val = $('#wpTextbox1').val();
val = val.replace(regex, replaceWith);
$('#wpTextbox1').val(val);
var valSummary = $('#wpSummary').val();
valSummary += summary;
$('#wpSummary').val(valSummary);
}