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 57: Linia 57:
]
]
} );
} );

/*
** narzędzie umożliwiające łatwe zablokowanie użytkownika, oraz usunięcie jego działalności
** dodatkowo dołączone jest narzędzie MultiLookup które jest w fazie rozwoju
** autorem skryptu jest użytkownik Michał56
** działa ono na wszystkich dostępnych skórkach
** wszelkie błędy lub niedopracowania proszę zgłaszać użytkownikowi Michał56
** ~
*/


;(function($, mw) {
;(function($, mw) {
Linia 64: Linia 73:
break;
break;
}
}
}) (this.jQuery, this.mediaWiki);
;(function($, mw) {
switch (mw.config.get('wgCanonicalSpecialPageName')) {
case "Contributions":
function info() {
alert('Ta funkcjonalność jest w trakcie rozwoju, niestety nie jest jeszcze dostępna.');
}
$('#contentSub a:nth-child(7)').after(' • <a href="#" id="MultiLookupLink">MultiLookup</a>');
break;
}
$('#MultiLookupLink').click(function() {
info();
});

}) (this.jQuery, this.mediaWiki);
;(function($, mw) {
switch (mw.config.get('wgCanonicalSpecialPageName')) {
case "Contributions":
$('#contentSub a:nth-child(9)').after(' • <a href="#" id="contribs-tools">narzędzia</a>');
break;
}
}) (this.jQuery, this.mediaWiki);
;(function($, mw) {
var username = mw.config.get("wgPageName").split("/")[1];
var token = mw.user.tokens.get("editToken");
var walls = [
"Message Wall",
"Nachrichtenseite",
"Muro",
"Viestiseinä",
"Mur",
"Üzenőfal",
"Bacheca",
"メッセージ ウォール",
"Prikbord",
"Tablica wiadomości",
"Mural de mensagens",
"Стіна обговорення",
"Стена обсуждения",
"留言墙"
];
$('#contribs-tools').click(function() {
$.showCustomModal('Narzędzia — <span id="nazwa_usera">' + username + '</span>', '<div class="input-group"><label>Powód:</label><input id="reason" type="text" maxlength="150" value="[[w:c:community:help:vandalism|Vandalism]]">&nbsp;<span id="banReasonV" class="button">V</span>&nbsp;<span id="banReasonS" class="button">S</span>&nbsp;<span id="banReasonP" class="button">P</span>&nbsp;<span id="banReasonOB" class="button">OB</span>&nbsp</div><br/><div class="input-group"><label>Czas blokady:</label><input id="time" type="text" maxlength="150" value="2 weeks">&nbsp;<span id="banTime12h" class="button">12h</span>&nbsp;<span id="banTime2w" class="button">2w</span>&nbsp;<span id="banTime3m" class="button">3m</span>&nbsp;<span id="banTimeInf" class="button">inf</span>&nbsp</div><br/><fieldset><legend style="font-family: Arial; font-weight: bold">Inne operacje</legend><center><a href="/wiki/Specjalna:Rejestr/block?page=Użytkownik:' + username + '" id="blockLog">Blokady</a> • <a href="/wiki/Specjalna:Rejestr/' + username + '" id="log">Rejestry</a> • <a href="/wiki/User Talk:' + username + '" id="talk">Dyskusja</a> • <a href="/wiki/Specjalna:Pliki/' + username + '" id="files">Pliki</a> • <a href="/wiki/Specjalna:Usunięty_wkład/' + username + '" id="deleteCo">Usunięty wkład</a> • <a href="/wiki/Specjalna:Uprawnienia/' + username + '" id="rights">Uprawnienia</a>', {
id: 'tools',
width: 650,
buttons: [{
message: 'Cofnij wszystko',
id: 'RollbackAllButton',
defaultButton: true,
handler: function() {
rollbackAll();
}
}, {
message: 'Cofnij i usuń',
id: 'DeleteAndRollbackButton',
defaultButton: true,
handler: function() {
deleteAll();
rollbackAll();
}
}, {
message: 'Wszystkie poprzednie',
id: 'AllBeforeButton',
defaultButton: true,
handler: function() {
deleteAll();
rollbackAll();
}
}, {
message: 'Usuń wszystko',
id: 'DeleteAllButton',
defaultButton: true,
handler: function() {
deleteAll();
}
}, {
message: 'Zablokuj',
id: 'BlockButton',
defaultButton: true,
handler: function() {
block();
}
}, {
message: 'Nuke',
id: 'NukeButton',
defaultButton: true,
handler: function() {
deleteNuke();
}
}]
});
var ReasonBan = document.getElementById("reason");
var TimeBan = document.getElementById("time");
document.getElementById("banReasonV").onclick = function() {
ReasonBan.value = '[[w:c:community:help:vandalism|Vandalism]]';
}
document.getElementById("banReasonS").onclick = function() {
ReasonBan.value = '[[w:c:community:help:spam|Spam]]';
}
document.getElementById("banReasonP").onclick = function() {
ReasonBan.value = '[[w:c:nonsensopedia:Nonsensopedia:Prywata|Prywata]]';
}
document.getElementById("banReasonOB").onclick = function() {
ReasonBan.value = 'Omijanie bana';
TimeBan.value = 'infinite';
}
document.getElementById("banTime12h").onclick = function() {
TimeBan.value = '12 hours';
}
document.getElementById("banTime2w").onclick = function() {
TimeBan.value = '2 weeks';
}
document.getElementById("banTime3m").onclick = function() {
TimeBan.value = '3 months';
}
document.getElementById("banTimeInf").onclick = function() {
TimeBan.value = 'infinite';
}
});
function apiDelete(page,reason) {
new mw.Api().post({
format: 'json',
action: 'delete',
title: page,
reason: reason,
bot: true,
token: token
})
.done(function(d) {
if (!d.error) {
console.log('done');
} else {
console.log('Wystąpił błąd podczas usuwania strony: - '+ d.error.code);
}
})
.fail(function() {
console.log('Wystąpił błąd podczas usuwania strony: '+page+'!');
});
}
function rollbackAll() {
$('.mw-rollback-link a').each(function() {
var href = $(this).attr('href');
$.get(href);
$(this).text('Gotowe!').parents().eq(2).css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');
});
}
function block() {
var czas = document.getElementById("time").value;
var powod = document.getElementById("reason").value;
var duration = prompt('Wybrany czas:', czas),
blockReason = prompt('Wybrany powód:', powod);
if (!duration) {
alert('Pole „Wybrany czas” nie może być puste!');
return;
} else if (!blockReason) {
alert('Pole „Wybrany powód” nie może być puste!');
return;
}
new mw.Api().post({
format: 'json',
action: 'block',
user: username,
expiry: duration,
nocreate: 0,
autoblock: 0,
reason: blockReason,
bot: true,
token: token
})
.done(function(d) {
if (!d.error) {
alert(username+' został pomyślnie zablokowany!');
}
else {
alert('Wystąpił błąd podczas blokowania');
}
})
.fail(function() {
alert('Wystąpił błąd podczas blokowania: '+username+'!');
})
}
function deleteAll() {
var deleteReason = 'Cleanup';
$('li .newpage ~ a').each(function() {
var title = $(this).attr('title');
if (walls.indexOf(title.split(':')[0]) !== -1)
return;
apiDelete(title,deleteReason);
$(this).parent().css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');
});
$('#mw-content-text ul li').each(function() {
var title = $(this).children('a').first().attr('title');
if (title.split('-').length == 1 || title.split('/@comment').length == 1)
return;
apiDelete(title,deleteReason);
$(this).css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');
});
}
function deleteNuke() {
window.open('http://nonsensopedia.wikia.com/wiki/Special:Nuke/' + username);
}
function closeTools() {
$('#tools').closeModal();
}
}) (this.jQuery, this.mediaWiki);
}) (this.jQuery, this.mediaWiki);

