//////////STATUS CHANGER
// Creator: Misza13
// Credits: Voyagerfan5761 for some minor improvements
// Modified by Xenocidic to simply use /Status as a one word indicator,
// Modified by Kraftlos to include Sleep status
// Modified by APerson for compatibility with {{UserStatus}}
// Modified by Vukky to use Morebits and the MediaWiki API instead of cluttering the page with portlets
// Some code from Twinkle modules
$(function (){
//Check if the config is defined
if (typeof(statusChangerConfig) == 'undefined') {
statusChangerConfig = {}
}
if (typeof(statusChangerConfig.statusList) == 'undefined') {
statusChangerConfig.statusList = [ 'online', 'offline', 'sleeping' ];
}
if (typeof(statusChangerConfig.statusPage) == 'undefined') {
statusChangerConfig.statusPage = 'User:' + mw.config.get('wgUserName') + '/Status';
}
mw.util.addPortletLink(
"p-personal", //target tab - personal links
"#", //link URL
"Status", //link text
"pt-status", //id of new button
"Change your status", //hover text
"", //???
document.getElementById("pt-logout")); //add before logout button
$("#pt-status").click(function (){
var Window = new Morebits.simpleWindow(600, 500);
Window.setTitle('Change your status');
Window.setScriptName('StatusChanger');
Window.display();
var form = new Morebits.quickForm(publish);
var categories = form.append({
type: 'select',
name: 'status',
label: 'Select your status:'
});
for (var i = 0; i < statusChangerConfig.statusList.length; ++i) {
categories.append({
type: 'option',
label: statusChangerConfig.statusList[i],
value: statusChangerConfig.statusList[i]
});
}
form.append({ type: 'submit' });
var result = form.render();
Window.setContent(result);
Window.display();
function publish(e){
var form = e.target;
var status = form.status.value;
Morebits.simpleWindow.setButtonsEnabled(false);
Morebits.status.init(form);
Morebits.wiki.actionCompleted.notice = 'Status set!';
var statusPage = new Morebits.wiki.page(statusChangerConfig.statusPage, 'Processing');
statusPage.setFollowRedirect(true);
statusPage.load(function() {
statusPage.getStatusElement().status('Setting status');
if(statusPage.getPageText() == status) {
statusPage.getStatusElement().error('Your status is already ' + status + '.');
return;
}
statusPage.setEditSummary(mw.config.get('wgUserName') + ' set their status to "' + status + '".');
statusPage.setPageText(status);
statusPage.save();
});
}
});
});
// [[Category:Wikipedia scripts]]