//<nowiki>
$(function (){
var CC_config = {
name: '[[User:DannyS712/Copy categories|Copy categories.js]]',
version: 1.0,
debug: true
};
var CC_summary = 'Correct name parameter with ' + CC_config.name + ' (version ' + CC_config.version + ')';
var scriptUrl = mw.config.get( 'wgScriptPath' ) + '/api.php';
mw.loader.using( 'mediawiki.util', function () {
$(document).ready( function () {
mw.util.addPortletLink ( 'p-cactions', 'javascript:void(0)', 'Copy categories', 'cat-copy', 'TOOLTIP');
$('#cat-copy').on('click', function() {
Copy_categories();
} );
} );
} );
function Copy_categories(){
var name = mw.config.get( 'wgPageName' );
var base_page = name.replace(/Portal:/, "");
var base_categories = get_cats ( base_page );
if (CC_config.debug) console.log ( base_categories );
var current_portal = get_page( name );
if (CC_config.debug) console.log ( current_portal );
//set_new ( name, new_page );
}
function get_cats( name ){
var page_to_get = {
action: 'query',
titles: name,
prop: 'categories',
cllimit: 'max',
clshow: '!hidden',
format: 'json',
formatversion: 2
};
var result = null;
$.ajax({
url: scriptUrl,
type: 'get',
data: page_to_get,
dataType: 'json',
async: false,
success: function(cats) {
if (CC_config.debug) console.log( cats );
var partial_result = cats.query.pages["0"].categories;
var categories = [];
for (var iii = 0; iii < partial_result.length; iii++){
categories.push(partial_result[iii].title);
}
console.log( categories );
result = categories;
}
});
return result;
}
function get_page( name ){
var page_to_get = {
action: 'query',
titles: name,
prop: 'revisions',
rvprop: 'content',
format: 'json',
formatversion: 2
};
var result = null;
$.ajax({
url: scriptUrl,
type: 'get',
data: page_to_get,
dataType: 'json',
async: false,
success: function(page) {
if (CC_config.debug) console.log( page );
result = page.query.pages["0"].revisions["0"].content;
if (CC_config.debug) console.log( result );
}
});
return result;
}
function set_new ( page, new_content ){
console.log( page, new_content );
var to_send = {
action: 'edit',
title: page,
text: new_content,
minor: true,
summary: CC_summary,
token: mw.user.tokens.get( 'csrfToken' )
};
console.log( to_send );
$.when(
$.post( scriptUrl, to_send, function( response ){ } )
).done( function() {
location.reload();
} );
}
});
//</nowiki>