Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

User:DarkMatterMan4500/ReportSRG.js: Difference between revisions

From WikiOasis Meta
Created page with "//<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/Global'); $('#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..."
 
mNo edit summary
 
Line 48: Line 48:
         var targetTitle='Steward requests/Global';
         var targetTitle='Steward requests/Global';


         if(mw.config.get('wgServer').includes('meta.miraheze.org')){
         if(mw.config.get('wgServer').includes('meta.wikioasis.org')){
           // On Meta: submit directly
           // On Meta: submit directly
           var api=new mw.Api();
           var api=new mw.Api();

Latest revision as of 15:06, 29 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/Global');
    $('#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/Global';

        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) ([[:dev:User:PB2008/ReportSRG|ReportSRG]]'});
            mw.notify('Report successfully submitted to Steward requests/Global 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.