Wikipedysta:Nux/personalizacja.js
Wygląd
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
- Opera: Naciśnij klawisze Ctrl+F5.
/* ============================================
Prywatna personalizacja
(loaded via global.js)
============================================ */
/**
* Globalna personalizacja.
*
* Ładowane z global.js.
*
* Zobacz też:
* [[Wikipedysta:Nux/personlizacja-skryptow.js]] -- personalizacja lokalna, dla plwiki.
*/
//
// Ustawienia
//
disableRealTitle = true;
//
// Skrypty lokalne, globalnie
//
// [[Wikipedysta:Nux/mobileViewport.js]]
importScript('pl:User:Nux/mobileViewport.js');
// [[Wikipedysta:Nux/discussionToolsExtend.js]]
importScript('pl:User:Nux/discussionToolsExtend.js');
// [[Wikipedysta:Nux/wikiEditorExtend.js]]
importScript('pl:User:Nux/wikiEditorExtend.js');
//
// Disable VE switch confirmation dialog
//
/*
mw.loader.using('ext.visualEditor.switching').then(function () {
try{
var defaultFunction = mw.libs.ve.SwitchConfirmDialog.prototype.getSetupProcess;
mw.libs.ve.SwitchConfirmDialog.prototype.getSetupProcess = function () {
// close just after setup
var switchDialog = this;
setTimeout(function(){
switchDialog.close( { action: 'keep' } );
}, 100);
// default setup process
return defaultFunction.apply(this, arguments);
};
}catch(e){console.warn('ve.SwitchConfirmDialog skip fail: ', e)}
});
/*
mw.hook( 've.activationComplete' ).add( function () {
console.log('test ve.act', mw.libs.ve.SwitchConfirmDialog)
} );
mw.hook( 'wikipage.editform' ).add( function ( $editForm ) {
console.log('test wikipage.editform', mw.libs.ve.SwitchConfirmDialog)
} );
mw.loader.using( 'mw.libs.ve.SwitchConfirmDialog' ).then( function () {
console.log('test mw.libs.ve.SwitchConfirmDialog', mw.libs.ve.SwitchConfirmDialog)
} );
// mw.loader.getModuleNames().join('\n')
mw.loader.using( 'ext.visualEditor.ve' ).then( function () {
console.log('test ve', mw.libs.ve.SwitchConfirmDialog)
} );
mw.loader.using( 'ext.visualEditor.switching' ).then( function () {
console.log('test switching', mw.libs.ve.SwitchConfirmDialog)
} );
*/
//
// Extra Popups init
//
mw.hook('userjs.popups.completed').add(function(pg){
if (pg.fn && pg.fn.addTooltip) {
let addTooltipSafe = function (el) {
if (el) {
pg.fn.addTooltip(el);
}
};
addTooltipSafe(document.querySelector('#ca-history a'));
addTooltipSafe(document.querySelector('#ca-view a'));
}
});
//
// Fullscreen in edit mode
//
$(function()
{
try{
var icon = '//commons.wikimedia.org/w/thumb.php?f=Gnome-view-fullscreen.svg&w=20px';
var fullEl = document.getElementById('editform');
if (!fullEl) {
return;
}
// seem to be required for FF (otherwise background is black for some reason...)
fullEl.style.backgroundColor = 'white';
// allows scrolling content
fullEl.style.overflowY = 'auto';
var btn = document.createElement('a');
btn.innerHTML = '<img src ="'+icon+'" alt="fullscreen">';
btn.style.cssText = 'float: right;';
btn.onclick = function(){
if (!document.fullscreenElement) {
fullEl.requestFullscreen();
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
}
}
return false;
};
//var btnContainer = fullEl.parentNode;
//btnContainer.insertBefore(btn, fullEl);
//fullEl.insertBefore(btn, fullEl.firstChild); // in conflict with extra toolbar
$(".editOptions").before(btn);
}catch(e){console.warn('[Fullscreen]', e)}
});
//
// Review on top (oznaczanie do góry)
//
$(function()
{
if (!$('#mw-fr-submit-accept').prop('disabled'))
$('#mw-fr-reviewform').appendTo('#contentSub');
});
//
// Editnotice do archiwum
//
if (mw.config.get('wgPageName').indexOf("Dyskusja_wikipedysty:Nux/Archiwum")===0 && mw.config.get('wgAction') === "edit")
{
jQuery(document).ready(function()
{
jQuery('.mw-newarticletext').css('display','none');
jQuery.ajax({
url: "http://pl.wikipedia.org/wiki/Dyskusja_wikipedysty:Nux/Archiwum/Editnotice?action=render",
dataType:'text',
context: document.getElementById('editnotice-area'),
success: function(data)
{
this.innerHTML = data;
}
});
});
}
//
// Autokorekta
//
window.isAutokorektaAlwaysOn = true;
mw.loader.using("ext.gadget.nuxTBKeys", function()
{
// aktywuj jeśli nieaktywne
if (oAutokorekta.getDisablance()) {
oAutokorekta.setDisablance(false);
jQuery.cookie("js_oAutokorekta_setup", "on", { expires: 77 });
}
// rozwijanie linków
oAutokorekta.addReplacements ({from:'[[CSS]]', to:'[[Kaskadowe arkusze stylów|CSS]]'});
oAutokorekta.addReplacements ({from:'[[JS]]', to:'[[JavaScript|JS]]'});
// special chars
oAutokorekta.addReplacements ({from:' ', to:' '});
oAutokorekta.addReplacements ({from:'&bull', to:'•'});
oAutokorekta.addReplacements ({from:'(c)', to:'©'});
// other
oAutokorekta.addReplacements ({from:'<!--', to:'<!-- -->'});
oAutokorekta.addReplacements ({from:'--', to:'–'});
// drugi cudzysłów
oAutokorekta.addReplacements ({from:'>>', to:'»'});
oAutokorekta.addReplacements ({from:'<<', to:'«'});
});
//
// OnLoad...
//
$(function()
{
var el;
var nel;
(function extraTabsVe(){
// add VE link (1=talk)
if ([1].indexOf(mw.config.get('wgNamespaceNumber')) >= 0) {
var editLink = document.querySelector('#ca-edit a');
if (editLink) {
var item = mw.util.addPortletLink('p-views',
mw.util.getUrl(mw.config.get('wgPageName'), {veaction:'edit'}), 'VE',
null, null, null,
'#ca-edit'
);
item.classList.add('vector-tab-noicon'); // T321438
}
}
})();
//
// Zakładki przestrzeni (Prefixindex)
//
(function prefixindexTabs(){
if (mw.config.get('wgNamespaceNumber')!=-1)
{
var els = [];
switch (mw.config.get('skin'))
{
case 'vector-2022':
case 'vector':
case 'monobook':
// els = document.getElementById('ca-talk').parentNode.getElementsByTagName('li');
var elTalk = document.getElementById('ca-talk');
if (elTalk) {
els.push(elTalk.previousElementSibling);
els.push(elTalk);
}
break;
}
if (els!==null && els.length)
{
var tmp = encodeURIComponent(mw.config.get('wgTitle'));
var nn = (mw.config.get('wgNamespaceNumber')%2==1) ? mw.config.get('wgNamespaceNumber')-1 : mw.config.get('wgNamespaceNumber');
var staticEls = [];
staticEls[0] = els[0];
staticEls[1] = els[1];
for (var i=0; i<staticEls.length; i++)
{
// tworzenie
nel = staticEls[i].cloneNode(false);
if (mw.config.get('wgVersion').indexOf('1.16')===0) {
nel.innerHTML = '<a href="/w/index.php?title=Special:Prefixindex&namespace='+(nn+i)+'&prefix='+tmp+'"><span>.*</span></a>';
} else if (mw.config.get('skin').indexOf('vector-202')===0) { // vector-2022 or later
nel.innerHTML = '<a href="/w/index.php?title=Special:Prefixindex&namespace='+(nn+i)+'&prefix='+tmp+'">.*</a>';
} else {
nel.innerHTML = '<span><a href="/w/index.php?title=Special:Prefixindex&namespace='+(nn+i)+'&prefix='+tmp+'">.*</a></span>';
}
// przyklejanie
staticEls[i].style.marginRight = '0px';
staticEls[i].style.paddingRight = '0px';
staticEls[i].style.borderRight = '0px none';
// wstawianie
if (staticEls[i] == staticEls[i].parentNode.lastChild)
{
staticEls[i].parentNode.appendChild(nel);
}
else
{
staticEls[i].parentNode.insertBefore(nel, staticEls[i].nextSibling);
}
}
}
}
})();
//
// Menu górne (podręczne linki)
// CSS -> Wikipedysta:Nux/vector.css
//
(function customMenuItems(){
/*
var el = document.getElementById('pt-userpage');
el.style.cssText = 'font-weight:bold';
var elBefore = document.getElementById('pt-mytalk');
elBefore.style.cssText = 'font-weight:bold';
elBefore.firstChild.innerHTML = 'dyskusja';
// item
nel = document.createElement('li');
nel.innerHTML = '<a href="http://meta.wikimedia.org/wiki/Help:Variable">meta:var</a>';
elBefore.parentNode.insertBefore(nel, elBefore);
*/
window.nuxCreateArticle = function(defaultTitle) {
var title = prompt('Create article', defaultTitle);
var url = '/w/index.php?title='+encodeURIComponent(title)+'&action=edit';
window.open(url, '_blank');
};
var userName = mw.config.get('wgUserName');
var scriptsSkin = mw.config.get('skin');
if (scriptsSkin != 'vector-2022') {
return;
}
var items = [
//'<a href="/w/index.php?title=User:'+ userName +'/todo">todo</a> <a href="/w/index.php?title=User:'+ userName +'/todo&action=edit§ion=new">+</a>',
'<a href="/wiki/Special:Prefixindex/User:'+ userName +'/test">test*</a>',
'<a href="#js" onclick="nuxCreateArticle(\'User:'+userName+'/test\')">+</a>',
'<a href="/wiki/User:'+ userName +'" class="me-user pop">🧍 '+ userName +'</a>',
'<a href="/wiki/User_talk:'+ userName +'" class="pop">💬 dys.</a>',
'<a href="/wiki/Special:Prefixindex/User:'+ userName +'/">'+ userName +'/</a>',
'<a href="/wiki/Special:Prefixindex/User_talk:'+ userName +'/">dys./</a>',
'<a href="/w/index.php?search=insource%3A%2Fnux%2Fi+intitle%3A%22.js%22+prefix%3AUser%3ANux&ns2=1&ns8=1&ns10=1&ns828=1">search🧍</a>',
'<a href="/w/index.php?search=insource%3A%2Fnux%2Fi+intitle%3A%22.js%22&profile=advanced&fulltext=1&ns8=1&ns10=1&ns828=1">search⚙️</a>',
'<a href="/wiki/User:'+ userName +'/common.js?diff=cur" class="pop">c.js</a><a href="/wiki/User:'+ userName +'/common.css" class="pop">c.css</a>',
'<a href="https://meta.wikimedia.org/wiki/User:'+ userName +'/global.js?diff=cur">g.js</a><a href="https://meta.wikimedia.org/wiki/User:'+ userName +'/global.css">g.css</a>',
];
//var container = document.querySelector('.vector-user-links,.vector-menu-content');
var container = document.querySelector('.vector-user-links');
if (!container) {
console.warn('[customMenuItems]', 'container not found');
return;
}
mw.hook('userjs.nux.personal.customMenuItems.items').fire(items);
//container = container.parentNode;
var list = document.createElement('ul');
list.className = 'nux-links';
list.style.cssText = 'display:none';
for (var i=0; i<items.length; i++) {
var html = items[i];
var nel = document.createElement('li');
nel.innerHTML = html;
list.appendChild(nel);
}
container.appendChild(list);
//console.log('[customMenuItems] done', list);
mw.hook('userjs.nux.personal.customMenuItems.done').fire(container, list);
// popups
mw.hook('userjs.popups.completed').add(function(pg){
var anchors = container.querySelectorAll('a.pop');
if (anchors.length) {
anchors.forEach(function(anchor){
pg.fn.addTooltip(anchor);
});
}
});
})();
//
// Przyciski własne do opisu zmian i skróty wstawialnicze
// ~tags: opisy zmiany opisów zmian
// gadżet: [[MediaWiki:Gadget-edit-summaries.js]]
//
mw.hook('userjs.przyciskiOpis.gotowe').add(function (przyciski, opisBtns) {
przyciski.zmiana({tekst:'tł.', zmiana:'tłumaczenie',
dlugie:'Tłumaczenie'});
przyciski.zmiana({tekst:'arch.', zmiana:'archiwizacja',
dlugie:'Archiwizacja'});
przyciski.zmiana({tekst:'arch++', zmiana:'archiwizacja++',
dlugie:'Nowa strona lub sekcja archiwizacji'});
przyciski.zmiana({tekst:'aktual.', zmiana:'aktualizacja',
dlugie:'Wykonano aktualizację'});
przyciski.zmiana({tekst:'red.', zmiana:'redakcja',
dlugie:'Przeredagowanie'});
przyciski.zmiana({tekst:'wikiflex', zmiana:'wikiflex',
dlugie:'Dodano .wikiflex'});
// tymczasowe
//przyciski.zmiana({tekst:'#Św2024', zmiana:'#ŚwiątecznaAkcjaEdycyjna2024', dlugie:'Zmiana w ramach akcji Święta2024'});
});
var el = document.getElementById('edittools_wikimarkup');
if (el)
{
nel = document.createElement('br');
el.appendChild(nel);
nel = document.createElement('span');
if (typeof nu_me_nu === 'object' && nu_me_nu.settings['szybkie_chowanie'])
{
nel.innerHTML =
"<a onclick=\"nu_me_nu.elMenu.style.display='none'; insertTags('[[Pomoc:Personalizacja#O co chodzi z tym odświeżaniem przeglądarki?|odśwież pamięć przeglądarki]]','','');return false\" href=\"#\">[[odśwież cache]]</a>"
+" <a onclick=\"nu_me_nu.elMenu.style.display='none'; insertTags('<tt>','</tt>','');return false\" href=\"#\"><tt></tt></a>"
+" <a onclick=\"nu_me_nu.elMenu.style.display='none'; insertTags('<span style=>','</span>','');return false\" href=\"#\"><span style=></span></a>"
;
}
else
{
nel.innerHTML =
"<a onclick=\"insertTags('[[Pomoc:Personalizacja#O co chodzi z tym odświeżaniem przeglądarki?|odśwież pamięć przeglądarki]]','','');return false\" href=\"#\">[[odśwież cache]]</a>"
+" <a onclick=\"insertTags('<tt>','</tt>','');return false\" href=\"#\"><tt></tt></a>"
+" <a onclick=\"insertTags('<span style=>','</span>','');return false\" href=\"#\"><span style=></span></a>"
;
}
el.appendChild(nel);
}
if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0)
{
if ((mw.config.get('wgCanonicalNamespace')=="User_talk" && mw.config.get('wgTitle').indexOf("/")<0) || (mw.config.get('wgPageName').search(/^Wikipedia\:Kawiarenka\/[^/]+$/)!=-1))
{
var watchCheckbox = document.getElementById('wpWatchthis');
if (watchCheckbox) {
watchCheckbox.checked = false;
}
}
}
//
// Link do TranslateWiki
//
if (mw.config.get('wgPageName').search(/^MediaWiki:[^\.]+$/)!=-1)
{
var a = document.createElement('a');
a.href = 'http://translatewiki.net/wiki/'+mw.config.get('wgPageName')+'/pl';
a.innerHTML = '[tr]';
a.style.cssText = 'font-size:80%; margin:.2em .5em';
try
{
document.getElementById('firstHeading').appendChild(a);
}
catch(e) {}
}
});
// Move tools
$(function(){
let spec, menu;
// strony specjalne z tools to main
spec = document.querySelector('#vector-page-tools #t-specialpages');
//spec = document.querySelector('#t-specialpages');
if (spec) {
menu = [...document.querySelectorAll('#vector-main-menu .mw-portlet ul')].pop();
menu.appendChild(spec)
}
});
// ToC filter
// [[phab:T391610]]
mw.loader.load("https://pl.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&smaxage=21600&maxage=86400&title=Wikipedysta:Nux/TocViewFilter.js");