User:JPhil2.0/global.js

/* =========================================================================    JS for monobook and oasis applied to all wikia wikis. @author JPhil2.0 ========================================================================== */ importArticles({   type: 'script',    articles: [ 'u:dev:PortableCSSPad/code.js', 'u:dev:HeaderLinks/code.js', 'u:dev:LastEdited/code.js', 'u:dev:Wikimarks/code.js', 'u:dev:DisplayTimer/code.js', 'u:dev:InactiveUsers/code.js', 'u:dev:AjaxBatchDelete/code.2.js', 'u:dev:AjaxUndo/code.js', 'u:dev:QuickAccessToGlobalPages/code.js', 'u:dev:AjaxRedirect/code.js', 'u:kocka:MediaWiki:Emoticons.js', 'u:dev:MediaWiki:ChatHacks.js', 'u:dev:RelocateEditDiscussionButtons/code.js'

] });

/* Custom "NewFilesModule" by 452 (with fixes by JoshuaJSlone) This script displays Special:NewFiles in the right rail There are three ways to use this, by setting the NewFilesModuleCompact variable 0 - Normal, width is 212 1 - Compact, width is 106 2 - Random, if you're not sure which version you like best.

In both modes, hovering over each displays the uploader info.

NewFilesModuleCount can be used to specify the number of displayed images. var NewFilesModuleCompact = 1; //must be 0, 1, or 2. var NewFilesModuleCount = 13; //any integer

if ($('#WikiaRail').length) { //only on pages where the rail is present $('#WikiaRail').bind('DOMNodeInserted', function(event) { //fires after lazy-loading takes place.

if ($('#WikiaRail section').length && !$("#NewFilesModule").length && typeof $NewFilesPage == "undefined") { // Only add it once $NewFilesPage = $(' '); // this line, and the next, originate from http://dev.wikia.com/wiki/AjaxRC/code.js <3 $NewFilesPage.load("/wiki/Special:Images/" +NewFilesModuleCount + " #gallery-", function {          $('#WikiaRail>section:last-of-type').after(" New FilesUpload ");          if (typeof NewFilesModuleCompact == "undefined") NewFilesModuleCompact = 0;          if (NewFilesModuleCompact == 2) NewFilesModuleCompact = Math.floor(Math.random*2);          if (NewFilesModuleCompact) {            $('#gallery-', $NewFilesPage).html( $('#gallery-', $NewFilesPage).html .replace(/\/revision\/latest\?/g, "/revision/latest/scale-to-width-down/106?") .replace(/\/scale-to-width-down\/\d*\?/g, "/scale-to-width-down/106?") //-down is redundant on this line, but kept for consistency );           $("#NewFilesModule").addClass("compact");          }          $("#NewFilesModule").append(' ');          $(".wikia-gallery-item", $NewFilesPage).each(function { $(".lightbox-caption", this).prepend($("").attr("href",$(".gallery-image-wrapper>a", this).attr("href")).html($(".gallery-image-wrapper>a", this).attr("title")).append($(" "))); $("#NewFilesModule #gallery-").append(this); });

delete $NewFilesPage; //delete it, in case the rail is wiped after this point. });       if (!$("#NewFilesModuleCSS").length) $('head').append('\n#gallery- { position:relative;overflow-y:auto; clear: both; text-align:center; height:452px; }\n#gallery-:hover {padding-bottom: 13em; }\n#NewFilesModule .gallery-image-wrapper { top: 0 !important; height: auto !important; border:none; background: none; }\n#NewFilesModule.compact .gallery-image-wrapper { width: auto !important; }\n#NewFilesModule .thumb { height:auto !important; }\n#NewFilesModule .wikia-gallery-item { margin: 1px !important; padding: 0 !important; height: auto !important; border: none !important; }\n#NewFilesModule.compact .wikia-gallery-item { width: auto !important; }\n#NewFilesModule .wikia-gallery-item .lightbox-caption { display: none; }\n#NewFilesModule .wikia-gallery-item:hover .lightbox-caption { display:block; padding: 5px; margin-top: 0; position: absolute; border: 1px solid; background-color: #fff; z-index: 2; right: 0; width: 250px !important; }\n#NewFilesModule h2 {margin: 0 2em 0 0;}\n#NewFilesModule h2 a:first-child {color:inherit;}\n#NewFilesModule img { display: block; height: auto !important; width: auto !important; margin-left: auto !important; margin-top: auto !important;}\n.wikia-gallery-item .gallery-image-wrapper a { width: auto !important; height: auto !important; }\n.wikia-gallery-item .gallery-image-wrapper a.image-no-lightbox { line-height: normal; display: block; padding: 1em; }\n '); } });  //end of DOMNodeInserted block  $('#WikiaRail').trigger('DOMNodeInserted'); //Prevent race condition by firing the event.

} /* End of custom "NewFilesModule " */

