Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
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>
Cookies help us deliver our services. By using our services, you agree to our use of cookies.