User:Rocket000/monobook.js: Difference between revisions

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Content deleted Content added
No edit summary
No edit summary
Line 1: Line 1:
//<nowiki>
//<nowiki>

window.skipAutodelConfirm=true;


// interwiki-to-VN
// interwiki-to-VN

Revision as of 19:06, 10 July 2012

//<nowiki>

window.skipAutodelConfirm=true;

// interwiki-to-VN
importScript('User:Rocket000/iw2vn.js');

// DR archiver
importScript('User:Lupo/da.js');

// User messages
importScript('User:Lupo/u.js');
  template_autosave=false;

// Quick-delete
importScript('MediaWiki:Quick-delete.js');

if(wgCanonicalNamespace == 'Special' && wgCanonicalSpecialPageName == 'Log'){
  hookEvent('load',
    function(){
      var lks = getElementsByTagNameStatic('a', document.getElementById('bodyContent'));
      DelReqHandler.addDelKeepLinks(lks, false, false, true);
    }
  );
}

// For Cropbot
function addcroplink(){
  if(wgNamespaceNumber == 6){
    if(wgTitle.match(/(.*)\.(jpg|jpeg)/gi)){
      var croplink = "http://toolserver.org/~luxo/cropbot/cropbot.php?img="+wgTitle;
      addPortletLink('p-tb', croplink, 'Crop', 'p-crop', 'Crop this image', 'o', false);
    }
  }
}
addOnloadHook(addcroplink);

// Replacer
function wpTextboxReplace(){
  var s = prompt('Search regexp:');
  if(s){
    var r = prompt('Replace /'+s+'/ with:');
    if(!r && r != '') return;
    var txt = document.editform.wpTextbox1;
    txt.value = txt.value.replace(new RegExp(s, 'mg'), r);
  }
}
addOnloadHook(function(){
  if(document.forms.editform){
    addPortletLink('p-cactions', 'javascript:wpTextboxReplace()', 'Replace', 'ca-replace',
                   'Regexp replace for the edit window', 'R', document.getElementById('ca-history'));
  }
});

// Customized [[MediaWiki:Gadget-autodel.js]]
addOnloadHook(function(){
  addPortletLink('p-cactions','javascript:deleteLinkify()','autodelete','ca-dellink','generate deletion links');
})
 
function deleteLinkify(){
  var reason = prompt('Enter default delete reason','');
  if(!reason) return;
  var links = document.getElementById('bodyContent').getElementsByTagName('a');
  var arp = wgServer + wgArticlePath.replace(/\$1/,'');
  if(links.length == 0) return
  for(var i=0; i<links.length; i++){
    if(links[i].href.indexOf(arp) == 0 && links[i].href.indexOf('action=delete') == -1 && links[i].href.indexOf('/Special:') == -1){
      links[i].href += '?action=delete&submitdelete=true&deletetalkalso=true&wpReason=' + encodeURIComponent(reason);
      links[i].innerHTML += ' (delete)';
    }
  }
}

if(queryString('submitdelete') == 'true') addOnloadHook(function(){
  if(document.getElementById('ca-talk').className.indexOf('new') == -1 && queryString('deletetalkalso') == 'true' && (wgNamespaceNumber % 2 == 0)){
     document.getElementById('deleteconfirm').action += '&deletetalk=true&wpReason=' + queryString('wpReason');
  }
  var sub = (document.getElementById('wpConfirmB')) ? document.getElementById('wpConfirmB') : document.getElementById('mw-filedelete-submit')
  sub.click();
});

if(wgAction == 'delete' && queryString('deletetalk') == 'true') addOnloadHook(function(){
  var url = document.getElementById('ca-talk').getElementsByTagName('a')[0].href + '?action=delete&submitdelete=true&wpReason=' + queryString('wpReason');
  document.location.href = url;
});

function queryString(p){
  var re = RegExp('[&?]' + p + '=([^&]*)');
  var matches;
  if(matches = re.exec(document.location)){
    try{
      return decodeURI(matches[1]);
    } catch(e){
    }
  }
  return null;
}


// highlight redirects
if(wgCanonicalNamespace != 'Special'){
  var hlr = {
    run : function(){
      appendCSS('a.mw-redirect{color:green} a.mw-redirect:visited{color:#063}');
    },
    install : function(){
      with(hlr){
        addPortletLink('p-cactions', 'javascript:hlr.run();', 'redirects', 'ca-redirects');
      }
    }
  };
addOnloadHook(hlr.install);
}

