MediaWiki:Gadget-Gerekceyardimcisi.js

Vikipedi, özgür ansiklopedi

Not: Sayfayı kaydettikten sonra değişiklikleri görebilmek için tarayıcınızın önbelleğinizi temizlemeniz gerekir. Google Chrome, Firefox, Microsoft Edge ve Safari: ⇧ Shift tuşuna basılı tutun ve Yeniden Yükle araç çubuğu düğmesine tıklayın. Ayrıntılar ve diğer tarayıcılara yönelik yönergeler için Vikipedi:Önbelleğinizi atlayın sayfasını inceleyin.

$.when(mw.loader.using(["mediawiki.user", "oojs-ui-core", "oojs-ui-widgets", "oojs-ui-toolbars", "oojs-ui-windows"]), $.ready).then(function() {
	// Özet alanını seçiyoruz
	var sum = $('#wpReason');
	// Özet alanı mevcut değilse veya yeni bir bölüm oluşturuluyorsa işlemi sonlandır
	if(!sum.length || (sum[0].form && sum[0].form.wpSection && sum[0].form.wpSection.value == 'new')) {
		return;
	}
	// Sayfanın özel adını alıyoruz
	var pageName = mw.config.get('wgCanonicalSpecialPageName');
	// Eğer sayfa adı "RevisionReview" değilse işlemi sonlandır
	if(pageName != "RevisionReview") {
		return;
	}
	// Özet butonlarını içerecek konteyner oluşturuyoruz
	var summaryButtonsContainer = new OO.ui.MessageWidget({
		type: 'notice',
		icon: 'none',
		inline: true,
	});
	// Konteynerın CSS ile stilini ayarlıyoruz
	summaryButtonsContainer.$element.css({
		'padding-top': '10px',
		'padding-left': '5px'
	});
	// Özet alanına stil sınıfı ekliyoruz
	sum.addClass("reasonInputV2");
	// Özetlerin listesi ve açıklamaları
	var summaries = [{
		label: "Deneme",
		data: "Deneme amaçlı değişiklik"
	}, {
		label: "Kaynak",
		data: "[[Vikipedi:Doğrulanabilirlik|Kaynak gerektiren değişiklik]]"
	}, {
		label: "Reklam",
		data: "[[Vikipedi:Reklam|Reklam amaçlı değişiklik]]"
	}, {
		label: "Silme",
		data: "Nedensiz içerik silinmesi"
	}, {
		label: "Telif",
		data: "[[Vikipedi:Telif hakları|Telif hakkı ihlali]]"
	}, {
		label: "Yapıcı olmayan",
		data: "Yapıcı olmayan değişiklik"
	}, {
		label: "Vandalizm",
		data: "[[Vikipedi:Vandalizm|Vandalizm amaçlı değişiklik]]"
	}];
	// Her özet için bir buton oluşturuyoruz
	var buttonItems = summaries.map(function(summary) {
		var button = new OO.ui.ButtonWidget({
			label: summary.label,
			title: summary.data,
		});
		// Buton tıklama işlemi
		button.on('click', function() {
			insertSummary(summary.data);
		});
		return button;
	});
	// Butonları gruplayıp konteynere ekliyoruz
	var buttonGroup = new OO.ui.ButtonGroupWidget({
		items: buttonItems
	});
	summaryButtonsContainer.$element.append(buttonGroup.$element);
	// Özet eklemeyi gerçekleştiren işlev
	function insertSummary(summary) {
		var reason_count = summaries.findIndex(function(item) {
			return item.data === summary;
		}) + 1;
		var text = summary;
		var vv = sum.val();
		// Eğer özet metni zaten içeriyorsa işlemi sonlandır
		if(vv.indexOf(text) != -1) {
			return;
		}
		// Metin sonunda boşluk kontrolü
		if(/[^ ]$/.test(vv)) {
			vv += (reason_count === 1 ? ' ' : ' + ');
		}
		// Özet metnini güncelle
		sum.val(vv + text);
	}
	// Konteyneri özet alanının sonrasına ekliyoruz
	summaryButtonsContainer.$element.insertAfter(sum);
});
/* </nowiki> */