User:Dalton2/FindRedirectsForAliases.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// Encuentra una lista de redirecciones, permitiendo al usuario seleccionar algunas de ellas para añadirlas como alias.
// El botón "Encontrar redirecciones" aparece situado en el submenú que hay junto a la caja de búsqueda.
$( function( $ ){
if( mw.config.get('wgNamespaceNumber') != 0 ){return}
var wgUserLanguage = mw.config.get('wgUserLanguage');
var link = $(".wb-sitelinks-link-"+wgUserLanguage+" a");
if( link.length == 0 ){return}
function addAliasesFromRedirects(){
mw.util.addCSS(".YRRedirectsToAdd{float: left; white-space: nowrap; border: 1px solid #AAA; border-radius: 3px; cursor: pointer; background-color: #FFF; padding: 2px 5px; margin: 2px; }.YRRedirectsToAdd:hover{ background-color: #F0F6FF; box-shadow: 0px 0px 5px #CCC inset; }.YRRedirectsToAdd.selected{ border-color:#0CC; }")
var url = "//"+wgUserLanguage+".wikipedia.org/";
mw.loader.using( ['jquery.ui'], function() {
var $dialog = $("<div>").text("Cargando...").dialog({
title: "Añadir alias desde redirecciones",
autoOpen: true
});
function error(e) {
$dialog.empty().append( $("<span>",{css:{color:"#F00"},text:"Error: "+e}));
}
$.ajax({
url: url + "w/api.php",
dataType: 'jsonp',
data: {
format: 'json',
action: 'query',
bltitle: link.text(),
list: 'backlinks',
blfilterredir: 'redirects',
blnamespace: 0,
bllimit: 500
},
success: function( result ){
result = result.query.backlinks;
if( result.length == 0 ){
// no se han encontrado resultados
$dialog.text("No se han encontrado redirecciones.");
return;
}
var selected = {};
$dialog
.text("Selecciona las redirecciones a añadir como alias: ")
.append($("<hr>"))
.dialog({buttons:{"Añadir":function(){
var toAdd = [];
for( var i in selected ){
selected[ i ] && toAdd.push( i );
}
if( toAdd.length == 0 ){
return;
}
$.ajax({
type: 'POST',
url: mw.util.wikiScript( 'api' ),
data: {
format: 'json',
action: 'wbsetaliases',
id: mw.config.get("wbItemId"),
token: mw.user.tokens.get( 'csrfToken' ),
add: toAdd.join( "|" ),
language: wgUserLanguage
},
success: function(){
location.reload();
},
error: error
})
$dialog.dialog({buttons:{}}).text("Cargando...");
}}});
for(var i = 0; i < result.length; i++) {
( function ( r ) {
selected[ r ] = false;
$dialog.append(
$( "<span>" )
.addClass("YRRedirectsToAdd")
.text( r )
.on( "click", function(){
$( this )[ (selected[ r ] = !selected[ r ])?'addClass':'removeClass']( "selected" );
})
)
})( result[ i ].title )
}
},
error: error
})
})
}
$( mw.util.addPortletLink( 'p-cactions', '#', 'Encontrar redirecciones', null, 'Añadir alias desde las redirecciones de Wikipedia' ) ).on( "click", addAliasesFromRedirects );
})