User:OneTwoThreeFall/global.js

/*jslint browser, this */ /*global window, $, mw, importArticles, ace, WikiaEditor, GlobalTriggers, playerParams, RevealAnonIP */

// stop everything breaking when this is undefined window.Wikia.InstantGlobals = {};

window.RevealAnonIP = {}; window.NoImageLightbox = {novideo: true}; window.pseudoVector = { addContributionsTab: true, blacklist: ['community.wikia.com'] };

importArticles({   type: 'script',    articles: [        'u:dev:CacheCheck/code.js',        'u:dev:RevealAnonIP/code.js',        'u:dev:NoImageLightbox/code.js',        'u:dev:CompareLink.js',        'u:dev:DisplayTimer/code.js',        'u:dev:QuickDiff/code.js',        'u:dev:Pseudo-Vector.js',        'u:c:User:OneTwoThreeFall/MassNullEdit.modified-js.css',        'u:c:User:OneTwoThreeFall/LastEdited.modified-js.css',        'u:c:User:OneTwoThreeFall/UnsafeScripts.modified-js.css'    ] });

// if 'useskin' parameter exists, set it as a cookie var customSkin = mw.util.getParamValue('useskin'); if (customSkin) { $.cookie('useskin', customSkin, {       domain: mw.config.get('wgCookieDomain'),        path: mw.config.get('wgCookiePath')    }); }

// disable redirect links $('.mw-redirect, .allpagesredirect > a').each(function {    var link = new mw.Uri(this.href);    link.extend({ redirect: 'no' });   $(this).attr('href', link.toString); });

// don't leave redirect when moving files if (mw.config.get('wgCanonicalSpecialPageName') === 'Movepage' &&       mw.config.get('wgRelevantPageName').indexOf(mw.config.get('wgFormattedNamespaces')[6] + ':') === 0) { $('#wpLeaveRedirect').prop('checked', false); }

// add clear reason button to the delete page if (mw.config.get('wgAction') === 'delete') { $('#wpReason').after(' \u232b '); $('#wpClearReason').click(function {        $('#wpReason').val('');    }); }

// add prefix search + page log links to tools menu if (mw.config.get('wgNamespaceNumber') !== -1) { var extraLinks = 'Prefix search' + 'Logs for this page'; if (mw.config.get('skin') === 'oasis') { $('#my-tools-menu').prepend(extraLinks); } else { $('#p-tb > .pBody > ul').append(extraLinks); } }

// add contribs and watchlist links to user menu $('.user-menu > li:has(a[data-id="preferences"])') .after('My watchlist' +           'My contributions');

// add button to unhide removed messages on thread pages $('.removed-info').append('Show '); $('.showremovedmessage').click(function {    $(this).closest('.message-removed').removeClass('hide'); });

// move edit + talk buttons into header $('#WikiaPageHeader > .header-container > .header-title > h1') .after($('#WikiaPageHeader > .comments').css('margin', '2px 10px 0')) .after($('#WikiaPageHeader > .wikia-button')) .after($('#WikiaPageHeader > .wikia-menu-button')) .after($('#WikiaPageHeader > .view-source'));

// add direct link on youtube video file pages if (window.playerParams && playerParams.provider === 'youtube') { var ytLink = '' + mw.config.get('wgTitle') + ''; $('.video-provider').prepend(ytLink + ' – '); $('[id^="youtubeVideoPlayer"]').attr('style', ''); }

// stop classification popup on template save if (mw.config.get('wgIsEditPage')) { // …in ace editor window.enableTemplateClassificationEditorPlugin = false; // …in source editor (rather hacky, but whatever) GlobalTriggers.bind('WikiaEditorReady', function {        try {            WikiaEditor.getInstance.events.save[0].fn = function  {                return true;            };        } catch (ignore) {}    }); }

// code editor tweaks function codeEditorTweaks { var aceEditor = ace.edit('editarea'); aceEditor.setTheme('ace/theme/solarized_dark'); aceEditor.setOptions({       dragDelay: 20,       // quicker drag mode        printMargin: true,   // margin at 80 chars across        showInvisibles: true // show spaces/tabs/newlines as symbols    }); // fix syntax highlighting on '-js.css' pages if (mw.config.get('wgPageName').slice(-7) === '-js.css') { aceEditor.getSession.setMode('ace/mode/javascript'); } } if (window.ace) { // wait 3s and hope ace is loaded by then window.setTimeout(codeEditorTweaks, 3000); }

// run after page is completely loaded $(window).load(function {

// pre-open grouped items in recent changes and watchlist if (['Recentchanges', 'Watchlist'].indexOf(mw.config.get('wgCanonicalSpecialPageName')) !== -1) { $('.mw-collapsible-toggle-collapsed').click; }

// add 'used templates' button to edit toolbar if (mw.config.get('wgIsEditPage')) { $('#cke_toolbar_source_1 > img:last-of-type').after(           $('#mw-editbutton-bold').clone.removeAttr('id alt').attr({ 'title': $('.tmpl_listused > a').text, 'onclick': $('.tmpl_listused > a').attr('onclick') }).css('background-image', 'url(//images.wikia.nocookie.net/central/images/4/43/Button-template.png)')       ); }

// sometimes RevealAnonIP doesn't load in time... window.setTimeout(RevealAnonIP.reveal, 3000);

});