Wikireporter:Krzysiu Jarzyna/LABS/usuń.js
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)
- Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
- Opera: Naciśnij klawisze Ctrl+F5.
// ---------------------------------------------------------
// Skrypt [[w:Wikipedysta:Beau|Wikipedysty Beau]], dostosowany do Wikinews.
// ---------------------------------------------------------
// ---------------------------------------------------------
// Ustawienia domyślne - przycisków
// ---------------------------------------------------------
if (!del_buttons)
{
var del_buttons = new Array(
"general", // identyfikator grupy (nie zmieniać i nie dodawać)
"", // etykieta
new Array ( // przyciski
" _Nie news_ ", // etykieta
"wpis nie został uznany za artykuł", //wstawiany tekst
" _Za krótkie_ ",
"wpis został usunięty z powodu zbyt małej ilości treści",
" _stare_ ",
"Wiadomość jest już dość stara",
" _na prośbę_ ",
"Usunięto na prośbę autora",
" _eksperyment_ ",
"wpis został uznany za eksperyment edycyjny",
" _bełkot_ ",
"wpis usunięty z powodu niezrozumiałej treści",
" _wulgaryzmy_ ",
"wpis usunięty z powodu umieszczonych w nim wulgaryzmów",
" _wygłup_ ",
"wpis usunięty z powodu umieszczonych wygłupów",
" _reklama_ ",
"wpis uznany za reklamę",
" _npa_ ",
"wpis usunięty z powodu [[Wikinews:Prawa autorskie|naruszenia praw autorskich]]",
" _forma_ ",
"wpis usunięto z powodu [[Wikinews:Jak napisać poprawny artykuł?|nieodpowiedniej formy]]",
" _zbędne_ ",
"artykuł zbędny",
" _dubel_ ",
"artykuł o podobnym temacie już istnieje"
),
"talk",
"dyskusja",
new Array (
" _forum_ ",
"strona dyskusji to nie forum",
" _problem_ ",
"nie zajmujemy się rozwiązywaniem problemów",
" _stare_ ",
"stare",
" _sierotka_ ",
"sierotka",
" _wyjaśniono_ ",
"sprawa wyjaśniona"
),
"img",
"grafika",
new Array (
" _nazwa_ ",
"grafika usunięta ze względu na nieodpowiednią nazwę",
" _na Commons_ ",
"grafika znajduje się w repozytorium mediów Wikimedia Commons",
" _npa_ ",
"[[Wikinews:Dozwolony_użytek#Co_nie_podlega_dozwolonemu_użytkowi|grafika nie podlega fair use]]",
" _licencja_ ",
"grafika z problemami licencyjnymi",
" _zbędne_ ",
"zbędna/nieużywana grafika",
" _dubel_ ",
"dubel"
),
"redir",
"przekierowanie",
new Array (
" _do 5 min._ ",
"świeże przekierowanie (do 5 min. po publikacji)",
" _redir tworzonego_ ",
"przekierowanie do artykułu jeszcze tworzonego",
" _zbędne_ ",
"zbędne przekierowanie",
" _zerwane_ ",
"zerwane przekierowanie",
" _błędne_ ",
"błędne przekierowanie"
),
"tech",
"porządki",
new Array (
" _SdU_ ",
"usunięto decyzją [[Wikinews:Strony do usunięcia|SdU]] ",
" _zbędna lub pusta kategoria_ ",
"zbędna lub pusta kategoria",
" _dubel_ ",
"dubel"
)
);
}
// ---------------------------------------------------------
// Ustawienia domyślne - linkujące oraz historia
// ---------------------------------------------------------
// maksymalna ilość pobieranych linkujących, 0 - nie pobiera
try { del_max_links = del_max_links } catch (e) { del_max_links = 10 }
// maksymalna ilość pobieranych wpisów z historii, 0 - nie pobiera
try { del_max_versions = del_max_versions } catch (e) { del_max_versions = 5 }
// czy włączony jest tryb hardcode?
try { del_hardcore = del_hardcore } catch (e) { del_hardcore = 0 }
// czy włączone jest podświetlanie linku do strony dyskusji
try { del_talk_highlight = del_talk_highlight } catch (e) { del_talk_highlight = 1 }
// tak, wiem... ale nie wymyśliłem nic lepszego...
// ---------------------------------------------------------
// Fragment kodu z LiveRC
// ---------------------------------------------------------
var wpajax = {
http: function(bundle) {
// mandatory: bundle.url
// optional: bundle.async
// optional: bundle.method
// optional: bundle.headers
// optional: bundle.data
// optional: bundle.onSuccess (xmlhttprequest, bundle)
// optional: bundle.onFailure (xmlhttprequest, bundle)
// optional: bundle.otherStuff OK too, passed to onSuccess and onFailure
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest();
} catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false
}
}
}
if (xmlhttp) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4)
wpajax.httpComplete(xmlhttp,bundle);
};
xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async == false ? false : true);
if (bundle.headers) {
for (var field in bundle.headers)
xmlhttp.setRequestHeader(field,bundle.headers[field]);
}
xmlhttp.send(bundle.data ? bundle.data : null);
}
return xmlhttp;
},
httpComplete: function(xmlhttp,bundle) {
if (xmlhttp.status == 200 || xmlhttp.status == 302) {
if (bundle.onSuccess)
bundle.onSuccess(xmlhttp,bundle);
} else if (bundle.onFailure) {
bundle.onFailure(xmlhttp,bundle);
} else {
// A activer en debug mode ?
// alert(xmlhttp.statusText);
}
}
};
// Parser
if (document.implementation.createDocument) {
var gml_xmlparser = new DOMParser();
}
function gml_XMLParse(string) {
if (document.implementation.createDocument) {
return gml_xmlparser.parseFromString(string, "text/xml");
} else if (window.ActiveXObject) {
var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
gml_xmldoc.async = "false";
ret = gml_xmldoc.loadXML(string);
if (!ret)
return null;
return gml_xmldoc.documentElement;
}
return null;
}
// ---------------------------------------------------------
function del_getHist(xmlreq, data)
{
doc = gml_XMLParse(xmlreq.responseText);
bodyContent = doc.getElementById('bodyContent')
var history_div = document.getElementById( 'history_div' );
history_div.innerHTML = '';
for (var i=0; i< bodyContent.childNodes.length; i++)
{
var tagName = bodyContent.childNodes[i].tagName;
if (tagName && tagName.toLowerCase() == 'form')
{
history_div.appendChild(bodyContent.childNodes[i]);
return;
}
}
history_div.appendChild(bodyContent);
}
function del_getLinks(xmlreq, data)
{
doc = gml_XMLParse(xmlreq.responseText);
bodyContent = doc.getElementById('bodyContent')
var links_div = document.getElementById( 'links_div' );
for (var i=0; i< bodyContent.childNodes.length; i++)
{
var tagName = bodyContent.childNodes[i].tagName;
if (tagName && tagName.toLowerCase() == 'ul')
{
links_div.innerHTML = '';
links_div.appendChild(bodyContent.childNodes[i]);
return;
}
}
links_div.innerHTML = '<span style="color: green; font-size: larger; font-weight:bold">Brak linkujących</span>';
}
function escape_reason(text)
{
return text.replace(/"/g,'\\"'); // "
}
function del_createButtons(parentNode, buttonArray)
{
for (var j = 0; j < buttonArray.length; j+=2)
{
var newButton = document.createElement('a');
// atrybuty
newButton.appendChild(document.createTextNode(buttonArray[j]));
newButton.onclick = new Function('insert_delete_reason("' + escape_reason(buttonArray[j+1]) + '")');
// dodanie przycisku
parentNode.appendChild(newButton);
}
}
function del_createGroup(id, caption, buttonArray)
{
tr = document.createElement('tr');
tr.id = "del_" + id;
td_caption = document.createElement('td');
td_caption.align = 'right';
td_caption.appendChild( document.createTextNode(caption) );
tr.appendChild(td_caption);
td_buttons = document.createElement('td');
td_buttons.align = 'left';
td_buttons.id = 'userSummaryButtonsA';
del_createButtons(td_buttons, buttonArray);
tr.appendChild(td_buttons);
return tr;
}
function del_showAll()
{
for (var i = 0; i < del_buttons.length; i+=3)
{
var group = del_buttons[i];
document.getElementById("del_" + group).style.display = '';
}
document.getElementById("del_general").cells[0].style.visibility = 'hidden';
}
function del_imageForm()
{
// zmienił się sposób usuwania plików
// należy dodać brakujące elementy formularza
var table = document.createElement('table');
table.border = 0;
var wpReason = document.getElementById('wpReason');
var p = wpReason.parentNode;
p.innerHTML = '';
var tr = document.createElement('tr');
var td_caption = document.createElement('td');
td_caption.align = 'right';
td_caption.appendChild( document.createTextNode('Powód usunięcia:') );
tr.appendChild(td_caption);
var td_reason = document.createElement('td');
td_reason.appendChild(wpReason);
tr.appendChild(td_reason);
table.appendChild(tr);
tr = document.createElement('tr');
td_caption = document.createElement('td');
td_reason = document.createElement('td');
var button = p.parentNode.getElementsByTagName('input')[0];
button.parentNode.innerHTML = '';
td_reason.appendChild(button);
tr.appendChild(td_caption);
tr.appendChild(td_reason);
table.appendChild(tr);
p.appendChild(table);
return tr;
}
$(function()
{
// jeżeli to nie jest strona 'Usuń' zakończ działanie
if (wgAction != "delete")
return;
var current_group = '';
var defaultReason = '';
var catalk = document.getElementById('ca-talk');
if ( del_talk_highlight && catalk.className == '') {
catalk.style.textDecoration = 'blink';
catalk.firstChild.style.backgroundColor = 'orange';
}
if ( document.getElementById('wpReason') )
defaultReason = document.getElementById('wpReason').value;
var tr_watch;
if (wgNamespaceNumber == 6 && !document.getElementById('wpConfirmB'))
{
current_group = 'img';
tr_watch = del_imageForm();
}
else
{
var wpWatch = document.getElementById('wpWatch');
tr_watch = wpWatch.parentNode.parentNode;
}
var table= tr_watch.parentNode;
if (defaultReason.match(/#REDIRECT/i))
{
current_group = 'redir';
}
else if (wgPageName.substring(0, 8) == 'Dyskusja')
{
current_group = 'talk';
}
else if (wgNamespaceNumber == 14)
{
current_group = 'tech';
}
else if (wgNamespaceNumber == 6)
{
current_group = 'img';
}
else if (defaultReason.match(/\{\{(?:Pocz)?SDU/i))
{
current_group = 'tech';
}
/* niepotrzebne
else if (defaultReason.match(/\{\{(?:auto)?NPA/i))
{
current_group = 'tech';
}
*/
for (var i = 0; i < del_buttons.length; i+=3)
{
var group = del_buttons[i];
var caption = del_buttons[i+1];
var buttons = del_buttons[i+2];
var new_tr = del_createGroup(group, caption, buttons);
if (group == 'general')
{
var newButton = document.createElement('a');
// atrybuty
newButton.appendChild(document.createTextNode("pokaż wszystkie"));
newButton.onclick = del_showAll;
// dodanie przycisku
new_tr.firstChild.appendChild(newButton);
}
else if (group == current_group)
{
new_tr.firstChild.style.fontWeight = 'bold';
}
else
{
new_tr.style.display = 'none';
}
table.insertBefore(new_tr, tr_watch);
}
var ek_found = defaultReason.match(/\{\{ek\|(?:1=)?(.+?)(?:\}\}|$)/);
if (ek_found)
{
var newButton = document.createElement('a');
// atrybuty
newButton.appendChild(document.createTextNode(" _z eka_ "));
newButton.onclick = new Function('insert_delete_reason("z eka: ' + escape_reason(ek_found[1]) + '")');
// dodanie przycisku
document.getElementById('del_general').lastChild.appendChild(newButton);
}
var tw_found = defaultReason.match(/\{\{tworzone\|(?:1=)?(.+?)(?:\}\}|$)/);
if (tw_found)
{
var newButton = document.createElement('a');
// atrybuty
newButton.appendChild(document.createTextNode(" _z tworzonego_ "));
newButton.onclick = new Function('insert_delete_reason("z tworzonego: ' + escape_reason(tw_found[1]) + '")');
// dodanie przycisku
document.getElementById('del_general').lastChild.appendChild(newButton);
}
var bodyContent = document.getElementById('bodyContent');
var deletionlog = document.getElementById('mw-article-delete-deletionlog');
if (del_max_versions > 0)
{
var history_h2 = document.createElement('h2');
history_h2.innerHTML = 'Historia i autorzy <span style="font-size: x-small;">(ostatnie ' + del_max_versions + ')</span>';
bodyContent.insertBefore(history_h2, deletionlog);
var history_div = document.createElement('div');
history_div.id = 'history_div';
history_div.innerHTML="<b>Wczytywanie historii zmian...</b>";
bodyContent.insertBefore(history_div, deletionlog);
wpajax.http({url:mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?limit=' + del_max_versions + '&title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=history', onSuccess: del_getHist, message: wgPageName });
}
// na razie skrypt nie pobiera stron odwołoujących się do obrazka
if (wgNamespaceNumber == 6)
return;
if (del_max_links > 0)
{
var links_h2 = document.createElement('h2');
links_h2.innerHTML = 'Linkujące <span style="font-size: x-small;">(pierwsze ' + del_max_links + ')</span>';
bodyContent.insertBefore(links_h2, deletionlog);
var links_div = document.createElement('div');
links_div.id = 'links_div';
links_div.innerHTML="<b>Wczytywanie linkujących...</b>";
bodyContent.insertBefore(links_div, deletionlog);
wpajax.http({url:mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?limit=' + del_max_links + '&title=Specjalna:Linkuj%C4%85ce/' + encodeURIComponent(mw.config.get('wgPageName')), onSuccess: del_getLinks, message: wgPageName });
}
});
function insert_delete_reason(reason)
{
var element = document.getElementById('wpReason');
element.value = reason;
if (del_hardcore)
{
element.form.submit();
}
}