User:Pirr/global.js

require([   'jquery',    'mw',    'wikia.window',    'wikia.browserDetect' ], function( $, mw, window, browserDetect ) {    // Because of my friends that wants to import my global JS (lol)    var allowedIDs = [        4204555,  // Szynka013        33612736, // Pedyjczyk        38401682  // Rail01    ],    config = mw.config.get([ 'wgTrackID', 'wgContentLanguage', 'wgUserLanguage', 'wgUserName', 'wgUserGroups', 'wgMainPageTitle' ]);   if ( window.RailCustomScriptsLoaded || !allowedIDs.includes( config.wgTrackID ) ) return;    window.RailCustomScriptsLoaded = true;    // Configs    window.ajaxSpecialPages = [        'Recentchanges',        'Images',        'Videos',        'Watchlist',        'Newwikis',        'Log',        'NewPages',        'Wikiactivity'    ];    window.announcementsIgnore = {        option: 'opt-out-all',         exceptWikiIds: [            177,            7931,            1686,            2280,            65099,            1937910,            1230494        ]    };    window.ajaxRefresh = 15000;    var MultiUploadoption = { max: 75 };    window.lastEdited = { avatar: false };    window.qtUserPageTemplate = '';    // Mobile imports    if ( browserDetect.isMobile ) {        window.ChromeToolbarColor = '#002a32';        $('head').append(''); importArticles({           type: 'script',            articles: [                'u:dev:MediaWiki:MobileEditor.js',                'u:dev:MediaWiki:ChromeToolbarColor.js'            ]        }); } else { // Only desktop imports importArticles({           type: 'script',            articles: [                'u:dev:MediaWiki:FindAndReplace/code.js',                'u:dev:MediaWiki:AjaxUndo/code.js',                'u:kocka:MediaWiki:ReportFormatter.js',                'u:rail-sandbox:MediaWiki:StalkerScript.js'            ]        }); }   // General imports importArticles({       type: 'script',        articles: [            'u:dev:MediaWiki:AjaxRC/code.js',            'u:dev:MediaWiki:ConsistentNotifications.js',            'u:dev:MediaWiki:NullEditButton/code.js',            'u:dev:MediaWiki:MultiUpload/code.js',            'u:dev:MediaWiki:RevealAnonIP/usercode.js',            'u:dev:MediaWiki:UnhideUserMasthead/code.js',            'u:dev:MediaWiki:View Source/code.js',            'u:dev:MediaWiki:LastEdited/code.js',            'u:dev:MediaWiki:QuickCreateUserPage/code.js',            'u:dev:MediaWiki:UnsafeScripts/code.js',            'u:dev:MediaWiki:SearchSuggest/code.js',            'u:dev:MediaWiki:DiscussionsViewer/code.js',            'u:dev:MediaWiki:FixPolishMonths.js',            'u:dev:MediaWiki:AnnouncementsIgnore.js'        ]    }); // Admin stuff if ( /sysop|bureaucrat|content-moderator|threadmoderator/.test( config.wgUserGroups.join ) ) { // Different summaries for language wikis var summary = { en: { wham_delete: 'Housekeeping', wham_block_page: 'w:Help:Vandalism', wham_block: 'Vandalism', comment_delete: 'Harmful comment', file_auto_update: 'Automatically updating file names' },           pl: { wham_delete: 'Porządki', wham_block_page: 'Pomoc:Wandalizm', wham_block: 'Wandalizm', comment_delete: 'Szkodliwy komentarz', file_auto_update: 'Automatyczna aktualizacja nazw plików' }       };        summary = $.extend(            summary.en,            summary[config.wgContentLanguage]        ); // Configs window.WHAMDeleteReason = summary.wham_delete; window.WHAMBlockReason =  + summary.wham_block + ; window.AjaxCommentDeleteConfig = { fastDelete: summary.comment_delete}; LIRoptions = { editSummary:  + summary.file_auto_update +  }; // Imports importArticles({           type: 'script',            articles: [                'u:dev:MediaWiki:WHAM/code.2.js',                'u:dev:MediaWiki:AjaxBatchDelete.js',                'u:dev:MediaWiki:AjaxPatrol/code.js',                'u:dev:MediaWiki:Discussions Delete All/code.js',                'u:dev:MediaWiki:AjaxCommentDelete/code.js',                'u:dev:MediaWiki:ViewRemoved/code.js',                'u:dev:MediaWiki:MassRename/code.js',                'u:dev:MediaWiki:FileUsageAuto-update/code.js',                'u:dev:MediaWiki:CategoryRenameAuto-update/code.js'            ]        }); }   /**     * Custom scripts for my own needs */   var i18n = { en: { rc: 'RecentChanges', contribs: ' My contribs' },       pl: { rc: 'Ostatnie zmiany', contribs: 'Mój wkład' }   };    i18n = $.extend(        i18n.en,        i18n[config.wgUserLanguage]    ); // Add contribs link to global navigation $( '' ).append(       $('', { href: mw.util.getUrl( 'Special:Contributions/' + config.wgUserName ), text: i18n.contribs })   ).insertAfter( '.wds-global-navigation__user-menu ul.wds-list li:nth-of-type(2)' ); // Link replacement by Nanaki $(' .wds-community-header__wiki-buttons a[data-tracking="wiki-activity"]' ).attr({       href: mw.util.getUrl( 'Special:Recentchanges' ),        title: i18n.rc    }); // Minor snippets $( 'a.external' ).attr( 'target', '_blank' ); $( '#wpLeaveRedirect' ).attr( 'checked', false ); $( '#mw-delete-table #wpReason' ).val( '' ); $( '.wds-community-header__wordmark a, .wds-community-header__sitename a' ).attr( 'href', mw.util.getUrl( config.wgMainPageTitle ) ); $( '[data-tracking-label], [data-tracking]' ).removeAttr( 'data-tracking-label data-tracking' ); /**    * @name        Migration message preloader * @author     Railfail536 * @description Adds button on user's message walls that preloads infobox migration message */   $(function {	    // Load only on walls and Polish wikis; double run prevention	    if (mw.config.get('wgNamespaceNumber') !== 1200 || mw.config.get('wgPageContentLanguage') !== 'pl' || window.MessagePreloaderLoaded) { return; }	    window.MessagePreloaderLoaded = true;	    // Add button	    $('#wall-new-message .toolbar').append( $(' ', {			   class: 'wds-button wds-is-squished',			    style: 'padding: 2px 7px; cursor: pointer',			    id: 'migration_msg',			    title: 'Preload migration message',			    text: 'Preload'		    }) );	   // Preload message	    $('#migration_msg').click(function { // Return if script completed it's mission if (window.MessagePreloaded) { return; } // Content var title = 'Infoboksy', content = 'Cześć! Piszę do ciebie, ponieważ zauważyłem że infoboksy na nie są „przenośne”, to znaczy że zostały zbudowane w oparciu o tabelki, a to nie sprzyja ich poprawnemu wyświetlaniu się na [ urządzeniach mobilnych].\n\nChciałbym zaoferować ci pomoc w przystosowaniu ich do nowego standardu przenośncyh infoboksów, co przyniesie za sobą korzyści takie jak przyjazność mobilnym urządzeniom, łatwość edytowania oraz rozwijania takich infoboksów, czy czysty i semantycznie poprawny kod HTML który jest o wiele prostszy do dostosowywania przy użyciu CSS-u niż klasyczne odpowiedniki na tabelach.\n\nPozdrawiam! 🙃';		   // Append content to textareas $('textarea#WallMessageTitle').val(title); $('textarea#WallMessageBody').val(content); // Mission complete, officer! window.MessagePreloaded = true; $('#migration_msg').addClass('wds-is-disabled'); });   }); });