MediaWiki:Gadget-twinklerevdel.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.

// <nowiki>

(function($) {

if(typeof Twinkle === 'undefined') return;

/*
 ****************************************
 *** twinklerevdel.js: Sürüm gizleme talebi iletme modülü
 ****************************************
 * Çağırma modu:           ("SGT") sekmesi
 * Etkin olduğu yerler:    Fark sayfaları
 */

Twinkle.revdel = function twinklerevdel() {
	// Araç sadece değişiklik farklarında çalışmalı
	if (!mw.config.get('wgDiffNewId') || !mw.config.get('wgDiffOldId')) {
		return;
	}
	
	var title = 'Sürüm gizleme talebi oluştur';
	var oldID = mw.config.get('wgDiffOldId');
	var newID = mw.config.get('wgDiffNewId');
	
	Twinkle.addPortletLink(function() {
		Twinkle.revdel.callback(oldID, newID);
	}, 'SGT', 'tw-revdel', title);
};

Twinkle.revdel.callback = function (oldID, newID) {
	var Window = new Morebits.simpleWindow(600, 500);
	Window.setTitle('Sürüm gizleme talebi oluştur');
	Window.setScriptName('Twinkle');
	Window.addFooterLink('Sürüm gizleme talepleri', 'VP:SGT');
	Window.addFooterLink('Twinkle yardım', 'VT:TW');
	
	var form = new Morebits.quickForm(Twinkle.revdel.callback.evaluate);

	form.append({
		type: 'input',
		name: 'newID',
		label: 'Gizlenmesi gereken revizyonun kimliği: ',
		value: newID
	});
	form.append({
		type: 'checkbox',
		name: 'revdeltype',
		list: [
			{
				label: 'Aleni kılınmamış kişisel bilginin çıkarılması',
				value: 'kişisel bilgi'
			},
			{
				label: 'Küfür ve hakaret içeren içerik',
				value: 'küfür'
			},
			{
				label: 'Potansiyel olarak iftira niteliği taşıyabilecek bilginin çıkarılması',
				value: 'iftira',
			},
			{
				label: 'Madde ile ilgisiz, topluluğu kışkırtmaya yönelik içerik',
				value: 'kışkırtma',
			},
			{
				label: 'Telif hakkı ihlâlinin çıkarılması',
				value: 'telif',
			}
		]
	});
	form.append({
		type: 'textarea',
		name: 'comment',
		label: 'Yorum: '
	});
	
	form.append({ type: 'submit' });
	
	var result = form.render();
	Window.setContent(result);
	Window.display();
};

Twinkle.revdel.callback.evaluate = function(e) {
	var form = e.target;
	var comment = '';
	var reason = form.getChecked('revdeltype');
	if (form.comment) {
		comment = form.comment.value;
	}
	var newID = form.newID.value;
	reason = reason.map(function(v) {
		switch (v) {
			case 'kişisel bilgi':
				return 'aleni kılınmamış kişisel bilginin yayımlanması';
			case 'küfür':
				return 'küfür ve hakaret içeren içerik';
			case 'iftira':
				return 'potansiyel olarak iftira niteliği taşıyabilecek bilgi';
			case 'kışkırtma':
				return 'madde ile ilgisiz, topluluğu kışkırtmaya yönelik içerik';
			case 'telif':
				return 'telif hakkı ihlâli';
			default:
				return 'bilinmeyen gerekçe';
		}
	});
	
	if (reason.length <= 2) {
		reason = reason.join(' ve ');
	} else {
		reason = [ reason.slice(0, -1).join(', '), reason.slice(-1) ].join(' ve ');
	}
	
	var diffLink = "[[Özel:Fark/" + newID + "]]";
	
	var report = "{{kopyala:Vikipedi:Sürüm gizleme talepleri/Önyükleme-şablon |1= " + diffLink + " |2= " + reason + ". " + comment + "}}";
	console.log(report)
	
	Morebits.simpleWindow.setButtonsEnabled(false);
	Morebits.status.init(form);
	Morebits.wiki.actionCompleted.redirect = 'Vikipedi:Sürüm gizleme talepleri';
	Morebits.wiki.actionCompleted.notice = 'Raporlama tamamlandı';
	
	var repPage = new Morebits.wiki.page('Vikipedi:Sürüm gizleme talepleri', 'Sürüm gizleme talebi işleniyor');
	repPage.setFollowRedirect(true);
	
	repPage.load(function() {
		var text = repPage.getPageText();

		// check if something is missing
		if (!reason || reason == undefined) {
			repPage.getStatusElement().error('Bir gerekçe seçmediğiniz için talep iptal ediliyor.');
			return;
		}
		
		if (!newID) {
			repPage.getStatusElement().error('Revizyon kimliği eksik olduğu için talep iptal ediliyor.');
			return;
		}
		repPage.getStatusElement().status('Yeni talep ekleniyor...');
		repPage.setEditSummary(diffLink + ' raporlanıyor.');
		repPage.setChangeTags(Twinkle.changeTags);
		repPage.setPageText(text + '\n' + report);
		repPage.save();
	});
	
};

Twinkle.addInitCallback(Twinkle.revdel, 'revdel');
})(jQuery);


// </nowiki>