Wersja z 17:33, 7 lut 2016

//importy
importScript('User:Michał56/ostatnie zmiany.js');
importScript('User:Expert3222/RollbackAll.js');

//dodatkowe przyciski w edytorze

if (typeof (mwCustomEditButtons) != 'undefined') {
	mwCustomEditButtons[mwCustomEditButtons.length] = {
		"imageFile": "http://upload.wikimedia.org/wikipedia/commons/2/26/Button_latinas.png",
	    "speedTip": "Wstaw polskie cudzysłowy",
	    "tagOpen": "„",
	    "tagClose": "”",
	    "sampleText": ""
	};
	mwCustomEditButtons[mwCustomEditButtons.length] = {
	    "imageFile": "https://upload.wikimedia.org/wikipedia/commons/3/3f/Button_headline_-_2.png",
	    "speedTip": "Wstaw półpauzę",
	    "tagOpen": "–",
	    "tagClose": "",
	    "sampleText": ""
	};
	mwCustomEditButtons[mwCustomEditButtons.length] = {
	    "imageFile": "https://commons.wikimedia.org/wiki/Category:MediaWiki_edit_toolbar_formatting_buttons#/media/File:Pulsante_tmp.png",
	    "speedTip": "Wstaw podpis",
	    "tagOpen": "{{Michał56}} <nowiki>{{subst:#time:H:i, M d, Y|+1 hour}} (CET)</nowiki>",
	    "tagClose": "",
	    "sampleText": ""
	};
}

c
//fast delete buttons
window.fdButtons = [];
 
