Użytkownik:Michał56/common.js: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
M Znacznik: edytor źródłowy |
M (:<) Znacznik: edytor źródłowy |
||
Linia 13: | Linia 13: | ||
//RollbackAll |
//RollbackAll |
||
importScript( "User:Expert3222/RollbackAll.js" ); |
importScript( "User:Expert3222/RollbackAll.js" ); |
||
//test |
|||
mw.loader.using('ext.gadget.gConfig', function(){ |
|||
gConfig.register('golabPocztowy', 'Gołąbek pocztowy', [ |
|||
{ |
|||
name: 'KNSflash', |
|||
desc: 'Migająca ikonka nowej wiadomości.', |
|||
type: 'boolean', |
|||
legacy: window, |
|||
deflt: false |
|||
}, { |
|||
name: 'KNSpreview', |
|||
desc: 'Włącz podgląd nowych wiadomości.', |
|||
type: 'boolean', |
|||
legacy: window, |
|||
deflt: true |
|||
}, { |
|||
name: 'KNStitle', |
|||
desc: 'Tekst dodawany przed tytułem strony po nadejściu nowej wiadomości. Domyślnie puste.', |
|||
type: 'string', |
|||
legacy: window, |
|||
deflt: '' |
|||
} |
|||
]); |
|||
var divArr = document.getElementsByTagName('div'); // pobierz wszystkie elementy DIV |
|||
var newMsgImg = (!gConfig.get('golabPocztowy', 'KNSflash')) ? '//upload.wikimedia.org/wikipedia/commons/1/1f/KNS_-_new_message_icon.png' : '//upload.wikimedia.org/wikipedia/commons/5/52/KNS_-_new_message_icon_animated.gif'; //jeśli użytkownik ustawi KNSflash to animuj ikonkę |
|||
for (var i in divArr) // znajdź element z klasą usermessage |
|||
{ |
|||
if (divArr[i].className == 'usermessage') { |
|||
var msgBar = divArr[i]; |
|||
break; |
|||
} |
|||
} |
|||
var myTalk = document.getElementById('pt-mytalk') |
|||
.getElementsByTagName('a')[0]; // pobierz element "moja dyskusja" |
|||
if (msgBar) { // jeśli jest nowa wiadomość... |
|||
if (gConfig.get('golabPocztowy', 'KNStitle')) { |
|||
document.title = gConfig.get('golabPocztowy', 'KNStitle') + ' ' + document.title; |
|||
} |
|||
myTalk.href = msgBar.getElementsByTagName('a')[1].href; // link z pomarańczowego paska |
|||
myTalk.title = msgBar.childNodes[0].data + msgBar.getElementsByTagName('a')[0].innerHTML; // tytuł również |
|||
myTalk.innerHTML = '<img src="' + newMsgImg + '" alt="moja dyskusja (nowe!)" /><audio src="http://vignette3.wikia.nocookie.net/five-night-at-freddy/images/3/3b/Ping_-_Sound_Effect.ogg" autoplay=""></audio>'; // no i obrazek oraz dźwięk! |
|||
if (gConfig.get('golabPocztowy', 'KNSpreview')) { |
|||
url = window.location.protocol + "//pl.wikipedia.org/w/api.php?action=query&prop=revisions&titles=User%20talk:" + encodeURI(wgUserName) + "&rvprop=user|timestamp&format=json&rvdiffto=prev"; |
|||
$.ajax(url) |
|||
.done(function (json) { |
|||
for (var id in json.query.pages) { |
|||
var pageid = id; |
|||
} |
|||
window.golabPocztowyDiffData = [json.query.pages[pageid].revisions[0].diff['*'], json.query.pages[pageid].revisions[0].user, json.query.pages[pageid].revisions[0].timestamp.substr(0, 10), json.query.pages[pageid].revisions[0].timestamp.substr(11, 8)]; |
|||
}); |
|||
var diffWindowLink = document.createElement('a'); // link do podglądu |
|||
diffWindowLink.href = '#'; |
|||
diffWindowLink.innerHTML = '<img src="//upload.wikimedia.org/wikipedia/commons/e/e4/KNS_-_preview.png" title="Podgląd ostatniej wiadomości" alt="[+]" />'; |
|||
diffWindowLink.className = 'KNSdifflink'; |
|||
diffWindowLink.onclick = function () { |
|||
if (diffWindow.innerHTML == '') { |
|||
var diffData = window.golabPocztowyDiffData; |
|||
diffHTML = 'Użytkownik <span style="font-weight: bold">' + diffData[1] + '</span> napisał wiadomość dnia <span style="font-weight: bold">' + diffData[2] + '</span> o <span style="font-weight: bold">' + diffData[3] + '</span>:<p />'; // nagłówek okna z podglądem |
|||
var diffNew = diffData[0].match(new RegExp('<td class=\\"diff-addedline\\">(.*)</td>', 'g')); // wybierz tylko potrzebne linie z podglądu zmian |
|||
for (var i in diffNew) // ...i oczyść je |
|||
{ |
|||
diffNew[i] = diffNew[i].replace('<td class=\"diff-addedline\"><div>', ''); |
|||
diffNew[i] = diffNew[i].replace('</div></td>', ''); |
|||
diffHTML += diffNew[i] + '<br />'; |
|||
} |
|||
diffWindow.innerHTML = diffHTML; |
|||
diffWindow.appendChild(diffClose); |
|||
} |
|||
diffWindow.style.visibility = 'visible'; |
|||
}; // po kliknięciu pokaż okienko |
|||
document.getElementById('pt-mytalk') |
|||
.appendChild(diffWindowLink); |
|||
var diffWindow = document.createElement('div'); // stwórz okienko z podglądem |
|||
diffWindow.className = 'KNSwindow'; |
|||
document.body.appendChild(diffWindow); |
|||
var diffClose = document.createElement('div'); // zamykanie okienka |
|||
diffClose.innerHTML = '<img src="//upload.wikimedia.org/wikipedia/commons/0/0e/KNS_-_preview_close.png" />'; |
|||
diffClose.onclick = function () { |
|||
diffWindow.style.visibility = 'hidden'; |
|||
}; |
|||
diffClose.className = 'KNSclose'; |
|||
}; |
|||
} else { // a jeśli nie... |
|||
myTalk.innerHTML = '<img src="//upload.wikimedia.org/wikipedia/commons/1/15/KNS_-_no_messages_icon.png" alt="moja dyskusja" />'; |
|||
myTalk.title = 'Brak nowych wiadomości'; |
|||
}; |
|||
}); |
Wersja z 14:41, 23 gru 2015
//skrypt zapobiegający znikaniu opcji ostatnich zmian
/*
* @autor - Michał56
*/
;(function($, mw){
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Recentchanges') return;
if ($('#recentchanges-options').hasClass('collapsed')) {
$('#recentchanges-options').toggleClass('collapsed');
}
})(this.jQuery, this.mediaWiki);
//RollbackAll
importScript( "User:Expert3222/RollbackAll.js" );