מדיה ויקי:Gadget-refStyle.js

מתוך ויקיסוגיה
קפיצה לניווט קפיצה לחיפוש

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
// gadget to control the display of reference section. rows, scroll, hide, and text-size
// depends on 2 classes from common.css: ol.refDisplayScroll, ol.refDisplayHide.
// if classes are removed from common.js, need to add them in gadget.
// also depends on class mw-references-columns, which is added by extension:cite
$(document).ready(function() {mw.loader.using('jquery.ui', function() {
    var current = $.cookie("ref-col-setting") || '',
		checkboxes = [
			{className: 'mw-references-columns', label: 'הצגה בטורים '},
			{className: 'refDisplayScroll', label: 'תיבת גלילה'},
			{className: 'refDisplayHide', label: 'הסתר'}
		];

	function makeCheckbox(ol, className, label) {
		var checkBox = $('<input>', {type: 'checkbox'})
			.prop({'checked': current.indexOf(className) >= 0})
			.click(function() {
				ol.toggleClass(className, $(this).prop('checked'));
				$.cookie("ref-col-setting", ol.attr('class'), {'expires':30,'path':'/'});
			});
		ol.closest('div.' + className).removeClass(className);
		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: '140px'})
		.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 in checkboxes)
			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.parents().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