MediaWiki:ÇVForm.js

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> */
$.when($.ready, mw.loader.using(['mediawiki.api', 'mediawiki.widgets', 'mediawiki.util', 'oojs-ui-core', 'oojs-ui-windows'])).then(function() {
	if(mw.config.get("wgPageName") !== "Vikipedi:Çevirmenlik_başvurusu") {
		return;
	}
	var api = new mw.Api();
	var requestsPageTitle = 'Vikipedi:Çevirmenlik başvurusu';
	var reasonInput;

	function SingleApplicationDialog(config) {
		SingleApplicationDialog.super.call(this, config);
	}
	OO.inheritClass(SingleApplicationDialog, OO.ui.ProcessDialog);
	SingleApplicationDialog.static.name = 'SingleApplicationDialog';
	SingleApplicationDialog.static.title = 'Çevirmenlik başvurusu';
	SingleApplicationDialog.static.actions = [{
		action: 'save',
		label: 'Ekle',
		flags: ['primary', 'progressive']
	}, {
		label: 'İptal',
		flags: 'safe'
	}];
	SingleApplicationDialog.prototype.initialize = function() {
		SingleApplicationDialog.super.prototype.initialize.apply(this, arguments);
		var headerTitle = new OO.ui.MessageWidget({
			type: 'notice',
			inline: true,
			label: new OO.ui.HtmlSnippet('<small>Çevirmen kullanıcı grubu, Special:ContentTranslation aracını kullanarak çeviri yapıp çevirileri yayınlayabilen kullanıcıların yer aldığı kullanıcı grubudur.</small>')
		});
		reasonInput = new OO.ui.MultilineTextInputWidget({
			placeholder: 'Lütfen çevirmenlik yetkisini isteme gerekçenizi yazınız.',
			required: true
		});
		var fieldset = new OO.ui.FieldsetLayout().addItems([
			new OO.ui.FieldLayout(reasonInput, {
				label: 'Gerekçe',
				align: 'top'
			})
		]);
		this.content = new OO.ui.PanelLayout({
			padded: true,
			expanded: false
		});
		this.content.$element.append(headerTitle.$element, '<br><hr><br>', fieldset.$element);
		this.$body.append(this.content.$element);
	};
	SingleApplicationDialog.prototype.getActionProcess = function(action) {
		if(action) {
			return new OO.ui.Process(() => {
				api.edit(requestsPageTitle, {
					appendtext: `\n\n${makeRequestText()}`,
					summary: 'Yeni başvuru eklendi'
				}).then(() => {
					window.location.href = mw.util.getUrl(requestsPageTitle);
				});
				this.close({
					action
				});
			});
		}
		return SingleApplicationDialog.super.prototype.getActionProcess.call(this, action);
	};
	var windowManager = new OO.ui.WindowManager();
	$(document.body).append(windowManager.$element);
	var dialog = new SingleApplicationDialog();
	windowManager.addWindows([dialog]);
	windowManager.openWindow(dialog);

	function makeRequestText() {
		var reason = reasonInput.getValue();
		if(!reason.includes('~~' + '~~')) {
			reason += ' ~~' + '~~';
		}
		return `== [[Kullanıcı:{{yk:SÜRÜMKULLANICI}}]] ==\n{{aday|{{yk:REVISIONUSER}}}}\n${reason}`;
	}
});
/* </nowiki> */