MediaWiki:Gadget-DeletePage.js
OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.
- Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
- Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
- Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
- Opera: Tryck Ctrl-F5.
$( function() {
'use strict';
var title = 'Delete the page';
var content = $( '#mw-content-text' );
var templatedelete = content.find( '.radera' ).first();
var templatehangon = content.find( '.laatvara' );
var comment;
var commenttext;
var frag = /<a href="\/wiki\/([^"#\n]+)#([^"#\n]+)?"(?: class="mw-redirect")? title="[^"\n]+">([^<>]+)<\/a>/;
var noFrag = /<a href="\/wiki\/([^"#\n]+)"(?: class="mw-redirect")? title="[^"\n]+">([^<>]+)<\/a>/;
var html;
var obj = {
action: 'delete',
title: mw.config.get( 'wgPageName' )
};
var tagName = 'deletepage';
if ( mw.config.get( 'wgUserLanguage' ) === 'sv' ) {
title = 'Radera sidan';
}
if ( templatedelete.length && !templatehangon.length ) {
comment = templatedelete.find( '.radera-kommentar' ).first();
if ( comment.length ) {
if ( comment.find( 'a' ).length === 1 ) {
html = $( '.radera-kommentar' ).html();
if ( frag.test( html ) ) {
commenttext = html.replace( frag, function( match, p1, p2, p3, offset, string ) {
var decodedp1 = decodeURIComponent( p1 );
var prettifiedDecodedp1 = decodedp1.replace( /_/g, ' ' );
var prettifiedp2 = p2.replace( /_/g, ' ' );
if ( prettifiedDecodedp1 + '#' + prettifiedp2 === p3 ) {
return '[[' + p3 + ']]';
}
return '[[' + prettifiedDecodedp1 + '#' + prettifiedp2 + '|' + p3 + ']]';
} );
} else {
commenttext = html.replace( noFrag, function( match, p1, p2, offset, string ) {
var decodedp1 = decodeURIComponent( p1 );
var prettifiedDecodedp1 = decodedp1.replace( /_/g, ' ' );
if ( prettifiedDecodedp1 === p2 ) {
return '[[' + p2 + ']]';
}
return '[[' + prettifiedDecodedp1 + '|' + p2 + ']]';
} );
}
} else {
commenttext = comment.text();
}
if ( commenttext ) {
obj.reason = 'Snabbradering med motivering: ' + commenttext;
}
}
if ( mw.config.get( 'skin' ) === 'vector-2022' ) {
$( '.mw-watchlink' ).first().after( '<li id="gadget-deletepage" class="mw-list-item"><a href="#" title="' + title + '"><img src="//upload.wikimedia.org/wikipedia/commons/a/a7/Trash_Can.svg" height="20" class="mw-ui-button mw-ui-icon mw-ui-quiet mw-ui-icon-element"></a></li>' );
} else {
$( '.mw-watchlink' ).first().after( '<li id="gadget-deletepage" class="mw-list-item"><a href="#" title="' + title + '"><img src="//upload.wikimedia.org/wikipedia/commons/a/a7/Trash_Can.svg" height="20"></a></li>' );
}
$( '#gadget-deletepage' ).find( 'a' ).click( function( e ) {
e.preventDefault();
var api = new mw.Api();
function deletePage() {
api.postWithToken( 'csrf', obj ).done( function() {
location.reload();
} );
}
api.get( {
action: 'query',
list: 'tags',
tglimit: 'max',
tgprop: [
'active',
'defined',
'source'
],
formatversion: 2
} ).done( function( tagsres ) {
var query = tagsres.query;
var tags;
function hasTag( tagobj ) {
return tagobj.name === tagName && tagobj.defined && tagobj.active && tagobj.source.indexOf( 'manual' ) !== -1;
}
if ( query ) {
tags = query.tags;
if ( tags && Array.isArray( tags ) ) {
if ( tags.some( hasTag ) ) {
obj.tags = tagName;
}
}
}
deletePage();
} ).fail( function() {
deletePage();
} );
} );
}
} );