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

از ایران پدیا
پرش به ناوبری پرش به جستجو

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
// gadget to control the display of reference section. rows, scroll, hide, and text-size
// depends on 3 classes from common.css: ol.refDisplayRows, ol.refDisplayScroll, ol.refDisplayHide.
// if classes are removed from common.js, need to add them in gadget.
$(document).ready(function() {mw.loader.using('jquery.ui.slider', function() {
    var current = $.cookie("ref-col-setting") || '',
		checkboxes = [
			{className: 'refDisplayRows', label: 'یک ستون', skip: $.client.profile().name === 'msie'},
			{className: 'refDisplayScroll', label: 'اسکورال‌دار'},
			{className: 'refDisplayHide', label: 'مخفی'}
		];

	function makeCheckbox(ol, className, label) {
		var already = ol.closest('.' + className).length;
		var checkBox = $('<input>', {type: 'checkbox'})
			.prop({'checked': already || (current.indexOf(className) >= 0), disabled: already})
			.click(function() {
				ol.toggleClass(className, $(this).prop('checked'));
				$.cookie("ref-col-setting", ol.attr('class'), {'expires':30,'path':'/'});
			});
		return $('<span>')
			.append('&nbsp;&nbsp;' + label)
			.append(checkBox);
	}

	function makeSlider(ol) {
		var value = $.cookie("ref-font-size") || 90;
		ol.css({fontSize: value + '%'});
		var slider = $('<div>')
		.css({fontSize: '130%', width: '200px'})
		.slider({
			max: 150,
			min: 50,
			value: value,
			stop: function() {
				var value = parseInt($(this).slider('value'), 10);
				value = value < 40 ? 40 : (value > 150 ? 150 : value);
				ol.css({fontSize: value + '%'});
				$.cookie("ref-font-size", value, {'expires':30,'path':'/'});
			}
		});
		return $('<div>').css({textAlign:'center', float: 'left'}).text('اندازهٔ متن پانویس').append(slider);
	}

	function makeCheckBoxes(ol) {
		var span = $('<span>').css({fontSize: '50%'});
    		for (var i = 0; i < checkboxes.length; i++)
			if (! checkboxes[i].skip)
				span.append(makeCheckbox(ol, checkboxes[i].className, checkboxes[i].label));
		span.append(makeSlider(ol));
		return span;
	}

	$('ol.references').each(function() {
		var ol = $(this);
		var h2 = ol.parent().prev('h2').filter(function() {return /پانویس/.test($(this).text());});
		if (ol.find('li').length < 10 || h2.length == 0)
			return;
		h2.append(makeCheckBoxes(ol));
		ol.addClass(current);
	});

});}); //ready..using