--=REKLAMA=--
Uwaga: aby zobaczyć zmiany po zapisaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
// <nowiki> // UWAGA! Z tego gadżetu korzystają także inne projekty (Wikisłownik, Wikiźródła) // Style CSS → [[Mediawiki:Common.css]] ↓ // .userSummaryButtons window.del$talkNamespace = /(?:talk$|^dyskusja)/i; window.del$redirect = /#(?:REDIRECT|PATRZ|PRZEKIERUJ|TAM)(?:\s*\[\[(.+?)(\|.*?)?\]\])?/i; window.del$speedy = /\{\{(?:ek|delete|speedy)\|(?:1=)?(.+?)(?:\}\}|$)/i; window.del$nowCommons = /\{\{(?:NowCommons|Do commons)\|(?:1=)?(?:Plik:|File:|Image:|Grafika:)?(.+?)\}\}/i; // --------------------------------------------------------- // Ustawienia - linkujące oraz historia // --------------------------------------------------------- // del_max_links - maksymalna liczba pobieranych linkujących, 0 - nie pobiera // del_max_versions - maksymalna liczba pobieranych wpisów z historii, 0 - nie pobiera // del_hardcore - czy włączony jest tryb hardcode? // del_talk_highlight - czy włączone jest podświetlanie linku do strony dyskusji // --------------------------------------------------------- window.deleteGadget = { version: 3, loadingLinks: '<b>Wczytywanie linkujących...</b>', loadingHistory: '<b>Wczytywanie historii zmian...</b>', noLinks: '<span style="color: green; font-size: larger; font-weight:bold">Brak linkujących</span>', linksRedirect: 'strona przekierowująca', linksEmbedded: 'dołączony szablon', linksHeader: 'Linkujące <span style="font-size: x-small;">(pierwsze $1)</span>', historyHeader: 'Historia i autorzy <span style="font-size: x-small;">(ostatnie $1)</span>', showAllCaption: 'pokaż wszystkie', processLinks: function(data) { var pages = new Array(); for (var id in data.query.embeddedin) { var page = data.query.embeddedin[id]; page.embedded = true; pages.push( page ); } for (var id in data.query.backlinks) { var page = data.query.backlinks[id]; pages.push( page ); } this.addLinks(pages); }, processImageUsage: function(data) { var pages = new Array(); for (var id in data.query.imageusage) { var page = data.query.imageusage[id]; pages.push( page ); } this.addLinks(pages); }, addLinks: function(list) { var container = document.getElementById( 'links_content' ); if (list.length > 0) { var ul = document.createElement('ul'); var limit = list.length; if (limit > this.maxLinks) limit = this.maxLinks; for (var i = 0; i < limit; i++) { var page = list[i]; var li = document.createElement('li'); var link = document.createElement('a'); link.title = page.title; link.href = mw.util.wikiGetlink(page.title); link.appendChild( document.createTextNode(page.title) ); li.appendChild(link); var sufix = new Array(); if (typeof(page.redirect) != 'undefined') sufix.push(this.linksRedirect); if (page.embedded) sufix.push(this.linksEmbedded); if (sufix.length) li.appendChild( document.createTextNode(" (" + sufix.join(', ') + ")")); ul.appendChild(li); } container.innerHTML = ''; container.appendChild(ul); return; } container.innerHTML = this.noLinks; }, createButtons: function(parentNode, buttonArray) { var that = this; for (var i = 0; i < buttonArray.length; i++) { var button = buttonArray[i]; // sprawdzenie czy przycisk ma zostać dodany if (button.visibility && !button.visibility()) continue; var newButton = document.createElement('a'); // atrybuty newButton.title = button.reason; if (button.callback) { newButton.onclick = button.callback; } else { newButton.onclick = function() { that.insertReason(this.title) }; } newButton.appendChild(document.createTextNode(button.caption)); // dodanie przycisku parentNode.appendChild(newButton); } }, createGroup: function(name, group) { tr = document.createElement('tr'); tr.id = "del_" + name; td_caption = document.createElement('td'); td_caption.align = 'right'; td_caption.appendChild( document.createTextNode(group.caption) ); tr.appendChild(td_caption); td_buttons = document.createElement('td'); td_buttons.align = 'left'; td_buttons.className = 'userSummaryButtons'; this.createButtons(td_buttons, group.buttons); tr.appendChild(td_buttons); if ( group.visibility() ) { tr.firstChild.style.fontWeight = 'bold'; } else { tr.style.display = 'none'; } return tr; }, showAll: function() { for (var name in del$buttons) { document.getElementById("del_" + name).style.display = ''; } document.getElementById("del_general").cells[0].style.visibility = 'hidden'; }, init: function() { if ( (mw.config.get('wgAction') != "delete" || mw.config.get('wgArticleId') == 0) && mw.config.get('wgCanonicalSpecialPageName') != "Nuke") { return; } this.maxLinks = (typeof(del_max_links) == 'undefined') ? 10 : del_max_links; this.maxRevisions = (typeof(del_max_versions) == 'undefined') ? 5 : del_max_versions; this.hardcore = (typeof(del_hardcore) == 'undefined') ? false : del_hardcore; this.talkHighlight = (typeof(del_talk_highlight) == 'undefined') ? true : del_talk_highlight; this.defaultReason = ''; var catalk = document.getElementById('ca-talk'); if ( this.talkHighlight && catalk && catalk.className == '') { catalk.style.textDecoration = 'blink'; catalk.firstChild.style.backgroundColor = 'orange'; } var wpReason = document.getElementById('wpReason'); if ( wpReason ) { wpReason.parentNode.align = "left"; wpReason.style.width = "100%"; this.defaultReason = wpReason.value; var p = new RegExp('(\\?|&)wpReason='); if (!p.exec(window.location)) { wpReason.value = ''; } } else { return; } var table; var tr_watch; if (mw.config.get('wgCanonicalSpecialPageName') == "Nuke") { var label = wpReason.form.getElementsByTagName("label"); if (!label.length) { return; } table = document.createElement("table"); var row = document.createElement("tr"); var tdLabel = document.createElement("td"); tdLabel.appendChild( document.createTextNode( getInnerText(label[0]) ) ); row.appendChild(tdLabel); var tdReason = document.createElement("td"); tdReason.appendChild(wpReason); row.appendChild(tdReason); table.appendChild(row); label[0].parentNode.insertBefore(table, label[0]); label[0].parentNode.removeChild(label[0]); } else if (mw.config.get('wgNamespaceNumber') == 6 && !document.getElementById('wpConfirmB')) { var mwfiledeletesubmit = document.getElementById('mw-filedelete-submit'); tr_watch = mwfiledeletesubmit.parentNode.parentNode; table = tr_watch.parentNode; } else { var wpWatch = document.getElementById('wpWatch'); if (wpWatch) { tr_watch = wpWatch.parentNode.parentNode; table = tr_watch.parentNode; } } for (var name in del$buttons) { var group = del$buttons[name]; var new_tr = this.createGroup(name, group); if (name == 'general') { var newButton = document.createElement('a'); // atrybuty newButton.appendChild(document.createTextNode(this.showAllCaption)); newButton.onclick = this.showAll; newButton.style.cursor = 'pointer'; // dodanie przycisku new_tr.firstChild.appendChild(newButton); // przywróć normalny styl new_tr.firstChild.style.fontWeight = 'normal'; } if (tr_watch) { table.insertBefore(new_tr, tr_watch); } else { table.appendChild(new_tr); } } if (mw.config.get('wgCanonicalSpecialPageName') == "Nuke") { return; } var bodyContent = document.getElementById('bodyContent'); var deletionlog = document.getElementById('mw-article-delete-deletionlog'); if (this.maxRevisions > 0) { var history_header = document.createElement('h2'); history_header.innerHTML = this.historyHeader.replace('$1', this.maxRevisions); bodyContent.insertBefore(history_header, deletionlog); var history_content = document.createElement('div'); history_content.id = 'history_content'; history_content.innerHTML = this.loadingHistory; bodyContent.insertBefore(history_content, deletionlog); jQuery( '#history_content' ).load( mw.config.get('wgServer') + mw.config.get('wgScript') + '?limit=' + this.maxRevisions + '&title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&action=history #mw-history-compare' ); } if (this.maxLinks > 0) { var links_header = document.createElement('h2'); links_header.innerHTML = this.linksHeader.replace('$1', this.maxLinks); bodyContent.insertBefore(links_header, deletionlog); var links_content = document.createElement('div'); links_content.id = 'links_content'; links_content.className = 'plainlinks'; links_content.innerHTML = this.loadingLinks; bodyContent.insertBefore(links_content, deletionlog); var that = this; if (mw.config.get('wgNamespaceNumber') == 6) { // file var request = { action: 'query', list: 'imageusage', iulimit: this.maxLinks, iutitle: mw.config.get('wgPageName'), format: 'json', requestid: new Date().getTime() }; jQuery.getJSON( mw.config.get( 'wgScriptPath' ) + '/api.php', request, function(result) { that.processImageUsage(result); }); } else { var request = { action: 'query', list: 'backlinks|embeddedin', bllimit: this.maxLinks, bltitle: mw.config.get('wgPageName'), eilimit: this.maxLinks, eititle: mw.config.get('wgPageName'), format: 'json', requestid: new Date().getTime() }; jQuery.getJSON( mw.config.get( 'wgScriptPath' ) + '/api.php', request, function(result) { that.processLinks(result); }); } } }, insertReason: function(reason) { var element = document.getElementById('wpReason'); element.value = reason; if (this.hardcore) { element.form.submit(); } }, insertReasonEx: function(reason, reasonFormat, regex) { var matches = this.defaultReason.match(regex); if (matches && matches.length > 1 && typeof(matches[1]) != 'undefined') { return this.insertReason(reasonFormat.replace('$1', matches[1])); } else { return this.insertReason(reason); } } } jQuery(document).ready(function() { deleteGadget.init() });