MediaWiki:ListDeleteRequests.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// <nowiki>
// Styles in Wikivoyage:Löschanträge/styles.css
( function ( mw, $ ) {
// check whether mediawiki and jquery is defined
if ( typeof ( mw ) == 'object' && typeof ( $ ) == 'function' ) {
// check Pagename
var pageName = mw.config.get ( 'wgPageName' );
var groups = mw.config.get ( 'wgUserGroups' );
// working only on page: Wikivoyage:Löschanträge
if ( pageName === 'Wikivoyage:Löschanträge' ) {
// URL of the API
var apiURL = 'https:' + mw.config.get ( 'wgServer' ) + mw.config.get ( 'wgScriptPath' ) + '/api.php';
// removing edit buttons on sections
$('.mw-editsection').remove();
// saving the overdue articles
var overdueList = [];
// List of pages not to be listed
var notOnList = [];
notOnList['Kategorie:Aktuelle Löschanträge/Antragsseiten'] = 'no';
notOnList['Kategorie:Überfällige Löschanträge/Antragsseiten'] = 'no';
// Getting list of overdue deletion requests
$.ajax({
url: apiURL,
data: {
format : 'json',
action : 'query',
list : 'categorymembers',
cmlimit : '500',
cmtitle : 'Kategorie:Überfällige Löschanträge',
origin: '*'
},
method : 'POST',
dataType: 'json',
error: function() {
// Error: Pages not created
},
success: function(data) {
// List the articles
var entry = '';
var discussion = '';
for ( var i = 0; i < data.query.categorymembers.length; i++ ) {
// Check if not in exclude list
if ( !(data.query.categorymembers[i].title in notOnList) ) {
// Activating the heading and list
$('#voy-list-overdue-delete-requests-heading-'+data.query.categorymembers[i].ns).css('display','block');
$('#voy-list-overdue-delete-requests-'+data.query.categorymembers[i].ns).css('display','block');
// saving the page name
overdueList[data.query.categorymembers[i].title] = 0;
// Generating the entry
entry =
'<li data-title="'+data.query.categorymembers[i].title+'" class="voy-list-delete-requests-item voy-list-delete-requests-item-classic">'+
'<span class="voy-list-delete-requests-entry">'+
'<a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a>'+
'</span>';
// Generating Link to Discussion site
if ( data.query.categorymembers[i].ns === 0 ) {
discussion = 'Diskussion:'+data.query.categorymembers[i].title;
} else if ( data.query.categorymembers[i].ns === 3 ) {
discussion = data.query.categorymembers[i].title.replace( /Benutzer Diskussion(:.*)/ig, 'Benutzer$1' );
} else {
discussion = data.query.categorymembers[i].title.replace( /([^:]+)(:.*)/ig, '$1 Diskussion$2' );
}
// Adding link to discussion site and delete request
entry = entry + '<span class="voy-list-delete-requests-entry-links">'+'(';
if ( data.query.categorymembers[i].ns === 3 ) {
entry = entry +'<a href="/wiki/'+encodeURI(discussion)+'" title="Benutzerseite zu '+data.query.categorymembers[i].title+'">Benutzerseite</a>';
} else {
entry = entry +'<a href="/wiki/'+encodeURI(discussion)+'" title="Diskussionsseite von '+data.query.categorymembers[i].title+'">Diskussion</a>';
}
entry = entry + ', '+
'<a href="/wiki/'+encodeURI('Spezial:Linkliste/'+data.query.categorymembers[i].title)+'" title="Auf diese Seiten verlinkt '+data.query.categorymembers[i].title+'">Verlinkungen</a>';
entry = entry + ', '+
'<a href="/wiki/'+encodeURI('Wikivoyage:Löschanträge/'+data.query.categorymembers[i].title)+'" title="Löschantrag für '+data.query.categorymembers[i].title+'">Löschantrag</a>'+
') (';
if ( groups.indexOf('sysop') === -1 ) {
entry = entry + '<a href="https://de.wikivoyage.org/w/index.php?title='+encodeURI(data.query.categorymembers[i].title)+'&action=edit" title="'+data.query.categorymembers[i].title+' bearbeiten">Seite bearbeiten</a>';
} else {
entry = entry + '<a href="https://de.wikivoyage.org/w/index.php?title='+encodeURI(data.query.categorymembers[i].title)+'&action=delete" title="'+data.query.categorymembers[i].title+' löschen">Seite löschen</a>, '+
'<a href="https://de.wikivoyage.org/w/index.php?title='+encodeURI(data.query.categorymembers[i].title)+'&action=edit" title="'+data.query.categorymembers[i].title+' bearbeiten">Seite bearbeiten</a>';
}
entry = entry + ')'+
'</span>'+
'<span class="voy-list-delete-requests-entry-duration"></span>'+
'<br /><p class="voy-list-delete-requests-entry-reason"> </p>'+
'</li>';
$('#voy-list-overdue-delete-requests-'+data.query.categorymembers[i].ns).append(entry);
} // check if not in exclude list
} // loop on result list
// Getting list of current deletion requests
$.ajax({
url: apiURL,
data: {
format : 'json',
action : 'query',
list : 'categorymembers',
cmlimit : '500',
cmtitle : 'Kategorie:Aktuelle Löschanträge',
origin: '*'
},
method : 'POST',
dataType: 'json',
error: function() {
// Error: Pages not created
},
success: function(data) {
// List the articles
var entry = '';
var discussion = '';
for ( var i = 0; i < data.query.categorymembers.length; i++ ) {
// Adding entry only when not in overdue and exclude list
if ( !(data.query.categorymembers[i].title in overdueList) && !(data.query.categorymembers[i].title in notOnList) ) {
// List the item here
$('#voy-list-current-delete-requests-heading-'+data.query.categorymembers[i].ns).css('display','block');
$('#voy-list-current-delete-requests-'+data.query.categorymembers[i].ns).css('display','block');
entry =
'<li data-title="'+data.query.categorymembers[i].title+'" class="voy-list-delete-requests-item voy-list-delete-requests-item-classic">'+
'<span class="voy-list-delete-requests-entry">'+
'<a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a>'+
'</span>';
// Generating Link to Discussion site
if ( data.query.categorymembers[i].ns === 0 ) {
discussion = 'Diskussion:'+data.query.categorymembers[i].title;
} else if ( data.query.categorymembers[i].ns === 3 ) {
discussion = data.query.categorymembers[i].title.replace( /Benutzer Diskussion(:.*)/ig, 'Benutzer$1' );
} else {
discussion = data.query.categorymembers[i].title.replace( /([^:]+)(:.*)/ig, '$1 Diskussion$2' );
}
// Adding link to discussion site and delete request
entry = entry +
'<span class="voy-list-delete-requests-entry-links">'+
'('+
'<a href="/wiki/'+encodeURI(discussion)+'" title="Diskussionsseite von '+data.query.categorymembers[i].title+'">Diskussion</a>'+
', '+
'<a href="/wiki/'+encodeURI('Spezial:Linkliste/'+data.query.categorymembers[i].title)+'" title="Auf diese Seiten verlinkt '+data.query.categorymembers[i].title+'">Verlinkungen</a>'+
', '+
'<a href="/wiki/'+encodeURI('Wikivoyage:Löschanträge/'+data.query.categorymembers[i].title)+'" title="Löschantrag für '+data.query.categorymembers[i].title+'">Löschantrag</a>'+
') (';
if ( groups.indexOf('sysop') === -1 ) {
entry = entry + '<a href="https://de.wikivoyage.org/w/index.php?title='+encodeURI(data.query.categorymembers[i].title)+'&action=edit" title="'+data.query.categorymembers[i].title+' bearbeiten">Seite bearbeiten</a>';
} else {
entry = entry + '<a href="https://de.wikivoyage.org/w/index.php?title='+encodeURI(data.query.categorymembers[i].title)+'&action=delete" title="'+data.query.categorymembers[i].title+' löschen">Seite löschen</a>, '+
'<a href="https://de.wikivoyage.org/w/index.php?title='+encodeURI(data.query.categorymembers[i].title)+'&action=edit" title="'+data.query.categorymembers[i].title+' bearbeiten">Seite bearbeiten</a>';
}
entry = entry + ')'+
'</span>'+
'<span class="voy-list-delete-requests-entry-duration"></span>'+
'<br /><p class="voy-list-delete-requests-entry-reason"> </p>'+
'</li>';
$('#voy-list-current-delete-requests-'+data.query.categorymembers[i].ns).append(entry);
}
}
// Getting the reasons
$('li.voy-list-delete-requests-item-classic').each(function() {
var pageTitle = $(this).attr('data-title');
$.ajax({
url: apiURL,
data: {
format : 'json',
action : 'parse',
page : pageTitle,
origin: '*'
},
type: 'POST',
dataType: 'json',
error: function() {
},
success: function(data) {
console.log(pageTitle);
var match = data.parse.text['*'].match( /<span id="wv-delete-request-reason" data-duration="(.*?)">(.*?)<\/span>/ims );
$('li[data-title="'+pageTitle+'"] span.voy-list-delete-requests-entry-duration').html(match[1]);
$('li[data-title="'+pageTitle+'"] p.voy-list-delete-requests-entry-reason').html(match[2]);
}
});
}); // $('li.voy-list-delete-requests-item-classic').each(function(){})
}
});
}
});
// Getting list of quick deletion requests
$.ajax({
url: apiURL,
data: {
format : 'json',
action : 'query',
list : 'categorymembers',
cmlimit : '500',
cmtitle : 'Kategorie:Schnelllöschen',
origin: '*'
},
method : 'POST',
dataType: 'json',
error: function() {
// Error: Pages not created
},
success: function(data) {
// List the articles
var entry = '';
var discussion = '';
for ( var i = 0; i < data.query.categorymembers.length; i++ ) {
$('#voy-list-quick-delete-requests-heading-'+data.query.categorymembers[i].ns).css('display','block');
$('#voy-list-quick-delete-requests-'+data.query.categorymembers[i].ns).css('display','block');
$('#voy-list-quick-delete-requests-'+data.query.categorymembers[i].ns).append('<li data-title="'+data.query.categorymembers[i].title+'" class="voy-list-delete-requests-item voy-list-delete-requests-item-quick"><a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a></li>');
}
}
});
// Getting list of copyright violations
$.ajax({
url: apiURL,
data: {
format : 'json',
action : 'query',
list : 'categorymembers',
cmlimit : '500',
cmtitle : 'Kategorie:URV',
origin: '*'
},
method : 'POST',
dataType: 'json',
error: function() {
// Error: Pages not created
},
success: function(data) {
// List the articles
for ( var i = 0; i < data.query.categorymembers.length; i++ ) {
$('#voy-list-urv ul').append('<li data-title="'+data.query.categorymembers[i].title+'" class="voy-list-delete-requests-item voy-list-delete-requests-item-classic"><a href="/wiki/'+encodeURI(data.query.categorymembers[i].title)+'" title="'+data.query.categorymembers[i].title+'">'+data.query.categorymembers[i].title+'</a></li>');
}
}
});
} // if ( pageName === 'Wikivoyage:Löschanträge' )
} // if ( typeof ( mw ) == 'object' && typeof ( $ ) == 'function' ) {
} ( mediaWiki, jQuery ) );
// </nowiki>