/*UNTESTED SCRIPT PLEASE BE CAREFUL
It will pop up an error on every page load. I have given up fixing it.
*/
( function($, mw) {
//Thank you [[User:The Transhumanist/SearchSuite.js]] for explaining script error
//some Code from [[Wikipedia:User_scripts/Guide]]
var page = getPname();
var listAddress = "User:"+mw.config.get('wgUserName')+"/Reading list";
var pages = "[["+ page+"]]";
/* function getUserName(){// [[Wikipedia:WikiProject User scripts/Scripts/Get user name]]
switch (wgCanonicalNamespace) {
case 'User': case 'User_talk': return wgTitle.split('/')[0];
default: return null;
}
}*/
function getPname() { //thank you [[Wikipedia:WikiProject User scripts/Scripts/Get Page Name]]
return mw.config.get('wgPageName').replace(/_/g, ' ');
}
function listAdd() {
/*if (wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk") {
return();
}*/
var newElement = mw.util.addPortletLink("p-cactions", '', "Add to reading list", "ca-readinglist", "Add to your reading list");
$(newElement).on( 'click', function(e){
e.preventDefault();
editPage( {
title: listAddress,
text: pages,
summary: "adding to reading list [[User:Bardic Wizard/reading list sync.js|using script]]"}
);
} );
}
// Edit page (must be done through POST)
// the line "text: info.text," will cause the call
// to replace entire page content with supplied data.
// alternatively, one can append or prepend the data to the page, by using
// "appendtext: info.text," or "prependtext: info.text," instead.
// when using "appendtext", it is possible to append the text to a specific section,
// by setting the optional field "section".
function editPage( info ) {
var api = new mw.Api();
api.postWithToken( 'edit', {
action: 'edit',
title: info.title,
appendtext: info.text, // will replace entire page content
summary: info.summary
})
.done (function( data ) {
if ( data && data.edit && data.edit.result && data.edit.result == 'Success' ) {
alert( 'Page edited!' );
} else {
alert( 'The edit query returned an error. =(' );
}
})
.fail ( function() {
alert( 'The ajax request failed.' );
});
}
$.when( $.ready, mw.loader.using( [
'mediawiki.util',
'user.options',
'mediawiki.api'
])).done(listAdd);
} ) ( jQuery, mediaWiki );