User:DarkMatterMan4500/StatusChanger.js: Difference between revisions
From WikiOasis Meta
More actions
Created page with "//////////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}} // compatible with {{Statustop}} for display" |
mNo edit summary |
||
| Line 6: | Line 6: | ||
// Modified by APerson for compatibility with {{UserStatus}} | // Modified by APerson for compatibility with {{UserStatus}} | ||
// compatible with {{Statustop}} for display | // compatible with {{Statustop}} for display | ||
$.when( | |||
$.ready, | |||
mw.loader.using( [ "mediawiki.api" ] ) | |||
).then( function () { | |||
// create variable to store configuration | |||
if (typeof(statusChangerConfig) == 'undefined') { | |||
statusChangerConfig = {} | |||
} | |||
// check for configuration options, and set them to default values if | |||
// they're undefined | |||
if (typeof(statusChangerConfig.statusList) == 'undefined') { | |||
statusChangerConfig.statusList = [ 'online', 'offline', 'sleeping' ]; | |||
} | |||
if (typeof(statusChangerConfig.statusPage) == 'undefined') { | |||
statusChangerConfig.statusPage = 'User:' + mw.config.get('wgUserName') + '/Status'; | |||
} | |||
function makeListener(newStatus) { | |||
return function ( evt ) { | |||
evt.preventDefault(); | |||
var api = new mw.Api({ | |||
ajax: { headers: { 'Api-User-Agent': '[[w:User:Enterprisey/StatusChanger.js]]' } } | |||
}); | |||
api.postWithEditToken({ | |||
action: 'edit', | |||
title: statusChangerConfig.statusPage, | |||
text: newStatus, | |||
summary: mw.config.get('wgUserName') + " is now " + ((newStatus === "sleep") ? "sleeping" : newStatus) + "." | |||
}).then(function(){ | |||
api.post( { action: "purge", titles: 'User:' + mw.config.get('wgUserName') } ); | |||
mw.notify('Done setting status!'); | |||
}); | |||
return false; | |||
}; | |||
} | |||
//Add the links | |||
for (var i=0; i<statusChangerConfig.statusList.length; i++) { | |||
var stat = statusChangerConfig.statusList[i]; | |||
var message = (stat === "sleeping") ? link = "asleep" : link = stat; | |||
mw.util.addPortletLink( | |||
"p-personal", //target tab - personal links | |||
"#", | |||
stat, //link text | |||
"pt-status-" + stat, //id of new button | |||
"I'm " + message + "!", //hover text | |||
"", // access key - no need to define one | |||
document.getElementById("pt-logout")) //add before logout button | |||
.addEventListener('click',makeListener(stat)); | |||
} | |||
}); | |||
//[[Category:Wikipedia scripts|statusChanger]] | |||
Latest revision as of 18:16, 5 May 2026
//////////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}}
// compatible with {{Statustop}} for display
$.when(
$.ready,
mw.loader.using( [ "mediawiki.api" ] )
).then( function () {
// create variable to store configuration
if (typeof(statusChangerConfig) == 'undefined') {
statusChangerConfig = {}
}
// check for configuration options, and set them to default values if
// they're undefined
if (typeof(statusChangerConfig.statusList) == 'undefined') {
statusChangerConfig.statusList = [ 'online', 'offline', 'sleeping' ];
}
if (typeof(statusChangerConfig.statusPage) == 'undefined') {
statusChangerConfig.statusPage = 'User:' + mw.config.get('wgUserName') + '/Status';
}
function makeListener(newStatus) {
return function ( evt ) {
evt.preventDefault();
var api = new mw.Api({
ajax: { headers: { 'Api-User-Agent': '[[w:User:Enterprisey/StatusChanger.js]]' } }
});
api.postWithEditToken({
action: 'edit',
title: statusChangerConfig.statusPage,
text: newStatus,
summary: mw.config.get('wgUserName') + " is now " + ((newStatus === "sleep") ? "sleeping" : newStatus) + "."
}).then(function(){
api.post( { action: "purge", titles: 'User:' + mw.config.get('wgUserName') } );
mw.notify('Done setting status!');
});
return false;
};
}
//Add the links
for (var i=0; i<statusChangerConfig.statusList.length; i++) {
var stat = statusChangerConfig.statusList[i];
var message = (stat === "sleeping") ? link = "asleep" : link = stat;
mw.util.addPortletLink(
"p-personal", //target tab - personal links
"#",
stat, //link text
"pt-status-" + stat, //id of new button
"I'm " + message + "!", //hover text
"", // access key - no need to define one
document.getElementById("pt-logout")) //add before logout button
.addEventListener('click',makeListener(stat));
}
});
//[[Category:Wikipedia scripts|statusChanger]]