window.fdButtons.push(
    {
        summary: '[[Nonsensopedia:Bo tak|Bo tak]]',
        label: 'Bo tak'
    },
    {
        summary: '[[Nonsensopedia:Wandalizm|Wandalizm]]',
        label: 'Wandalizm'
    },
    {
        summary: '[[Nonsensopedia:Prywata|Prywata]]',
        label: 'Prywata'
    }
);
 
 
importArticles( {
    type: 'script',
    articles: [
        // ...
        'u:dev:FastDelete/code.js',
        // ...
    ]
} );

/*
** narzędzie umożliwiające łatwe zablokowanie użytkownika, oraz usunięcie jego działalności
** dodatkowo dołączone jest narzędzie MultiLookup które jest w fazie rozwoju
** autorem skryptu jest użytkownik Michał56
** działa ono na wszystkich dostępnych skórkach
** wszelkie błędy lub niedopracowania proszę zgłaszać użytkownikowi Michał56
** ~
*/

;(function($, mw) {
	switch (mw.config.get('wgCanonicalSpecialPageName')) {
		case "Contributions":
			$('#contentSub a:nth-child(8)').after(' • <a id="nuke" href="http://nonsensopedia.wikia.com/wiki/Special:Nuke/' + mw.config.get('wgPageName').split('/')[1] + '">masowe usuwanie</a>');
		break;	
	}
}) (this.jQuery, this.mediaWiki);
 
;(function($, mw) {
	switch (mw.config.get('wgCanonicalSpecialPageName')) {
		case "Contributions":
		    	function info() {
	                alert('Ta funkcjonalność jest w trakcie rozwoju, niestety nie jest jeszcze dostępna.');
	            }
			$('#contentSub a:nth-child(7)').after(' • <a href="#" id="MultiLookupLink">MultiLookup</a>');
		break;	
	}
	$('#MultiLookupLink').click(function() {
	    info();
	});

}) (this.jQuery, this.mediaWiki); 
 
 
;(function($, mw) {
	switch (mw.config.get('wgCanonicalSpecialPageName')) {
		case "Contributions":
			$('#contentSub a:nth-child(9)').after(' • <a href="#" id="contribs-tools">narzędzia</a>');
		break;	
	}
}) (this.jQuery, this.mediaWiki);
 
