Jump to content

User:Bob/monobook.js

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* <nowiki> */

importScript('User:Bob/script/addlimenu.js');
importScript('User:TheFearow/qstring.js');
importScript('MediaWiki:LinkFixr.js');
importScript('User:Ais523/stubtagtab.js');
importScript('User:Omegatron/monobook.js/autolinker.js');
importScript('User:Alex Smotrov/histcomb.js');
importScript('User:Alex Smotrov/qpreview.js');
importScript('User:Bob/script/easywelcome.js');
importScript('User:Bob/script/namespacesearch.js');
importScript('User:Bob/script/portlets.js');
importScript('User:Bob/script/clock.js');
importScript('User:Bob/script/hideyellowboxes.js');
importScript('User:Lupin/recent2.js');
importScript('User:Lupin/autoedit.js');

if (wgNamespaceNumber >= 0)
$(function() {
    var todaysDate = getTheDate();

    var namespaces = new Array("",           "Talk:",           "User:",     "User_talk:",
                               "Wikipedia:", "Wikipedia_talk:", "Image:",    "Image_talk:",
                               "MediaWiki:", "MediaWiki_talk:", "Template:", "Template_talk:",
                               "Help:",      "Help_talk:",      "Category:", "Category_talk:",
                               "Portal:",    "Portal_talk:");

    /* set the page and talk page names for use throughout the page */
    if(wgNamespaceNumber % 2 == 0) { // if it's not a talk page
      var thisPage = namespaces[wgNamespaceNumber] + wgTitle;
      var thisTalk = namespaces[wgNamespaceNumber + 1] + wgTitle;
      thisPage = encodeURIComponent(thisPage);
      thisTalk = encodeURIComponent(thisTalk);
      var currentPage = thisPage;
    } else {
      var thisPage = namespaces[wgNamespaceNumber - 1] + wgTitle;
      var thisTalk = namespaces[wgNamespaceNumber] + wgTitle;
      thisPage = encodeURIComponent(thisPage);
      thisTalk = encodeURIComponent(thisTalk);
      var currentPage = thisTalk;
    }

    var pCactions = document.getElementById('p-cactions');

    var caMain = pCactions.getElementsByTagName('li')[0];
    var caTalk = pCactions.getElementsByTagName('li')[1];
    var caEdit = document.getElementById('ca-edit');
    var caView = document.getElementById('ca-viewsource');
    var caHistory = document.getElementById('ca-history');
    var caMove = document.getElementById('ca-move');
    var caWatch = document.getElementById('ca-watch');
    var caUnwatch = document.getElementById('ca-unwatch');
    var caProtect = document.getElementById('ca-protect');
    var caDelete = document.getElementById('ca-delete');
    var caAdd = document.getElementById('ca-addsection');

    var editText = (caView) ? 'view source' : 'edit';

    // Hide tabs
    if (caMain) caMain.style.display = 'none';
    if (caEdit) caEdit.style.display = 'none';
    if (caTalk) caTalk.style.display = 'none';
    if (caView) caView.style.display = 'none';
    if (caHistory) caHistory.style.display = 'none';
    if (caMove)    caMove.style.display = 'none';
    if (caProtect) caProtect.style.display = 'none';
    if (caDelete)  caDelete.style.display = 'none';
    if (caAdd)     caAdd.style.display = 'none';

    if (!caWatch) caWatch = caUnwatch;

    var pageText = getElementUrlText(caMain);
    var talkText = 'discussion'; // getElementUrlText(caTalk);

    /* page menu */
    var newPage = addLiMenu(pageText,caWatch);

    if( caMain.className.search('new') == 0 ) {
        mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisPage+'&action=edit','create');
        newPage.className += " red";
        newPage.firstChild.nextSibling.className += " red";
    } else {
        mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisPage,'view '+pageText);
        mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisPage+'&action=edit',editText);
        mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisPage+'&action=history','history');
        mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?diff=cur&oldid=prev&title='+thisPage,'last');
        if (caMove)    mw.util.addPortletLink(newPage.id,wgServer+'/wiki/Special:MovePage/'+ thisPage, 'move');
        if (caProtect) mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisPage+'&action=protect', 'protect');
        if (caDelete)  mw.util.addPortletLink(newPage.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisPage+'&action=delete', 'delete');
    }
    mw.util.addPortletLink(newPage.id, mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Special:Log&page=' + thisPage, 'page log');
    if(caMain.className.search(/selected/i) != -1) newPage.className += ' selected';

    /* talk menu */
    var newTalk = addLiMenu(talkText,caWatch);

    if( caTalk.className.search('new') == 0 ) {
        mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk+'&action=edit','create');
        newTalk.className += " red";
        newTalk.firstChild.nextSibling.className += " red";
    } else {
        mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk,'view '+talkText);
        mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk+'&action=edit','edit');
        mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk+'&action=edit&section=new','add comment');
        mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk+'&action=history','history');
        mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?diff=cur&oldid=prev&title='+thisTalk,'last');
        if (caMove)    mw.util.addPortletLink(newTalk.id,wgServer+'/wiki/Special:MovePage/'+ thisTalk, 'move');
        if (caProtect) mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk+'&action=protect', 'protect');
        if (caDelete)  mw.util.addPortletLink(newTalk.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+thisTalk+'&action=delete', 'delete');
    }
    mw.util.addPortletLink(newTalk.id, mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=Special:Log&page=' + thisTalk, 'page log');
    if(caTalk.className.search(/selected/i) != -1) newTalk.className += ' selected';


    /* if we're in the userspace, add more info */
    if (wgNamespaceNumber == 2 || wgNamespaceNumber == 3) {
      if ( wgTitle.indexOf("/") == -1 ) {
        var uname = wgTitle;
      } else {
        var uname = wgTitle.substring(0, wgTitle.indexOf("/"));
      }

      var userMenu = addLiMenu('user info');
        mw.util.addPortletLink(userMenu.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title=Special:PrefixIndex&from='+uname+'/&namespace=2', 'userspace');
        mw.util.addPortletLink(userMenu.id, 'http://tools.wikimedia.de/~interiot/cgi-bin/Tool1/wannabe_kate?site=en.wikipedia.org&username='+uname, 'edit count');
        mw.util.addPortletLink(userMenu.id,wgServer+'/wiki/Special:Contributions/'+uname,'contribs');
        mw.util.addPortletLink(userMenu.id,mw.config.get('wgServer')+mw.config.get('wgScript')+'?title=Special:DeletedContributions&target='+uname,'deleted contribs');
        mw.util.addPortletLink(userMenu.id, mw.config.get('wgServer')+mw.config.get('wgScript')+'?title=Special:Log&user='+uname,'user log');
        mw.util.addPortletLink(userMenu.id, mw.config.get('wgServer')+mw.config.get('wgScript')+'?title=Special:Log&type=block&user='+uname,'block log');
        if (caDelete) mw.util.addPortletLink(userMenu.id,wgServer+"/wiki"+'/Special:Blockip/'+uname,'block');
    }

    var cleanupMenu = addLiMenu('cleanup');

    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=cleanup','cleanup');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=wikify','wikify');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=notability','notability');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=pov','neutrality');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=crystal|date='+todaysDate, 'crystal ball');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=context','little context');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=uncategorized', 'uncategorized');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=unreferenced','unreferenced');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=onesource','one source');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=refimprove','more refs');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=copyedit','copyedit');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=rewrite','rewrite');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=notenglish','foreign lang');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=internallinks','no links');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=expand','expand');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=update','update');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=trivia','trivia');
    mw.util.addPortletLink(cleanupMenu.id,'/w/index.php?title='+currentPage+'&action=edit&tag=hoax','hoax');

    if(QueryString.exists('tag')) {
        if(document.getElementById('mw-recreate-deleted-warn') || document.getElementById('noarticletext')) {
          alert('You are about to (re)create a page that does not exist; tagging has been aborted.');
          return;
        }
        var tagText = QueryString.get('tag');
        var f = document.editform, t = f.wpTextbox1;
        t.value = "{" + "{" + tagText + "}}\n" + t.value;
        f.wpSummary.value = "adding {{"+tagText+"}} tag";
        f.wpSave.click();
        return;
    }

    var csdMenu = addLiMenu('csd');

    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-g1','nonsense');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-g2','test');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-g3','vandalism');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-g10','attack');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-g11','spam/ad');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-bio','bio');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-band','band');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-inc','corporation');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-group','organization');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-a2','foreign lang');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-a7','insignificant');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-a1','no context');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=db-a3','empty');
    mw.util.addPortletLink(csdMenu.id,'/w/index.php?title='+currentPage+'&action=edit&csd=other','other...');

    if(QueryString.exists('csd')) {
      if(QueryString.get('csd') == 'other') {
        var csdText = prompt('Please type a reason for speedy deletion:');
        csdText = 'db|'+csdText;
      } else {
        var csdText = QueryString.get('csd');
      }
      var f = document.editform, t = f.wpTextbox1;
      if(t.value.substr(0,2) == "{"+"{") {
        if(!confirm('There is another template on this page. Continue tagging?'))
          return;
      } else {
          if(document.getElementById('mw-recreate-deleted-warn') || document.getElementById('noarticletext')) {
            alert('You are about to (re)create a page that does not exist; tagging has been aborted.');
            return;
          }
      }
      t.value = "{" + "{" + csdText + "}}\n" + t.value;
      f.wpSummary.value = "Requesting speedy deletion per [[WP:CSD]]";
      f.wpSave.click();
      return;
    }
});

/* </nowiki> */