Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
mNo edit summary
mNo edit summary
 
Line 62: Line 62:
           var $preview=$('<textarea readonly>').css({width:'100%',height:'150px'}).val(wikitext);
           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);
           $('#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';
           var url='https://meta.wikioasis.org/wiki/'+encodeURIComponent(targetTitle)+'?veaction=editsource';
           window.open(url,'_blank');
           window.open(url,'_blank');
           mw.notify('Redirecting to Meta in a new tab. Please paste your report there.',{type:'info'});
           mw.notify('Redirecting to Meta in a new tab. Please paste your report there.',{type:'info'});

Latest revision as of 03:01, 30 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.wikioasis.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.