// Custom edit buttons
importScript('User:Rocket000/customEditButtons.js');

// Replace upload link
importScript('MediaWiki:Replaceuploadlink.js');

// Customize sidebar
// reference: addPortletLink(portlet, href, text, id, tooltip, accesskey, nextnode)
addOnloadHook(function(){
  var c = wgServer + wgScript + '?title=';
  var ts = 'http://toolserver.org/'
  var bTitle = wgTitle.split('/')[0];
  var bPageName = wgPageName.split('/')[0];

  // == navigation ==
  // remove
  var wel = document.getElementById('n-welcome');
  var prt = document.getElementById('n-portal');
  if(wel) wel.parentNode.removeChild(wel);
  if(prt) prt.parentNode.removeChild(prt);

  // add
  addPortletLink('p-navigation', c+'COM:AN', "Admins' noticeboard", 'n-an');
  addPortletLink('p-navigation', c+'COM:AN/B', "Blocks and protections", 'n-an/b');
  addPortletLink('p-navigation', c+'COM:AN/V', 'Vandalism', 'n-an/v');
  addPortletLink('p-navigation', c+'COM:AN/U', 'User problems', 'n-an/u');
  addPortletLink('p-navigation', c+'COM:RV', 'Requests and votes', 'n-rfx');
  addPortletLink('p-navigation', c+'COM:DR', 'Deletion requests', 'n-dr');
  addPortletLink('p-navigation', c+'CAT:CSD', 'Speedy deletions', 'n-csd');
  addPortletLink('p-navigation', c+'CAT:PER', 'Prot. edit requests', 'n-per');
  addPortletLink('p-navigation', c+'User:CommonsDelinker/commands', 'CommonsDelinker', 'n-comdelinker');

  // == participate ==
  // remove
  var hlp = document.getElementById('n-help');
  var con = document.getElementById('n-contact');
  var ran = document.getElementById('n-randomimage');
  var don = document.getElementById('n-sitesupport');
  if(hlp) hlp.parentNode.removeChild(hlp);
  if(con) con.parentNode.removeChild(con);
  if(ran) ran.parentNode.removeChild(ran);
  if(don) don.parentNode.removeChild(don);

  // add
  addPortletLink('p-participate', c+'Special:NewPages&namespace=0&hidepatrolled=1&limit=500', 'New unpatrolled', 'n-newunpatrolled');
  addPortletLink('p-participate', c+'Special:AbuseLog', 'Abuse log', 'n-abuselog');
  addPortletLink('p-participate', c+'Special:SpecialPages', 'Special pages', 'n-specialpages');

  // == toolbox ==
  // remove / reorder
  var wlh = document.getElementById('t-whatlinkshere');
  var prn = document.getElementById('t-print');
  var spp = document.getElementById('t-specialpages');
  var rcl = document.getElementById('t-recentchangeslinked');
  var per = document.getElementById('t-permalink');
  if(wlh) wlh.parentNode.removeChild(wlh);
  if(prn) prn.parentNode.removeChild(prn);
  if(spp) spp.parentNode.removeChild(spp);
  if(rcl) rcl.parentNode.removeChild(rcl);
  if(per) per.parentNode.removeChild(per);

  // add
  addPortletLink('p-tb', c+'Special:WhatLinksHere/'+wgPageName, 'What links here', 't-wlh');
  addPortletLink('p-tb', c+'Special:WhatLinksHere/'+wgPageName+'&hidetrans=1&hidelinks=1', 'What redirects here', 't-redirects');
  addPortletLink('p-tb', c+'Special:PrefixIndex/'+wgPageName+'/', 'Subpages', 't-subpages');
  addPortletLink('p-tb', c+'Special:RecentChangesLinked/'+wgPageName, 'Related changes', 't-relatedchanges');
  addPortletLink('p-tb', wgServer+wgScript+'?oldid='+wgCurRevisionId, 'Permanent link', 't-permalink');

  if(wgNamespaceNumber == 2 || wgNamespaceNumber == 3){
    addPortletLink('p-tb', c+'Special:UserRights/'+bTitle, 'User rights', 't-userrights');
    addPortletLink('p-tb', ts+'~vvv/yaec.php?user='+bTitle+'&wiki=commonswiki_p', 'Edit counter', 't-editcounter');
    addPortletLink('p-tb', ts+'~vvv/sulutil.php?user='+bTitle, 'SUL util', 't-sulutil');
  }

});

// </nowiki>