User:Bosco/ReportSRG.js: Difference between revisions
From WikiOasis Meta
More actions
report users to SRG to req lock |
mNo edit summary |
||
| Line 52: | Line 52: | ||
var api=new mw.Api(); | var api=new mw.Api(); | ||
try{ | try{ | ||
await api.postWithEditToken({action:'edit',title:targetTitle,appendtext:'\n'+wikitext+'\n',summary:'Reporting user(s) for global lock'}); | await api.postWithEditToken({action:'edit',title:targetTitle,appendtext:'\n'+wikitext+'\n',summary:'Reporting user(s) for global lock) ([[User:Bosco/ReportSRG.js|ReportSRG]]'}); | ||
mw.notify('Report successfully submitted to Steward requests on Meta',{type:'success'}); | mw.notify('Report successfully submitted to Steward requests on Meta',{type:'success'}); | ||
}catch(e){ | }catch(e){ | ||
Latest revision as of 05:07, 25 May 2026
//<nowiki>
mw.loader.using(['mediawiki.api','mediawiki.util'],function(){
$(function(){
mw.util.addPortletLink('p-personal','#','Global Lock Report','pt-global-lock-report','Report user(s) to Steward requests');
$('#pt-global-lock-report').on('click',function(e){
e.preventDefault();
var $form=$('<div id="globalLockForm">').css({padding:'1em',border:'1px solid #ccc',background:'#f9f9f9'});
$form.append('<h3>Report user(s) for global lock</h3>');
$form.append('<label>Section title: </label><input id="reportTitle" style="width:300px" placeholder="Username of user being locked"><br><br>');
var $userContainer=$('<div id="userContainer">');$form.append($userContainer);
$form.append('<button id="addUser">Add another username</button><br><br>');
$form.append('<label>Reason: </label><input id="reason" style="width:300px" placeholder="Include your reason here"><br><br>');
$form.append('<button id="submitReport">Submit report</button> <button id="cancelReport">Cancel</button>');
$('#mw-content-text').prepend($form);
function addUserField(){
if($('#userContainer .userRow').length>=10){alert('MultiLock supports at most 10 usernames.');return;}
var $row=$('<div class="userRow">').css({margin:'5px 0'});
$row.append('<input class="username" style="width:200px" placeholder="username"> ');
$row.append('<label><input type="checkbox" class="hideName"> Hide?</label>');
$userContainer.append($row);
}
addUserField();
$('#addUser').click(function(ev){ev.preventDefault();addUserField();});
$('#submitReport').click(async function(){
var title=$('#reportTitle').val().trim();
var reason=$('#reason').val().trim()||'No reason provided';
var users=[];
$('#userContainer .userRow').each(function(){
var uname=$(this).find('.username').val().trim();
var hide=$(this).find('.hideName').is(':checked');
if(uname)users.push({name:uname,hide:hide});
});
if(!title||users.length===0){alert('Please fill in the title and at least one username.');return;}
var wikitext='== '+title+' ==\n{{status}}\n';
if(users.length===1){
var u=users[0];
wikitext+='*{{LockHide|'+u.name+(u.hide?'|hidename=1':'')+'}}\n';
}else{
users.forEach(function(u){
wikitext+='*{{MultiLock|'+u.name+(u.hide?'|hidename=1':'')+'}}\n';
});
}
wikitext+='*:'+reason+' ~~~~';
var targetTitle='Steward requests';
if(mw.config.get('wgServer').includes('meta.wikioasis.org')){
// On Meta: submit directly
var api=new mw.Api();
try{
await api.postWithEditToken({action:'edit',title:targetTitle,appendtext:'\n'+wikitext+'\n',summary:'Reporting user(s) for global lock) ([[User:Bosco/ReportSRG.js|ReportSRG]]'});
mw.notify('Report successfully submitted to Steward requests on Meta',{type:'success'});
}catch(e){
console.error(e);
mw.notify('Error submitting report: '+e.toString(),{type:'error'});
}
}else{
// On non‑Meta: show the wikitext and redirect to Meta source editor
var $preview=$('<textarea readonly>').css({width:'100%',height:'150px'}).val(wikitext);
$('#globalLockForm').append('<h4>Copy this wikitext and paste it on Meta:</h4>').append($preview);
var url='https://meta.miraheze.org/wiki/'+encodeURIComponent(targetTitle)+'?veaction=editsource';
window.open(url,'_blank');
mw.notify('Redirecting to Meta in a new tab. Please paste your report there.',{type:'info'});
}
});
$('#cancelReport').click(function(){$('#globalLockForm').remove();});
});
});
});
//</nowiki>