/* LastEdited Customization */ window.lastEdited = { avatar: false, size: false };

/* Thread modifications */ if ((wgNamespaceNumber == 1201) && !$(".msg-title a").text) { $("ul.replies").prepend("Link to parent thread "); } if ($(".replies .SpeechBubble.message").length) $(".replies .SpeechBubble.message").each(function{ $(".timestamp", this).append("(link)"); }); /* add powerusers checkbox to Special:Listuers */ if (wgCanonicalSpecialPageName == "Listusers") $("fieldset.lu_fieldset tr:last-child").prepend('<label for="checkBoxForpoweruser"> <input type="checkbox" name="lu_target" class="lu_target" value="poweruser" checked="checked" id="checkBoxForpoweruser"> Power Users ');

/* Adding Editcount to Masthead */ if ($("#UserProfileMasthead").size) $("#UserProfileMasthead .tally em").wrap($("").attr("href", "/wiki/Special:EditCount/"+$("#UserProfileMasthead h1[itemprop=name]").html));

/* NoImageLightbox Customization */ window.NoImageLightbox = { novideo: true };

/* Change Input Type of Edit Summary From Text To TextArea - Created by Slyst */ if ($.getUrlVar('action') == 'edit' &&  $('#wpSummary').length &&   !mw.config.get('wgEditPageWideSourceMode')   ) { var val = ''; if ($('#wpSummary').val) { val = $('#wpSummary').val; }   $('#wpSummary').replaceWith($(' ').attr({ id: 'wpSummary', name: 'wpSummary', placeholder: 'Add a summary of your edit' }).val(val)); }

require(['wikia.window', 'mw'], function(context, mw) {   var globalNav = document.getElementById('globalNavigation');    Array.prototype.slice.call(globalNav.getElementsByClassName('wds-global-navigation__dropdown-toggle')).forEach(function(elem){ elem.addEventListener('mouseenter', elem.click); elem.parentNode.addEventListener('mouseleave', elem.click.bind(elem)); });   globalNav.querySelector('.wds-avatar').addEventListener('click', function  { context.location = (new mw.Title(mw.user.name, 2)).getUrl; }); });

/* New Footer improvements */ // move bottom bar to the top var elm = $(".wds-global-footer__bottom-bar"); $('.wds-global-footer').prepend(elm); // change Community link so that the user's preferences can determine which page they land on first $('a.wds-global-footer__link[href="http://community.wikia.com/wiki/Community_Central"]').prop('href', 'http://community.wikia.com/'); // change Support link to direct user towards current wiki's S:C page $('a.wds-global-footer__link[href="http://community.wikia.com/wiki/Special:Contact"]').prop('href', '/wiki/Special:Contact');

/* Scripts by 452, many thanks. :) */ var nocache = mw.util.getParamValue('nocache');

window.DragDropUploader = true; var loadUserScripts = new Array;

