مدیاویکی:Gadget-RLtoggle.js

از ویکی‌پدیا، دانشنامهٔ آزاد

نکته: برای دیدن تغییرات، ممکن است نیاز باشد که حافظهٔ نهانی مرورگر خود را پس از انتشار پاک‌سازی کنید. گوگل کروم، فایرفاکس، مایکروسافت اج و سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload در نوار ابزار مرورگر کلیک کنید. برای آگاهی از جزئیات و نحوهٔ پاک‌سازی حافظهٔ نهانی سایر مرورگرها، صفحهٔ ویکی‌پدیا:میانگیر مرورگرتان را خالی کنید را ببینید.

/**
 * Add a toggle for debug mode to the sidebar
 * @author: Helder (https://github.com/he7d3r)
 * @license: CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0/>
 */
( function ( mw, $ ) {
	'use strict';

	var debugMode = mw.config.get( 'debug' );
	var isVector2022 = mw.config.get('skin') === 'vector-2022';
	var portlet = isVector2022 ? 'p-collaboration' : 'p-tb';
	
	function onClick( e ) {
		var sep = location.search.indexOf( '?' ) === -1 ? '?' : '&';
		e.preventDefault();
		$.cookie(
			'resourceLoaderDebug',
			debugMode === 0 ? null : true,
			{
				expires: 1,
				path: '/'
			}
		);
		location.href = location.href
			.replace( location.hash, '' )
			.replace( sep + 'debug=true', '' )
			.replace( sep + 'debug=false', '' )
				sep + 'debug=' + !debugMode;
	}
	function load() {
		var id = 'ca-toggle-debug-mode',
			label = {
				1: 'خرفسترزدایی ← خاموش',
				0: 'خرفسترزدایی ← روشن'
			};
		if ( $( '#' + id ).length ) {
			return;
		}
		$( mw.util.addPortletLink(
			portlet,
			'#',
			label[ debugMode ],
			id,
			'روشن/خامش کردن خرفستاریزدایی و بارگیری مجدد صفحه'
		) )
		.click( onClick )
		.find('a').css( 'color', '#808' );
	}
	$.when(
		mw.loader.using( 'mediawiki.util' ),
		$.ready
	).then( load );

}( mediaWiki, jQuery ) );