User:Withersoul 235/global.js

// // Notes to self /* For wiki-specific codes in Global JS page, use one of following codes:

if (mw.config.get("wgServer") == "https:// .wikia.com") { // code };

if (mw.config.get("wgDBname") == "lyricwiki") { //we use lyricwiki as example //code. You can find your wiki's DB name by opening the developer console (Ctrl-Shift-J), navigating to the Elements tab and checking the last few lines of the element, after "wiki-". }

Apparantly you can add multiple rail modules using AddRailModule like this:

window.ARMModules = ['Template:RailModule', 'Template:RailModule2'];

Do noot forgetti */

//=========================== // Dark Global Navigation //===========================

importStylesheetPage("MediaWiki:Katsuragi.css", "dev");

//================================================= // Temp until the Dev Import is live //=================================================

/** * Name:       MoreSocialLinks * Version:    v1.0 * Author:     KockaAdmiralac <1405223@gmail.com> * Description: Adds Instagram, Twitch and YouTube links to user profiles */ require(['wikia.window', 'mw', 'jquery'], function(window, mw, $) {   'use strict';    var $masthead = $('#UserProfileMasthead');    if (!$masthead.exists || window.MoreSocialLinksLoaded) {        return;    }    window.MoreSocialLinksLoaded = true;    if ( !window.dev || !window.dev.i18n || !window.dev.ui || !window.dev.modal ) {       importArticle({ type: 'script', articles: [ 'u:dev:MediaWiki:I18n-js/code.js', 'u:dev:MediaWiki:Modal.js', 'u:dev:MediaWiki:UI-js/code.js' ]       });    }    importArticles({ type: 'style', articles: [ 'u:dev:MediaWiki:FandomIcons.css', 'u:dev:MediaWiki:MoreSocialLinks.css' ]   });    var MoreSocialLinks = {        regexes: {            instagram: /^https?:\/\/(?:m\.|www\.)?instagram\.com\//,            twitch: /^https?:\/\/twitch\.tv\//,            twitter: /^https?:\/\/(?:mobile\.)?twitter\.com\//,            youtube: /^https?:\/\/(?:m\.|www\.)?youtube\.com\/(?:user|channel)\//        },        links: {},        username: $masthead.find('h1[itemprop="name"]').text,        toLoad: 3,        preload: function {            if (--this.toLoad === 0) {                $.when( window.dev.i18n.loadMessages('MoreSocialLinks'), this.nirvana ).then($.proxy(this.init, this));           }        },        nirvana: function {            return $.nirvana.getJson( 'UserProfilePage', 'renderUserIdentityBox', {                   title: 'User:' + this.username }           );        },        init: function(i18n, data) {            this.i18n = i18n;            this.id = data[0].user.id;            this.canEdit = data[0].canEditProfile;            this.services.then($.proxy(this.show, this));        },        services: function {            return $.get( 'https://services.wikia.com/user-attribute/user/bulk', {                   id: this.id                } );       },        show: function(data) {            var $links = $masthead.find('.links');            $.each(data.users[this.id], $.proxy(this.eachLink, this));            var links = window.dev.ui({ type: 'ul', classes: ['links'], children: $.map(this.links, $.proxy(this.mapLink, this)) });           if ($links.exists) {                $links.replaceWith(links);            } else {                $masthead.find('.masthead-info-lower').append(links);            }            this.initModal;            $masthead.find('.links > .edit > a')                .click($.proxy(this.edit, this));        },        eachLink: function(k, v) {            if (!v) {                return;            }            switch (k) {                case 'fbPage':                    this.links.facebook = v;                    break;                case 'social_instagram':                    this.links.instagram = 'https://instagram.com/' + v;                    break;                case 'social_twitch':                    this.links.twitch = 'https://twitch.tv/' + v;                    break;                case 'social_youtube':                    if (v.match(this.regexes.youtube)) { this.links.youtube = v;                   } break; case 'twitter': this.links.twitter = 'https://twitter.com/' + v;                   break; case 'website': this.links.website = v;                   break; default: if (this.canEdit) { this.links.edit = '#'; }                   break; }       },        mapLink: function(v, k) { return { type: 'li', classes: [k], children: [ {                       type: 'span', classes: [ 'fandom-icons', 'icon-' + (                               k === 'website' ?                                    'earth' :                                    k === 'edit' ?                                        'pencil' :                                        k                            ) ]                   },                    {                        type: 'a', attr: { href: v,                           rel: 'nofollow' },                       text: this.msg('link-' + k)                    } ]           };        },        initModal: function { this.modal = new window.dev.modal.Modal({               buttons: [                    {                        event: 'save',                        primary: true,                        text: this.msg('save')                    },                    {                        event: 'close',                        text: this.msg('cancel')                    }                ],                closeTitle: this.msg('cancel'),                content: {                    type: 'form',                    classes: [                        'MoreSocialLinksForm',                        'WikiaForm'                    ],                    children: $.map(this.links, $.proxy(this.mapGroup, this))                        .filter(Boolean)                },                context: this,                events: {                    save: 'save'                },                id: 'MoreSocialLinksModal', size: 'small', title: this.msg('link-edit') });           this.modal.create;        },        mapGroup: function(v, k) {            if (k === 'edit') {                return false;            }            return {                type: 'div',                classes: ['input-group'],                children: [                    {                        type: 'label',                        attr: {                            'for': k                        },                        text: this.msg('link-' + k)                    },                    {                        type: 'input',                        attr: {                            id: k,                            name: k,                            type: 'text',                            value: v                        }                    }                ]            };        },        save: function {            var data = {};            $('.MoreSocialLinksForm input').each($.proxy(function(_, el) { var $el = $(el), val = $el.val, name = $el.attr('name'), regex = this.regexes[name]; if (regex && val.match(regex)) { val = val.replace(regex, ''); }               switch (name) { case 'facebook': data.fbPage = val; break; case 'instagram': case 'twitch': case 'youtube': data['social_' + name] = val; break; default: data[name] = val; break; }           }, this)); $.ajax({               context: this,                data: data,                type: 'PATCH',                url: 'https://services.wikia.com/user-attribute/user/' +                     this.id,                xhrFields: {                    withCredentials: true                }            }).done(this.saved); },       saved: function(d) { console.log(d); window.location.reload; },       edit: function { this.modal.show; },       msg: function(msg) { return this.i18n.msg(msg).plain; }   };    mw.hook('dev.i18n').add($.proxy(MoreSocialLinks.preload, MoreSocialLinks)); mw.hook('dev.ui').add($.proxy(MoreSocialLinks.preload, MoreSocialLinks)); mw.hook('dev.modal').add($.proxy(MoreSocialLinks.preload, MoreSocialLinks)); });

//===================================================== // Prevent videos from playing in unsupported browsers //=====================================================

function understands_video { return !!document.createElement("video").canPlayType; // boolean }

if (!understands_video) { // Must be older browser or IE. // Maybe do something like hide custom HTML5 controls. Or whatever… videoControls.style.display = 'none'; }

//===================================================================== /** I refuse to acknowledge or accept the existence of this whole "FANDOM" thing, it's Wikia ffs **/ //=====================================================================

$('svg.wds-is-wds-company-logo-fandom, .wds-global-navigation__logo-image').replaceWith(''); $('svg.wds-is-wds-company-logo-powered-by-wikia').remove;

// /* Redirects "/skin.css" and "/skin.js" to "/wikia.css" and "/wikia.js" in URL bar */ // if (mw.config.get('wgArticleId') === 0 && mw.config.get('wgNamespaceNumber') === 2) { var titleParts = mw.config.get('wgPageName').split('/'); /* Make sure there was a part before and after the slash and that the latter is 'skin.js' or 'skin.css' */ if (titleParts.length == 2) { var userSkinPage = titleParts.shift + '/' + mw.config.get('skin'); if (titleParts.slice(-1) == 'skin.js') { window.location.href = mw.util.getUrl(userSkinPage + '.js'); } else if (titleParts.slice(-1) == 'skin.css') { window.location.href = mw.util.getUrl(userSkinPage + '.css'); }   } }

//============================================================== // Screw the Discussions! Forums forever! // -- /** Essentially checks if Forums exist on a wiki and if so, replaces the "Discuss" tab in the Wiki Header with the "Forum" tab and removes it from the "Explore" dropdown **/

//- //wip //===============================================================

/*function fuckTheDiscussions { let forumlink = $('.wds-has-bolded-items > li > a[href$="Special:Forum"]'); if ($(forumlink).length > 0) { $(".wds-community-header__local-navigation .wds-tabs__tab:last-of-type") .attr({       "text": "Forum",        "href": wgServer + "/wiki/Special:Forum"    }); $('.wds-has-bolded-items > li > a[href$="Special:Forum"]').remove; }}addOnloadHook(fuckTheDiscussions);*/

// /** Highlight whitespace characters in diffs ~ By UltimateSupreme, taken from their Global JS **/ //

if ($.getUrlVar('diff')) { $('.diffchange-inline').each(function {           if (!(new RegExp('\\S+').test($(this).text))) {                $(this).css('background-color', 'red');            }        }); }

//=============================== // Script configurations //===============================

$.extend(window, {   /** AJAX Auto-Refresh **/     ajaxPages: new Array( "Special:WikiActivity", "Special:RecentChanges", "Special:RecentChangesLinked", "Special:Log", "Special:Images", "Special:ListFiles", "Special:Contributions", "Special:NewPages", "Special:UncategorizedPages", "Special:DoubleRedirects", "Special:WhatLinksHere", "Special:Categories", "Special:Videos", "Special:Watchlist", "Special:LonelyPages", "Special:BrokenRedirects", "Special:DeadendPages", "Special:Disambiguation", "Special:Withoutimages", "Blog:Recent posts"),   ajaxRefresh: 30000,    AjaxRCRefreshText: 'Auto-refresh',    AjaxRCRefreshHoverText: 'Automatically refresh the page over time',    ajaxIndicator: 'https://vignette.wikia.nocookie.net/dev/images/b/ba/Snake_throbber_dark-bg.gif/revision/latest?cb=20140519203615',    /** LastEdited **/    timezone: "local",    /** PageCreator **/    useAvatar: true,    useTimestamp: true,    /** DiscordIntegrator **/    DiscordIntegratorConfig: {siderail: {theme: "dark"}},    /** InactiveUsers **/    InactiveUsers: {months: 3},    /** SeeMoreActivityButton **/    SeeMoreActivityButtonRC: false,    /** HighlightUsers **/    highlight: {selectAll: true},    /** UserTags **/    UserTagsJS: {        modules: {            stopblocked: false,            isblocked: true,    }},    /** WHAM **/    WHAMDelay: 2125,    /** ShowHide **/    ShowHideDisplayWarning: false,    /** SnowStorm **/ excludeMobile: true, useTwinkleEffect: true, useMeltEffect: false, usePositionFixed: true, freezeOnBlur: false //Stop snowflakes from going Speedy Gonzales }); if($("#ListFiles-container").length > 0 || //If talk/Forum namespace or Message Wall wgNamespaceNumber == 110 || wgNamespaceNumber == 111 || wgNamespaceNumber == 3 || wgNamespaceNumber == 1 || wgNamespaceNumber == 5 || wgNamespaceNumber == 7 || wgNamespaceNumber == 9 || wgNamespaceNumber == 11 || wgNamespaceNumber == 13 || wgNamespaceNumber == 15 || wgNamespaceNumber == 503 || wgNamespaceNumber == 829 || wgNamespaceNumber == 1200 || wgNamespaceNumber == 1201 || wgNamespaceNumber == 2000 || wgNamespaceNumber == 2001) {window.ajaxPages.push(wgPageName);}

var bcr = $(".custom-purge-button"); if(bcr.text("Purge")) {window.PurgeButtonText = "Refresh"}

/** ViewDeleted **/

var ViewDeleted = { noPrompt: true, rc: true, logs: true, modal: { preview: {width: 800}, content: {width: 700}} };

//================ // Script Imports //================

importArticles({   type: 'script',    articles: [        'u:dev:MediaWiki:AjaxRC/code.js',        'u:dev:MediaWiki:AjaxUndo/code.js',        'u:dev:MediaWiki:AntiSoundcloud/code.js',        'u:dev:MediaWiki:CodeQuickLinks/code.js',        'u:dev:MediaWiki:ChainQuotes.js',        'u:dev:MediaWiki:ChromeToolbarColor.js',        'u:dev:MediaWiki:DedicatedTalkButton.js',        'u:dev:MediaWiki:EditBio/code.js',        'u:dev:MediaWiki:FavoriteWikisPersistTab/code.js',        'u:dev:MediaWiki:FixLazyloadingInsideOfScrollable.js',        'u:dev:MediaWiki:FixSourcePages/code.js',        'u:dev:MediaWiki:GlobalEditcount/code.js',        'u:dev:MediaWiki:LastEdited/code.js',        'u:dev:MediaWiki:ListFiles/code.js',        'u:dev:MediaWiki:MastheadRightsBadge.js',        'u:dev:MediaWiki:NewImages.js',        'u:dev:MediaWiki:OldFilePages/code.js',        'u:dev:MediaWiki:PageCreator/code2.js', 'u:dev:MediaWiki:PortableCSSPad/code.js', 'u:dev:MediaWiki:ProtectionIcons.js', 'u:dev:MediaWiki:QuickLogs/code.js', 'u:dev:MediaWiki:Quick Management/code.js', //'u:dev:MediaWiki:RailWAM/code.js',* 'u:dev:MediaWiki:RandomPageShortcut/code.js', 'u:dev:MediaWiki:RelatedDiscussionsModule/code.js', 'u:dev:MediaWiki:RollbackSpamUserContribs/code.js', 'u:dev:MediaWiki:ThreadInspection/code.js', 'u:dev:MediaWiki:ShowUserGroups.js', 'u:dev:MediaWiki:SnowStorm.js', 'u:dev:MediaWiki:SpellCheckModule/code.js', 'u:dev:MediaWiki:UnhideUserMasthead/code.js', 'u:dev:MediaWiki:ViewRemoved/code.js', 'u:dev:MediaWiki:ViewDeleted/code.js', 'u:dev:MediaWiki:WorkingMoreUsersCount.js', 'u:dev:MediaWiki:WHAM/code.2.js' ] });

if (mw.config.get("wgUserGroups").indexOf('rollback') < -1 ||  !($(".mw-rollback-link").length) ||   ($(".mw-rollback-link").length === 0)) { importScriptPage("MediaWiki:Rollback/code.2.js", "dev"); }

/** (*) It loads the log modal up to three times simultaneously even when I've already logged the WAM **/

//********************************************** // Makes ProfileTags not override InactiveUsers //********************************************** mw.hook('dev.profile-tags').add(function {   importArticle({ type: 'script', article: 'u:dev:MediaWiki:InactiveUsers/code.js' }); });

//°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° // Stop FANDOM from tracking me //°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

$('[data-tracking-label], [data-tracking]') .removeAttr('data-tracking-label data-tracking');

//=================================================== // Test if an element has a certain class. // Increases general performance. //=================================================== var hasClass = (function {    var reCache = {};    return function (element, className) {        return (reCache[className] ? reCache[className] : (reCache[className] =        new RegExp("(?:\\s|^)" + className + "(?:\\s|$)")))        .test(element.className);}; });

/*********************************************************************
 * 1) Fix bugs in Internet Explorer, should I ever be forced to use it

$('head').append(''); if (window.showModalDialog && document.compatMode) { var oldWidth; var docEl = document.documentElement; function fixIEScroll { if (!oldWidth || docEl.clientWidth > oldWidth) {doFixIEScroll;} else {setTimeout(doFixIEScroll, 1);} oldWidth = docEl.clientWidth;} function doFixIEScroll {docEl.style.overflowX = (docEl.scrollWidth -        docEl.clientWidth < 4) ? 'hidden' : '';} try {document.attachEvent('onreadystatechange', fixIEScroll); attachEvent('onresize', fixIEScroll); }catch(e){}} /* Fix an overflow bug where the scrollbar would wrongly appear and function in pre elements and code blocks in Internet Explorer 6 and 7, breaking them */ //Documented at https://remysharp.com/2008/01/21/fixing-ie-overflow-problem $.fn.fixOverflow = function { if ($.browser.msie) {return this.each(function {        if (this.scrollWidth > this.offsetWidth) {          $(this).css({ 'padding-bottom': '20px', 'overflow-y': 'hidden'});}});} else {return this;}}; })(jQuery); $( 'pre', 'syntaxhighlight', 'source', '.mw-geshi', '.source-lua', '.source-css', '.source-javascript').fixOverflow;
 * (function ($) {

window.onload = function { // only apply to IE   if (!/*@cc_on!@*/0) return;

// find every element to test var all = document.getElementsByTagName('*'), i = all.length;

// fast reverse loop while (i--) { // if the scrollWidth (the real width) is greater than // the visible width, then apply style changes if (all[i].scrollWidth > all[i].offsetWidth) { all[i].style['.paddingBottom'] = '20px'; all[i].style['.overflowY'] = 'hidden';}} };

//°°°°°°°°°°°°°°°°°°°°°°°° //Fixing PNG images bug

/*IE 6, 7 and 8*/ function msieversion { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0) {mw.util.addCSS ("img {\   background: transparent;\    -ms-filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" +  //IE 8    "filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" + //IE 6 & 7          "zoom: 1;}")} }

/*IE 11*/

function msieversion { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {mw.util.addCSS ("img {\   background: transparent;\    -ms-filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" +     "filter: progid:DXImageTransform.Microsoft.gradient" +    "(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);" +         "zoom: 1;}")} } /*********************************************************************
 * 1) End Internet Explorer Bugfixes

//======================================================== // Allow editing of rollback edit summary // Requires CSS found at the bottom of my Global CSS //========================================================

// jshint jquery:true, esversion:5 /* globals require, module, mediaWiki, mw, OO */ 'use strict';

$('.mw-rollback-link a') .after($(' ')	.addClass('edit-rollback')	.prop('title', 'Edit rollback summary')); $('#mw-content-text').on('click','.edit-rollback', function {		var $rollback = $('#rollback-summary');		if ($(this).parent.is($rollback.parent)) {$rollback.toggle;} 		else {$rollback.remove;			var name = decodeURIComponent($(this).prev .prop('href') .match(/&from=(.+)&token/)[1].replace(/\+/g, ' '));			$rollback = $(' ')			.append($(' ') .addClass('mw-ui-input rollback-text') .prop({maxlength: 250, spellcheck: true}) .val(			'Revert consecutive edits by ' 			+ name + ' (talk)'), $(' ')			.addClass('mw-ui-button mw-ui-constructive rollback-submit-button') .val('Rollback')).insertAfter(this);}		// This puts the cursor at the end of the text		var $text = $rollback.find('.rollback-text');		var summary = $text.val; $text.focus.val('').val(summary);}); $('#mw-content-text').on('click', '.rollback-submit-button', function {		var $link = $(this).closest('.mw-rollback-link');		window.location = $link.find('a')		                      .prop('href') + 		                       '&summary=' + 		                       encodeURIComponent($link .find('.rollback-text') .val);	}); // Allow rollback to be submitted by pressing enter while focused on the input field $('#mw-content-text').on('keypress', '.rollback-text', function(e) {		if (e.which !== 13) {return;}		e.preventDefault;		$('.rollback-submit-button').click;}); // Close rollback if clicked anywhere else $(window).click(function(e) {		if (!$(e.target).is('#rollback-summary, .edit-rollback') && !$('#rollback-summary').has(e.target).length) 		  {$('#rollback-summary').hide;} });});
 * (function {

//============================================================ // Make Visual Editor links load the regular editor instead //============================================================

if ($.getUrlVar('veaction') == 'edit') {location.replace(document.URL.replace('veaction','action'));}

//============================================================================ // Don't save a page when enter is pressed in the summary box // Credit to Ciencia Al Poder. Taken from OneTwoThreeFall's Global JS. //============================================================================

if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { $('#wpSummary').keypress(function (event) {       if (event.which === 13) {return false;}}); }

/*** --- ---
 * 1) MISCELLANEOUS CODE + ARCHIVE



if ($(".highlight-users-script").length > 0) {mw.util.addCSS(   '.highlight-users-script {\    font-weight: bold !important;'); } /* Reveals a user's personal JS / CSS on their masthead (currently not in use) */

/* // Shows global codes on Community Central

if (mw.config.get('wgCityId') === '177') { (function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/global.js';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'global.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Global JS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/global.css';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'global.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Global CSS' })           )        );    } }); } else { // Shows wiki-specific JS / CSS on all other wikis (function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/common.js';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'common.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'JS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/common.css';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'common.css' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'CSS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/wikia.js';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'wikia.js' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Wikia JS' })           )        );    } });

(function {   var $header = $('#WikiaUserPagesHeader');    if ($header.exists) {        var title = 'User:' + $header.find('#UserProfileMasthead h1').text + '/wikia.css';        $header.find('.tabs-container .tabs').append( $('', { 'data-id': 'wikia.css' }).append(               $('', { href: mw.util.getUrl(title), title: title, text: 'Wikia CSS' })           )        );    } }); }

// Personalized version of RestoreContribsButton.

/* Temporarily not in use. $(function {   $('.wds-community-header__wiki-buttons').remove; var config = mw.config.get([ 'wgPageName' ]);   $('.wds-community-header__top-container').append( '' + ' ' + ' '+ '<path d="M4.667 11H8v1.333H4.667V11zm0-3.333h8V9h-8V7.667zm0-3.334h8v1.334h-8V4.333zM2.667 17H10v-4.667c0-.368.3-.666.667-.666h4.666v-10A.667.667 0 0 0 14.667 1h-12A.667.667 0 0 0 2 1.667v14.666c0 .368.3.667.667.667z"/><path d="M14.943 13h-3.61v3.61z"/></g> ' + ' Contribute <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" class="wds-icon wds-icon-tiny wds-dropdown__toggle-chevron" id="wds-icons-dropdown-tiny"><path d="M6 9l4-5H2" fill-rule="evenodd"> ' + '<div class="wds-is-not-scrollable wds-dropdown__content">' + '<ul class="wds-list wds-is-linked">' + '<li><a href="/wiki/' + config.wgPageName + '?action=edit">Edit this page</a></li>' + '<li><a href="/wiki/Special:CreatePage">Add a Page</a></li>' + '<li><a href="/wiki/Special:WikiaVideoAdd">Add a Video</a></li>' + '<li><a href="/wiki/Special:Upload">Add an Image</a></li>' + '<li><a href="/wiki/Special:WikiActivity">Wiki Activity</a></li>' + '<li><a href="/wiki/Special:AdminDashboard" class="sysop-only">Admin Dashboard</a></li>' + '<li><a href="/wiki/MediaWiki:Common.css?action=edit" class="sysop-only">Edit wiki CSS</a></li>' + '<li><a href="/wiki/MediaWiki:Common.js?action=edit" class="sysop-only">Edit wiki JS</a></li>' + '<li><a href="/wiki/MediaWiki:Wikia.js?action=edit" class="sysop-only">Edit Oasis-only JS</a></li>' + '<li><a href="/wiki/MediaWiki:ImportJS?action=edit" class="sysop-only">Import JS addons</a></li>' + '<li><a href="/wiki/MediaWiki:Wiki-navigation?action=edit" class="sysop-only">Edit wiki navigation</a></li>' + '<li><a href="/wiki/' + config.wgPageName + '?action=purge">Reload page</a></li>' + '<li><a href="/wiki/' + config.wgPageName + '?action=watch">Add page to watchlist</a></li>' + '<li><a href="/wiki/' + config.wgPageName + '?action=unwatch">Remove page from watchlist</a></li>' + '</ul>  ');    if(wgUserGroups.indexOf('sysop') > -1 || wgUserGroups.indexOf('staff') > -1 || wgUserGroups.indexOf('helper') > -1) {        return 0;    } else {        $('a.sysop-only').remove;    } });



/*******************************************************************************
 * START GLOBAL CHAT ADDONS |||||||||||||||||||||||||||||||||

// Configurations

var chatags = { images: true, videos: true };

chatTimestamps24Hour = true;

// Contain imports in variable // Doesn't work. RIP

/*var addons = [ 'u:dev:MediaWiki:ChatOptions/code.js', 'u:dev:MediaWiki:ChatSendButton.js', 'u:dev:MediaWiki:IsTyping/code.js', 'u:dev:MediaWiki:ChatTags/code.js', 'u:dev:MediaWiki:HideChatRail/code.js', 'u:dev:MediaWiki:CapsFirst/code.js', 'u:dev:MediaWiki:ChatUserPageButton.js', 'u:dev:MediaWiki:MessageBlocker/code.js', 'u:dev:MediaWiki:ChatNotifications/code.js', 'u:dev:MediaWiki:ChatTimestamps/code.js', 'u:dev:MediaWiki:GiveChatMod/code.js', 'u:dev:MediaWiki:FasterBanModule/code.js', 'u:dev:MediaWiki:FixAdminKick/code.js', 'u:dev:MediaWiki:QuickModTools/loader.js', 'u:dev:MediaWiki:!mods/code.js', 'u:dev:MediaWiki:!kick/code.js', 'u:dev:MediaWiki:!ban/code.js', 'u:dev:MediaWiki:EmoticonsWindow/code.js', 'u:dev:MediaWiki:Tabinsert.js', 'u:dev:MediaWiki:MobileChat.js', ];*/

// Import addons

if (mw.config.get('wgCanonicalSpecialPageName') === "Chat") { // Small test for debugging console.log("Test"); // Import scripts importArticles({    type: 'script',     articles: /*addons*/ [    'u:dev:MediaWiki:ChatOptions/code.js',    'u:dev:MediaWiki:ChatSendButton.js',    'u:dev:MediaWiki:IsTyping/code.js',    'u:dev:MediaWiki:ChatTags/code.js',    'u:dev:MediaWiki:HideChatRail/code.js',    'u:dev:MediaWiki:CapsFirst/code.js',    'u:dev:MediaWiki:ChatUserPageButton.js',    'u:dev:MediaWiki:MessageBlocker/code.js',    'u:dev:MediaWiki:ExtendedPrivateMessaging/code.js',    'u:dev:MediaWiki:ChatNotifications/code.js',    'u:dev:MediaWiki:ChatTimestamps/code.js',    'u:dev:MediaWiki:GiveChatMod/code.js',    'u:dev:MediaWiki:FasterBanModule/code.js',    'u:dev:MediaWiki:FixAdminKick/code.js',    'u:dev:MediaWiki:QuickModTools/loader.js',    'u:dev:MediaWiki:!mods/code.js',    'u:dev:MediaWiki:!kick/code.js',    'u:dev:MediaWiki:!ban/code.js',    'u:dev:MediaWiki:EmoticonsWindow/code.js',    'u:dev:MediaWiki:Tabinsert.js', 'u:dev:MediaWiki:MobileChat.js' ]});}

/*******************************************************************************
 * END GLOBAL CHAT ADDONS ||||||||||||||||||||||||||||||||