if(wgPageName == "Special:RecentChanges") { loadUserScripts.push('u:452:user:452/AjaxRC'); } else if ($("#mw-upload-form").size) { loadUserScripts.push('u:452:user:452/DragDropUploader'); } else if (typeof wgIsEditPage != "undefined"|| mw.util.getParamValue('action') == "edit" || mw.util.getParamValue('action') == "submit" || wgPageName == "Special:CreateBlogPage" ) {

} else {

loadUserScripts.push('u:452:user:452/NullEditButton'); loadUserScripts.push('u:452:user:452/View_Source'); loadUserScripts.push('u:452:user:452/AutoEditDropdown'); loadUserScripts.push('u:452:user:452/PurgeButton'); loadUserScripts.push('u:452:user:452/RevealAnonIP'); }

if (nocache) { for(var cachebuster=0;cachebuster < (Math.floor(Math.random*10)+10);cachebuster++) loadUserScripts.push(''); loadUserScripts.sort(function { return 0.5 - Math.random }); }

importArticles({ type: 'script', articles: loadUserScripts });

/* Kill image popups */ window.wgEnableImageLightboxExt = false; function changeimagelinks { $('#WikiaArticle, .LatestPhotosModule, #article-comments').unbind('click.lightbox'); var a = document.getElementsByTagName('a'); for(var t = 0; t < a.length; ++t) { var a2 = a[t]; var img = a2.getElementsByTagName('img'); if(img[0] != null && a2.href.indexOf('images.wikia.com') != -1) { var link = wgServer + '/wiki/File:' + a2.href.substring(a2.href.lastIndexOf('/') + 1); a2.setAttribute('href',link); }	} } if(skin == 'oasis') {addOnloadHook(changeimagelinks);}

/* Chat */ function OpenChatWindow { window.chatwindow.onload = function { //addOnloadHook, importScript, and importStylesheet window.chatwindow.$('body').prepend(' \nfunction importScript(b){var a=wgScript+"?title="+encodeURIComponent(b.replace(/ /g,"_")).replace(/%2F/ig,"/").replace(/%3A/ig,":")+"&action=raw&ctype=text/javascript";return importScriptURI(a)}\nfunction importScriptURI(a){var b=document.createElement("script");b.setAttribute("src",a);b.setAttribute("type","text/javascript");document.getElementsByTagName("head")[0].appendChild(b);return b}\nfunction importScriptPage(b,d){var a="/index.php?title="+encodeURIComponent(b.replace(/ /g,"_")).replace("%2F","/").replace("%3A",":")+"&action=raw&ctype=text/javascript";if(typeof d=="string"){if(d.indexOf("://")==-1){a="http://"+d+".wikia.com"+a}else{a=d+a}}return importScriptURI(a)}\nfunction importStylesheet(a){return importStylesheetURI(wgScript+"?action=raw&ctype=text/css&title="+encodeURIComponent(a.replace(/ /g,"_")))}\nfunction importStylesheetURI(b,d){var a=document.createElement("link");a.type="text/css";a.rel="stylesheet";a.href=b;if(d){a.media=d}document.getElementsByTagName("head")[0].appendChild(a);return a}\nfunction importStylesheetPage(b,d){var a="/index.php?title="+encodeURIComponent(b.replace(/ /g,"_")).replace("%2F","/").replace("%3A",":")+"&action=raw&ctype=text/css";if(typeof d=="string"){if(d.indexOf("://")==-1){a="http://"+d+".wikia.com"+a}else{a=d+a}}return importStylesheetURI(a)}\n//This isn\'t the same as the regular addOnloadHook, because the regular one runs from a script tag in the body that I don\'t feel like appending. It\'s easier to just make it $(function), which is essentially equivalent\nfunction addOnloadHook(func) {$(func);}\n ');                   //global.js                    window.chatwindow.importScriptURI('http://community.wikia.com/index.php?title=User:' + wgUserName + '/global.js&action=raw&ctype=text/javascript');                    //global.css                    window.chatwindow.importStylesheetURI('http://community.wikia.com/index.php?title=User:' + wgUserName + '/global.css&action=raw&ctype=text/css');

}   }