;(function($, mw) {
        var username = mw.config.get("wgPageName").split("/")[1];
        var token = mw.user.tokens.get("editToken");
        var walls = [ 
	    "Message Wall",
	    "Nachrichtenseite",
	    "Muro",
        "Viestiseinä",
        "Mur",
        "Üzenőfal",
        "Bacheca",
        "メッセージ ウォール",
        "Prikbord",
        "Tablica wiadomości",
        "Mural de mensagens",
        "Стіна обговорення",
        "Стена обсуждения",
        "留言墙"
    ];
        $('#contribs-tools').click(function() {
             $.showCustomModal('Narzędzia — <span id="nazwa_usera">' + username + '</span>', '<div class="input-group"><label>Powód:</label><input id="reason" type="text" maxlength="150" value="[[w:c:community:help:vandalism|Vandalism]]">&nbsp;<span id="banReasonV" class="button">V</span>&nbsp;<span id="banReasonS" class="button">S</span>&nbsp;<span id="banReasonP" class="button">P</span>&nbsp;<span id="banReasonOB" class="button">OB</span>&nbsp</div><br/><div class="input-group"><label>Czas blokady:</label><input id="time" type="text" maxlength="150" value="2 weeks">&nbsp;<span id="banTime12h" class="button">12h</span>&nbsp;<span id="banTime2w" class="button">2w</span>&nbsp;<span id="banTime3m" class="button">3m</span>&nbsp;<span id="banTimeInf" class="button">inf</span>&nbsp</div><br/><fieldset><legend style="font-family: Arial; font-weight: bold">Inne operacje</legend><center><a href="/wiki/Specjalna:Rejestr/block?page=Użytkownik:' + username + '" id="blockLog">Blokady</a> • <a href="/wiki/Specjalna:Rejestr/' + username + '" id="log">Rejestry</a> • <a href="/wiki/User Talk:' + username + '" id="talk">Dyskusja</a> • <a href="/wiki/Specjalna:Pliki/' + username + '" id="files">Pliki</a> • <a href="/wiki/Specjalna:Usunięty_wkład/' + username + '" id="deleteCo">Usunięty wkład</a> • <a href="/wiki/Specjalna:Uprawnienia/' + username + '" id="rights">Uprawnienia</a>', {
				 id: 'tools',
				 width: 650,
				 buttons: [{
				     message: 'Cofnij wszystko',
				     id: 'RollbackAllButton',
				     defaultButton: true,
			         handler: function() {
						rollbackAll();
				     }
                 },  {
                     message: 'Cofnij i usuń',
                     id: 'DeleteAndRollbackButton',
                     defaultButton: true,
                     handler: function() {
						deleteAll();
						rollbackAll();
                     }
                 },  {
                     message: 'Wszystkie poprzednie',
                     id: 'AllBeforeButton',
                     defaultButton: true,
                     handler: function() {
						deleteAll();
						rollbackAll();
                     }
                 },  {
                     message: 'Usuń wszystko',
                     id: 'DeleteAllButton',
                     defaultButton: true,
                     handler: function() {
                        deleteAll();
                     }
				 },  {
                     message: 'Zablokuj',
                     id: 'BlockButton',
                  	 defaultButton: true,	
                     handler: function() {
						block(); 
					 }
				 },  {
                     message: 'Nuke',
					 id: 'NukeButton',
					 defaultButton: true,
					 handler: function() {
						deleteNuke();
					 }
				 }]
			 });
    var ReasonBan = document.getElementById("reason");
	var TimeBan = document.getElementById("time");
	document.getElementById("banReasonV").onclick = function() {
		ReasonBan.value = '[[w:c:community:help:vandalism|Vandalism]]';
	}
	document.getElementById("banReasonS").onclick = function() {
		ReasonBan.value = '[[w:c:community:help:spam|Spam]]';
	}
	document.getElementById("banReasonP").onclick = function() {
		ReasonBan.value = '[[w:c:nonsensopedia:Nonsensopedia:Prywata|Prywata]]';
	}
	document.getElementById("banReasonOB").onclick = function() {
		ReasonBan.value = 'Omijanie bana';
		TimeBan.value = 'infinite';
	}	 
	document.getElementById("banTime12h").onclick = function() {
		TimeBan.value = '12 hours'; 
	}
	document.getElementById("banTime2w").onclick = function() {
		TimeBan.value = '2 weeks';
	}
	document.getElementById("banTime3m").onclick = function() {
		TimeBan.value = '3 months';
	}
	document.getElementById("banTimeInf").onclick = function() {
		TimeBan.value = 'infinite';
	} 
        });
 
        function apiDelete(page,reason) {
		      new mw.Api().post({
		      format: 'json',
		      action: 'delete',
		      title: page,
		      reason: reason,
		      bot: true,
		      token: token
		})
		.done(function(d) { 
			if (!d.error) {
				console.log('done');
			} else {
			console.log('Wystąpił błąd podczas usuwania strony: - '+ d.error.code);
			}
		})
		.fail(function() {
			console.log('Wystąpił błąd podczas usuwania strony: '+page+'!');
		});
    } 
 
	function rollbackAll() {
		$('.mw-rollback-link a').each(function() {
		var href = $(this).attr('href');
		$.get(href);
		$(this).text('Gotowe!').parents().eq(2).css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');
		});
	}
	function block() {
		 var czas = document.getElementById("time").value;
		 var powod = document.getElementById("reason").value;
		 var duration = prompt('Wybrany czas:', czas),
		 blockReason = prompt('Wybrany powód:', powod); 
		 if (!duration) {
			 alert('Pole „Wybrany czas” nie może być puste!');
			 return; 
		 } else if (!blockReason) {
			 alert('Pole „Wybrany powód” nie może być puste!');
			 return; 
		 }
		 new mw.Api().post({
		 format: 'json', 
		 action: 'block',
		 user: username,
		 expiry: duration,
		 nocreate: 0,
		 autoblock: 0,
		 reason: blockReason,
		 bot: true, 
		 token: token
		 })
		 .done(function(d) { 
			 if (!d.error) {
				 alert(username+' został pomyślnie zablokowany!');
			 }
             else {
				 alert('Wystąpił błąd podczas blokowania');
			 }			 
		 })
         .fail(function() {
			 alert('Wystąpił błąd podczas blokowania: '+username+'!');
		 })		 
	} 
	        function deleteAll() {
		      var deleteReason = 'Cleanup';
		      $('li .newpage ~ a').each(function() {
			var title = $(this).attr('title');
			if (walls.indexOf(title.split(':')[0]) !== -1)
				return;
			apiDelete(title,deleteReason);
			$(this).parent().css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');
		});
		$('#mw-content-text ul li').each(function() {
			var title = $(this).children('a').first().attr('title');
			if (title.split('-').length == 1 || title.split('/@comment').length == 1)
				return;
			apiDelete(title,deleteReason);
			$(this).css({'color':'grey','text-decoration':'line-through'}).removeAttr('href');
		});
	}
	function deleteNuke() {
		window.open('http://nonsensopedia.wikia.com/wiki/Special:Nuke/' + username); 
	}  
    function closeTools() {
		$('#tools').closeModal();
	}
   
}) (this.jQuery, this.mediaWiki);