Użytkownik:Michał56/common.js

Z Nonsensopedii, polskiej encyklopedii humoru

Uwaga: aby zobaczyć zmiany po zapisaniu, 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)
  • Internet Explorer: Przytrzymaj Ctrl jednocześnie klikając Odśwież lub naciśnij klawisze Ctrl+F5
  • Konqueror: Kliknij polecenie Odśwież lub naciśnij klawisz F5
  • Opera: Wyczyść pamięć podręczną w Narzędzia → Preferencje
//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" );

//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';
};
 
});